Skip to main content

Feature: Documentation Site

Version: 1.0.0 Last Reviewed: 2026-02-13 Status: Approved

User Story

As a developer or caregiver, I can find accurate, up-to-date documentation at a single URL so I can set up, use, or contribute to Baby Basics without asking for help.

Overview

Baby Basics publishes a Docusaurus documentation site serving two audiences: users (parents, family, caregivers) and developers (self-hosters, contributors, API consumers). Content is organized by progressive disclosure — users find what they need in seconds, developers can drill into architecture and specs.

Audiences

AudienceNeedsSections
UsersHow to use the app, troubleshootingQuick Start, Feature Guides
DevelopersHow to build, deploy, extendSetup Guide, Self-Hosting, API Reference, Architecture, Specs

Site Structure

apps/docs/docs/
├── index.md # Welcome + audience routing
├── getting-started/
│ ├── quick-start.md # Users: 30-second setup
│ ├── setup-guide.md # Devs: local development environment
│ └── self-hosting.md # Devs: deploy your own instance
├── guides/ # Per-feature user guides (added as features ship)
│ ├── _template.md # Template for new guides (not published)
│ └── troubleshooting.md # Common issues + fixes
├── api/
│ └── index.md # API conventions + generated endpoint docs
├── architecture/
│ └── overview.md # System architecture, tech stack, design decisions
└── specs/
├── index.md # What specs are + how to read them
└── *.md # Auto-synced from docs/specs/ at build time

Content Types

1. Feature Guide (user-facing)

Written when a feature ships. Describes what the feature does and how to use it.

Template:

---
sidebar_position: N
---

# Feature Name

One-sentence description of what this feature does.

## How It Works

Step-by-step usage instructions. Use numbered steps for multi-step flows,
bullet points for options.

<!-- SCREENSHOT: Description of what to capture -->

## Tips

- Helpful tip 1
- Helpful tip 2

## Related

- [Other Guide](link)

Rules:

  • Only describe shipped, working functionality
  • Never describe planned or aspirational features as if they exist
  • Use present tense ("Tap the button" not "You will be able to tap")
  • Include <!-- SCREENSHOT: description --> placeholders where visuals would help
  • Keep it short — parents are sleep-deprived

2. Developer Page (developer-facing)

Describes technical details: setup, architecture, deployment.

Rules:

  • Every command must be tested and working
  • Include the exact file paths and commands
  • Keep in sync with actual codebase — if a file moves, update the docs

3. API Reference (auto-generated)

Generated from the OpenAPI spec exported by the running Fastify API.

Pipeline: /docs-sync skill exports the spec → docusaurus-plugin-openapi-docs renders it.

Rules:

  • Never hand-write API endpoint docs — they come from the OpenAPI spec
  • The api/index.md overview page IS hand-written (auth, response format conventions)

4. Specs (synced from source)

Copied from docs/specs/ at build time via scripts/sync-specs.sh. These are the source of truth for feature requirements.

Rules:

  • Never edit specs in apps/docs/docs/specs/ — edit the source at docs/specs/
  • Synced copies are gitignored

When to Document

Feature Agent Responsibilities (first pass)

When a feature agent completes a feature, they:

  1. Write a feature guide in apps/docs/docs/guides/<feature>.md using the template
  2. Update apps/docs/docs/architecture/overview.md if the feature introduces new architecture
  3. Update apps/docs/docs/getting-started/setup-guide.md if setup steps changed
  4. Add screenshot placeholders where visuals would help
  5. Log any observations: hearth log --tag docs "[BB-<id>]: <observation>"

Dedicated Docs Pass (polish pass)

Periodically (after a batch of features ships), a dedicated docs pass:

  1. Processes all --tag docs log entries
  2. Reviews and polishes feature guides for tone, accuracy, completeness
  3. Updates cross-references between guides
  4. Captures screenshots (replaces <!-- SCREENSHOT: --> placeholders)
  5. Verifies all setup/deploy instructions still work
  6. Runs the docs-auditor agent for a comprehensive accuracy check

