Personal Docs Structure Guide¶
A domain-driven documentation system for personal life administration, learning, and creative work—optimized for both human navigation and AI ingestion.
Core Principle¶
The file path encodes context.
When your Go service (or any AI) reads 30_property/home/sops/winterize-pipes.md, it immediately knows:
- Domain: Property (physical assets)
- System: Home
- Type: SOP (a procedure)
- Topic: Winterizing pipes
No frontmatter required for basic context. The path does the work.
Domain Overview¶
| Range | Purpose | Domains |
|---|---|---|
| 00–01 | Meta | PKM system, personal tech |
| 10–50 | Life Admin | Identity, finance, property, health, family |
| 60–70 | Growth | Creative work, learning |
| 80 | Cross-cutting | General reference |
| 90 | Historical | Immutable records |
Numbers leave gaps intentionally—you can insert new domains without renumbering.
The Domains¶
00_meta/¶
What this knowledge base is and how to use it.
Use for: PKM philosophy, tagging conventions, review schedules.
01_technology/¶
Your personal tech infrastructure.
01_technology/
├── network/ # Home network topology, router configs, VLANs, DNS
├── devices/ # Inventory with specs, serial numbers, warranties
├── services/ # Subscriptions, licenses, self-hosted apps
└── development/ # Dev environment setup, dotfiles, tooling reference
Use for: Anything you'd need if you had to rebuild your tech setup from scratch.
Examples:
- network/home-network-diagram.md
- devices/macbook-pro-2023.md
- services/software-subscriptions.md
- development/go-environment.md
10_identity/¶
Legal identity and account credentials.
10_identity/
├── documents/ # Passport, license, birth certificate, SSN notes
├── accounts/ # Master account reference (not passwords—use a password manager)
└── records/ # Signed legal documents, filings
Use for: "Where is my passport number?" "What's my driver's license expiration?"
20_finance/¶
All money matters.
20_finance/
├── banking/ # Bank accounts, routing numbers, contacts
├── investing/ # Brokerage accounts, allocation strategy
├── taxes/
│ └── records/ # Filed returns by year
├── insurance/ # Non-health insurance (home, auto, umbrella)
└── planning/ # Budget, net worth tracking, financial goals
Use for: Account references, tax prep, financial planning docs.
30_property/¶
Physical assets you own.
30_property/
├── home/
│ ├── reference/ # Appliance specs, filter sizes, paint colors, manuals
│ ├── sops/ # Maintenance procedures (HVAC filter schedule, winterization)
│ └── records/ # Repairs done, inspections, improvements with dates
└── vehicles/
├── reference/ # VINs, specs, dealer contacts, tire sizes
└── records/ # Service history, repairs
This domain uses type layers because homes and vehicles have clear reference material, procedures, and historical records.
Examples:
- home/reference/hvac-system.md
- home/sops/quarterly-maintenance.md
- home/records/2024-roof-replacement.md
- vehicles/reference/2021-honda-accord.md
- vehicles/records/service-log.md
40_health/¶
Medical information, organized by person.
40_health/
├── tyler/
│ ├── reference/ # Providers, prescriptions, allergies, blood type
│ └── records/ # Visit summaries, lab results, imaging
├── family/ # Partner, children (can split into subfolders per person)
└── insurance/ # Health insurance policies, coverage details
Split by person because medical records are inherently personal. AI can scope queries: "What are Tyler's current prescriptions?" → looks in 40_health/tyler/reference/.
50_family/¶
Family logistics (not medical).
50_family/
├── childcare/ # Daycare info, babysitters, emergency contacts
├── education/ # Schools, 529 plans, educational resources
└── planning/ # Family goals, traditions, future planning
Use for: "What's the daycare's phone number?" "When does school start?"
60_creative/¶
Hobbies and creative projects.
60_creative/
├── ttrpg/ # Campaigns, characters, worldbuilding, session notes
├── writing/ # Fiction, blog drafts, creative writing
└── ideas/ # Loose capture, brainstorms, shower thoughts
No type layers here—creative work doesn't follow reference/sops/records patterns. Organize by project or medium.
Examples:
- ttrpg/campaigns/curse-of-strahd/
- ttrpg/characters/wizard-build.md
- writing/blog-drafts/ai-knowledge-graphs.md
70_learning/¶
Knowledge acquisition.
70_learning/
├── books/ # Reading notes, summaries
├── courses/ # Course materials, certifications
└── topics/ # Research organized by subject
Examples:
- books/designing-data-intensive-applications.md
- courses/aws-solutions-architect.md
- topics/graph-databases.md
80_reference/¶
Cross-cutting reference that doesn't fit elsewhere.
80_reference/
├── travel/ # Loyalty program numbers, packing lists, visa info
├── contacts/ # Personal directory, gift ideas for people
└── how-to/ # General life procedures
This is the catch-all. Push things here last—if it fits in another domain, put it there.
90_records/¶
Immutable historical records.
Key rule: Documents in 90_records/ are never edited after creation. They're historical artifacts.
Decision records follow the pattern:
- decisions/001-buy-vs-rent.md
- decisions/002-school-choice.md
_drafts/¶
Work in progress.
Excluded from: - MkDocs navigation - Site builds - AI indexing
Move files to their proper domain when ready.
Type Layers¶
Some domains benefit from organizing content by type:
| Type | Purpose | Example |
|---|---|---|
reference/ |
"What is this?" — specs, contacts, static info | Filter sizes, VINs |
sops/ |
"How do I?" — procedures, checklists | Winterization steps |
records/ |
"What happened?" — dated history | 2024 roof repair |
When to use type layers:
| Domain | Use Types? | Why |
|---|---|---|
| Property | ✅ Yes | Homes have specs, procedures, and history |
| Health | ✅ Partial | Reference + records; rarely SOPs |
| Finance | ✅ Partial | Reference + records; no SOPs |
| Creative | ❌ No | Organize by project, not type |
| Learning | ❌ No | Organize by book/topic |
Don't force types where they don't fit.
File Naming¶
Use kebab-case:
- ✅ quarterly-hvac-maintenance.md
- ❌ Quarterly HVAC Maintenance.md
- ❌ quarterly_hvac_maintenance.md
Keep names 10–30 characters when practical.
No dates in filenames except in 90_records/:
- ✅ 90_records/journal/2024-03-15-career-reflection.md
- ❌ 20_finance/taxes/2024-03-15-tax-prep.md (use taxes/records/2024-federal.md)
Frontmatter¶
Optional but useful for richer AI context:
---
title: "Quarterly HVAC Maintenance"
type: SOP
status: active
created: 2024-01-15
updated: 2024-06-01
---
The path already encodes domain/system/type, so frontmatter adds metadata the path can't express: dates, status, tags.
Index Files¶
Every folder must have an index.md.
This file: - Serves as the landing page for that section - Describes what belongs in this folder - Links to key documents
Minimal example:
---
title: "Home Reference"
---
# Home Reference
Specs, manuals, and static information about the house.
## Contents
- [HVAC System](hvac-system.md)
- [Appliance Specs](appliances.md)
- [Paint Colors](paint-colors.md)
Quick Reference¶
| I need to document... | Put it in... |
|---|---|
| My home network setup | 01_technology/network/ |
| Passport expiration | 10_identity/documents/ |
| Investment strategy | 20_finance/investing/ |
| How to winterize pipes | 30_property/home/sops/ |
| Roof replacement details | 30_property/home/records/ |
| My prescriptions | 40_health/tyler/reference/ |
| Kid's school info | 50_family/education/ |
| D&D campaign notes | 60_creative/ttrpg/ |
| Book summary | 70_learning/books/ |
| Frequent flyer numbers | 80_reference/travel/ |
| Why I chose this house | 90_records/decisions/ |
| Half-finished draft | _drafts/ |
For AI Ingestion¶
When your Go service scans this repo:
- Walk the file tree —
filepath.Walk("content", ...) - Parse the path — Extract domain, system, type from directory structure
- Parse frontmatter — Get metadata (dates, status, tags)
- Index content — Store in your graph DB and vector DB
The structure means your AI can answer:
- "What are my home maintenance procedures?" → Scan 30_property/home/sops/
- "What prescriptions am I on?" → Scan 40_health/tyler/reference/
- "Summarize my D&D campaign" → Scan 60_creative/ttrpg/
Path-as-context reduces the need for manual tagging.
Getting Started¶
# Clone or unzip the scaffold
cd personal-docs
# Set up Python environment
uv venv
source .venv/bin/activate
uv pip install mkdocs-material
# Run locally
mkdocs serve
Visit http://127.0.0.1:8000
Start with one domain. Document something real. Let the system prove itself before filling every folder.