directory changes and restructuring
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# Database Best Practices
|
||||
|
||||
General guidance for creating and maintaining knowledge capture databases.
|
||||
|
||||
## Core Principles
|
||||
|
||||
### 1. Keep It Simple
|
||||
- Start with core properties
|
||||
- Add more only when needed
|
||||
- Don't over-engineer
|
||||
|
||||
### 2. Use Consistent Naming
|
||||
- Title property for main identifier
|
||||
- Status for lifecycle tracking
|
||||
- Tags for flexible categorization
|
||||
- Owner for accountability
|
||||
|
||||
### 3. Include Metadata
|
||||
- Created/Updated timestamps
|
||||
- Owner or maintainer
|
||||
- Last reviewed dates
|
||||
- Status indicators
|
||||
|
||||
### 4. Enable Discovery
|
||||
- Use tags liberally
|
||||
- Create helpful views
|
||||
- Link related content
|
||||
- Use clear titles
|
||||
|
||||
### 5. Plan for Scale
|
||||
- Consider filters early
|
||||
- Use relations for connections
|
||||
- Think about search
|
||||
- Organize with categories
|
||||
|
||||
## Creating a Database
|
||||
|
||||
### Using `Notion:notion-create-database`
|
||||
|
||||
Example for documentation database:
|
||||
|
||||
```javascript
|
||||
{
|
||||
"parent": {"page_id": "wiki-page-id"},
|
||||
"title": [{"text": {"content": "Team Documentation"}}],
|
||||
"properties": {
|
||||
"Type": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "How-To", "color": "blue"},
|
||||
{"name": "Concept", "color": "green"},
|
||||
{"name": "Reference", "color": "gray"},
|
||||
{"name": "FAQ", "color": "yellow"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Category": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "Engineering", "color": "red"},
|
||||
{"name": "Product", "color": "purple"},
|
||||
{"name": "Design", "color": "pink"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Tags": {"multi_select": {"options": []}},
|
||||
"Owner": {"people": {}},
|
||||
"Status": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "Draft", "color": "gray"},
|
||||
{"name": "Final", "color": "green"},
|
||||
{"name": "Deprecated", "color": "red"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Fetching Database Schema
|
||||
|
||||
Before creating pages, always fetch database to get schema:
|
||||
|
||||
```
|
||||
Notion:notion-fetch
|
||||
id: "database-url-or-id"
|
||||
```
|
||||
|
||||
This returns the exact property names and types to use.
|
||||
|
||||
## Database Selection Guide
|
||||
|
||||
| Need | Use This Database |
|
||||
|------|-------------------|
|
||||
| General documentation | [Documentation Database](documentation-database.md) |
|
||||
| Track decisions | [Decision Log](decision-log-database.md) |
|
||||
| Q&A knowledge base | [FAQ Database](faq-database.md) |
|
||||
| Team-specific content | [Team Wiki](team-wiki-database.md) |
|
||||
| Step-by-step guides | [How-To Guide Database](how-to-guide-database.md) |
|
||||
| Incident/project learnings | [Learning Database](learning-database.md) |
|
||||
|
||||
## Tips
|
||||
|
||||
1. **Start with general documentation database** - most flexible
|
||||
2. **Add specialized databases** as needs emerge (FAQ, Decisions)
|
||||
3. **Use relations** to connect related docs
|
||||
4. **Create views** for common use cases
|
||||
5. **Review properties** quarterly - remove unused ones
|
||||
6. **Document the schema** in database description
|
||||
7. **Train team** on property usage and conventions
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
# Decision Log Database (ADR - Architecture Decision Records)
|
||||
|
||||
**Purpose**: Track important decisions with context and rationale.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Decision** | title | - | What was decided |
|
||||
| **Date** | date | - | When decision was made |
|
||||
| **Status** | select | Proposed, Accepted, Superseded, Deprecated | Current decision status |
|
||||
| **Domain** | select | Architecture, Product, Business, Design, Operations | Decision category |
|
||||
| **Impact** | select | High, Medium, Low | Expected impact level |
|
||||
| **Deciders** | people | - | Who made the decision |
|
||||
| **Stakeholders** | people | - | Who's affected by decision |
|
||||
| **Related Decisions** | relation | Links to other decisions | Context and dependencies |
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Create decision records with properties:
|
||||
{
|
||||
"Decision": "Use PostgreSQL for Primary Database",
|
||||
"Date": "2025-10-15",
|
||||
"Status": "Accepted",
|
||||
"Domain": "Architecture",
|
||||
"Impact": "High",
|
||||
"Deciders": [tech_lead, architect],
|
||||
"Stakeholders": [eng_team]
|
||||
}
|
||||
```
|
||||
|
||||
## Content Template
|
||||
|
||||
Each decision page should include:
|
||||
- **Context**: Why this decision was needed
|
||||
- **Decision**: What was decided
|
||||
- **Rationale**: Why this option was chosen
|
||||
- **Options Considered**: Alternatives and trade-offs
|
||||
- **Consequences**: Expected outcomes (positive and negative)
|
||||
- **Implementation**: How decision will be executed
|
||||
|
||||
## Views
|
||||
|
||||
**Recent Decisions**: Sort by Date descending
|
||||
**Active Decisions**: Filter where Status = "Accepted"
|
||||
**By Domain**: Group by Domain
|
||||
**High Impact**: Filter where Impact = "High"
|
||||
**Pending**: Filter where Status = "Proposed"
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Document immediately**: Record decisions when made, while context is fresh
|
||||
2. **Include alternatives**: Show what was considered and why it wasn't chosen
|
||||
3. **Track superseded decisions**: Update status when decisions change
|
||||
4. **Link related decisions**: Use relations to show dependencies
|
||||
5. **Review periodically**: Check if old decisions are still valid
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
# General Documentation Database
|
||||
|
||||
**Purpose**: Store all types of documentation in a searchable, organized database.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Title** | title | - | Document name |
|
||||
| **Type** | select | How-To, Concept, Reference, FAQ, Decision, Post-Mortem | Categorize content type |
|
||||
| **Category** | select | Engineering, Product, Design, Operations, General | Organize by department/topic |
|
||||
| **Tags** | multi_select | - | Additional categorization (languages, tools, topics) |
|
||||
| **Status** | select | Draft, In Review, Final, Deprecated | Track document lifecycle |
|
||||
| **Owner** | people | - | Document maintainer |
|
||||
| **Created** | created_time | - | Auto-populated creation date |
|
||||
| **Last Updated** | last_edited_time | - | Auto-populated last edit |
|
||||
| **Last Reviewed** | date | - | Manual review tracking |
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Create pages with properties:
|
||||
{
|
||||
"Title": "How to Deploy to Production",
|
||||
"Type": "How-To",
|
||||
"Category": "Engineering",
|
||||
"Tags": "deployment, production, DevOps",
|
||||
"Status": "Final",
|
||||
"Owner": [current_user],
|
||||
"Last Reviewed": "2025-10-01"
|
||||
}
|
||||
```
|
||||
|
||||
## Views
|
||||
|
||||
**By Type**: Group by Type property
|
||||
**By Category**: Group by Category property
|
||||
**Recent Updates**: Sort by Last Updated descending
|
||||
**Needs Review**: Filter where Last Reviewed > 90 days ago
|
||||
**Draft Docs**: Filter where Status = "Draft"
|
||||
|
||||
## Creating This Database
|
||||
|
||||
Use `Notion:notion-create-database`:
|
||||
|
||||
```javascript
|
||||
{
|
||||
"parent": {"page_id": "wiki-page-id"},
|
||||
"title": [{"text": {"content": "Team Documentation"}}],
|
||||
"properties": {
|
||||
"Type": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "How-To", "color": "blue"},
|
||||
{"name": "Concept", "color": "green"},
|
||||
{"name": "Reference", "color": "gray"},
|
||||
{"name": "FAQ", "color": "yellow"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Category": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "Engineering", "color": "red"},
|
||||
{"name": "Product", "color": "purple"},
|
||||
{"name": "Design", "color": "pink"}
|
||||
]
|
||||
}
|
||||
},
|
||||
"Tags": {"multi_select": {"options": []}},
|
||||
"Owner": {"people": {}},
|
||||
"Status": {
|
||||
"select": {
|
||||
"options": [
|
||||
{"name": "Draft", "color": "gray"},
|
||||
{"name": "Final", "color": "green"},
|
||||
{"name": "Deprecated", "color": "red"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Start with this schema** - most flexible for general documentation
|
||||
2. **Use relations** to connect related docs
|
||||
3. **Create views** for common use cases
|
||||
4. **Review properties** quarterly - remove unused ones
|
||||
5. **Document the schema** in database description
|
||||
6. **Train team** on property usage and conventions
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
# FAQ Database
|
||||
|
||||
**Purpose**: Organize frequently asked questions with answers.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Question** | title | - | The question being asked |
|
||||
| **Category** | select | Product, Engineering, Support, HR, General | Question topic |
|
||||
| **Tags** | multi_select | - | Specific topics (auth, billing, onboarding, etc.) |
|
||||
| **Answer Type** | select | Quick Answer, Detailed Guide, Link to Docs | Response format |
|
||||
| **Last Reviewed** | date | - | When answer was verified |
|
||||
| **Helpful Count** | number | - | Track usefulness (optional) |
|
||||
| **Audience** | select | Internal, External, All | Who should see this |
|
||||
| **Related Questions** | relation | Links to related FAQs | Connect similar topics |
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Create FAQ entries with properties:
|
||||
{
|
||||
"Question": "How do I reset my password?",
|
||||
"Category": "Support",
|
||||
"Tags": "authentication, password, login",
|
||||
"Answer Type": "Quick Answer",
|
||||
"Last Reviewed": "2025-10-01",
|
||||
"Audience": "External"
|
||||
}
|
||||
```
|
||||
|
||||
## Content Template
|
||||
|
||||
Each FAQ page should include:
|
||||
- **Short Answer**: 1-2 sentence quick response
|
||||
- **Detailed Explanation**: Full answer with context
|
||||
- **Steps** (if applicable): Numbered procedure
|
||||
- **Screenshots** (if helpful): Visual guidance
|
||||
- **Related Questions**: Links to similar FAQs
|
||||
- **Additional Resources**: External docs or videos
|
||||
|
||||
## Views
|
||||
|
||||
**By Category**: Group by Category
|
||||
**Recently Updated**: Sort by Last Reviewed descending
|
||||
**Needs Review**: Filter where Last Reviewed > 180 days ago
|
||||
**External FAQs**: Filter where Audience contains "External"
|
||||
**Popular**: Sort by Helpful Count descending (if tracking)
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Use clear questions**: Write questions as users would ask them
|
||||
2. **Provide quick answers**: Lead with the direct answer, then elaborate
|
||||
3. **Link related FAQs**: Help users discover related information
|
||||
4. **Review regularly**: Keep answers current and accurate
|
||||
5. **Track what's helpful**: Use feedback to improve frequently accessed FAQs
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# How-To Guide Database
|
||||
|
||||
**Purpose**: Procedural documentation for common tasks.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Title** | title | - | "How to [Task]" |
|
||||
| **Complexity** | select | Beginner, Intermediate, Advanced | Skill level required |
|
||||
| **Time Required** | number | - | Estimated minutes to complete |
|
||||
| **Prerequisites** | relation | Links to other guides | Required knowledge |
|
||||
| **Category** | select | Development, Deployment, Testing, Tools | Task category |
|
||||
| **Last Tested** | date | - | When procedure was verified |
|
||||
| **Tags** | multi_select | - | Technology/tool tags |
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
Create how-to guides with properties:
|
||||
{
|
||||
"Title": "How to Set Up Local Development Environment",
|
||||
"Complexity": "Beginner",
|
||||
"Time Required": 30,
|
||||
"Category": "Development",
|
||||
"Last Tested": "2025-10-01",
|
||||
"Tags": "setup, environment, docker"
|
||||
}
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Use consistent naming**: Always start with "How to..."
|
||||
2. **Test procedures**: Verify steps work before publishing
|
||||
3. **Include time estimates**: Help users plan their time
|
||||
4. **Link prerequisites**: Make dependencies clear
|
||||
5. **Update regularly**: Re-test procedures when tools/systems change
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# Learning/Post-Mortem Database
|
||||
|
||||
**Purpose**: Capture learnings from incidents, projects, or experiences.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Title** | title | - | Event or project name |
|
||||
| **Date** | date | - | When it happened |
|
||||
| **Type** | select | Incident, Project, Experiment, Retrospective | Learning type |
|
||||
| **Severity** | select | Critical, Major, Minor | Impact level (for incidents) |
|
||||
| **Team** | people | - | Who was involved |
|
||||
| **Key Learnings** | number | - | Count of learnings |
|
||||
| **Action Items** | relation | Links to tasks | Follow-up actions |
|
||||
|
||||
## Content Template
|
||||
|
||||
Each learning page should include:
|
||||
- **What Happened**: Situation description
|
||||
- **What Went Well**: Success factors
|
||||
- **What Didn't Go Well**: Problems encountered
|
||||
- **Root Causes**: Why things happened
|
||||
- **Learnings**: Key takeaways
|
||||
- **Action Items**: Improvements to implement
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Blameless approach**: Focus on systems and processes, not individuals
|
||||
2. **Document quickly**: Capture while memory is fresh
|
||||
3. **Identify root causes**: Go beyond surface-level problems
|
||||
4. **Create action items**: Turn learnings into improvements
|
||||
5. **Follow up**: Track that action items are completed
|
||||
6. **Share widely**: Make learnings accessible to entire team
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Team Wiki Database
|
||||
|
||||
**Purpose**: Centralized team knowledge and resources.
|
||||
|
||||
## Schema
|
||||
|
||||
| Property | Type | Options | Purpose |
|
||||
|----------|------|---------|---------|
|
||||
| **Title** | title | - | Page name |
|
||||
| **Section** | select | Getting Started, Processes, Tools, Reference, Onboarding | Wiki organization |
|
||||
| **Tags** | multi_select | - | Topic tags |
|
||||
| **Owner** | people | - | Page maintainer |
|
||||
| **Last Updated** | last_edited_time | - | Auto-tracked |
|
||||
| **Visibility** | select | Public, Team Only, Confidential | Access level |
|
||||
|
||||
## Usage
|
||||
|
||||
Use for team-specific documentation that doesn't fit other databases.
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Organize by sections**: Use clear top-level organization
|
||||
2. **Assign owners**: Every page should have a maintainer
|
||||
3. **Control visibility**: Set appropriate access levels
|
||||
4. **Link extensively**: Connect related pages
|
||||
5. **Keep current**: Regular reviews to remove outdated content
|
||||
|
||||
Reference in New Issue
Block a user