Adding a New Feature's Docs (generic checklist)

When feature X ships:

  • apps/docs/docs/guides/<feature>.md created from template
  • Guide describes only shipped functionality (no aspirational content)
  • Screenshot placeholders added where helpful
  • architecture/overview.md updated if new components/patterns introduced
  • getting-started/setup-guide.md updated if setup steps changed
  • troubleshooting.md updated with known issues for this feature
  • API reference auto-generates correctly (/docs-sync)

Quality Criteria

Accuracy (hard requirement)

  • Every command in the docs must work when copy-pasted
  • Every described feature must actually exist and work as described
  • File paths must match the actual codebase
  • No aspirational content presented as current reality

Completeness

  • Every shipped feature has a guide
  • Developer setup guide covers the full local development flow
  • Self-hosting guide covers the full deployment flow
  • Troubleshooting covers known issues

Freshness

  • Docs checked after every batch of features (via /docs-check skill)
  • Full audit every 2 weeks or after major changes (via docs-auditor agent)
  • Audit timestamps tracked via hearth log --tag docs-audit

Screenshot Convention

Use HTML comments as placeholders:

<!-- SCREENSHOT: Description of what the screenshot should show -->

Screenshots are captured during dedicated docs passes, not during feature development. Feature agents add placeholders; the docs pass fills them.

Audit Process

Lightweight Check (/docs-check skill)

Run frequently — after any feature, before PRs, anytime.

  • Verifies spec sync status
  • Counts screenshot placeholders
  • Reports unprocessed --tag docs entries
  • Reports time since last full audit

Deep Audit (docs-auditor agent)

Run every 2 weeks or after a batch of features ships.

  • Verifies every factual claim against the codebase
  • Tests setup/deploy instructions
  • Reports missing docs for shipped features
  • Checks for stale/outdated content
  • Logs audit completion: hearth log --tag docs-audit "Audit complete: N issues found"

MVP Scope

  • Docusaurus site with docs-only mode
  • Auto-synced specs from docs/specs/
  • Developer pages: setup guide, self-hosting, architecture overview
  • API reference placeholder (real spec when API is running)
  • Feature guide template (guides added as features ship)
  • /docs-sync and /docs-check skills
  • docs-auditor agent for periodic deep audits

NOT in MVP

  • Custom Docusaurus theme/branding (Post-MVP)
  • Search (Algolia DocSearch — Post-MVP)
  • Versioned docs (Post-MVP)
  • Blog section (Post-MVP)
  • Automated screenshot capture CI (Post-MVP)
  • Translations/i18n (Post-MVP)

Acceptance Criteria

  • Docs site builds successfully (npm run build in apps/docs/)
  • All specs auto-sync from docs/specs/ to docs site
  • Developer setup guide matches actual codebase (commands work)
  • Self-hosting guide matches actual infra scripts
  • Architecture overview reflects current tech stack accurately
  • No feature guides exist for unbuilt features
  • Feature guide template exists for agents to follow
  • /docs-check skill reports time since last audit
  • docs-auditor agent can run a full accuracy audit
  • Sage wisdom rule reminds about periodic audits

Test Cases

  1. Build passes: cd apps/docs && npm run build succeeds with zero errors
  2. Spec sync: Add a new spec to docs/specs/, run sync, verify it appears in docs site
  3. Setup guide accuracy: Follow the setup guide on a clean checkout, verify it works
  4. Audit detects staleness: Introduce an intentional inaccuracy, run auditor, verify it's caught
  5. No aspirational content: Grep for features that don't exist yet, verify no guides describe them as working

Boundaries

  • This spec covers the documentation site only, not the feature specs themselves
  • Feature specs are governed by their own versioning (see CLAUDE.md)
  • The docs site is a consumer of specs, not a producer
  • iOS screenshot capture tooling is a separate concern (Post-MVP)