Documentation Guide
This is the canonical maintainer guide for documentation work in docs/.
Agent-specific instructions should reference this page instead of duplicating
its rules.
Documentation model
The published docs are organized around the external journey first:
Evaluatefor fit, quality, security, and benchmark contextGetting Startedfor installation and first integrationConfigurationfor builder-level settingsOperationsfor WAL, monitoring, backup, and tuningArchitecturefor source-of-truth explanationsContribute & Communityfor contributor workflow, community policy, and project historyDevelopmentfor maintainer runbooks, release work, and engineering references
Use a light Diataxis split:
- tutorial: guided learning path
- how-to: task-oriented operational or integration steps
- reference: API, configuration, or command facts
- explanation: architecture, trade-offs, and rationale
Required content rules
- Keep one page focused on one responsibility.
- Update docs in the same change when behavior or contracts change.
- Prefer exact code terminology over vague prose.
- If code and docs disagree, fix both or clearly mark the page as a proposal.
- Keep architecture pages as source-of-truth documents, not changelog notes.
- Do not leave placeholder pages such as "content to be expanded" in published navigation.
File placement
docs/architecture: explanation and source-of-truth design materialdocs/community: contributor workflow, code of conduct, and changelog pagesdocs/configuration: builder settings and runtime configuration referencedocs/operations: runbooks, monitoring, tuning, and backup guidancedocs/how-to-use: installation and early integration pathdocs/development: maintainer guides, release work, documentation rules, and engineering references
Architecture placement rules:
docs/architectureroot for cross-cutting topics shared across the enginedocs/architecture/segmentindexfor routing, buffering, concurrency, and orchestrationdocs/architecture/segmentfor stable segment internals and on-disk behaviordocs/architecture/registryfor registry state and cache lifecycledocs/architecture/monitoringfor monitoring and management API design
Navigation and exclusions
Every Markdown page under docs/ must be one of:
- published in
mkdocs.yml - intentionally excluded in
docs-nav-exclude.txt
Pages excluded from nav should be rare and should usually be one of:
- redirects or moved-page stubs
- internal agent instructions
- archived benchmark snapshots not intended for the main user journey
Run the navigation check before finishing a docs change:
Local preview and publishing
Preview docs locally:
Build the site exactly as CI does:
Deployment to gh-pages is handled by GitHub Actions. Do not rely on manual
deploy steps as the primary path.
Writing style
- Start with the purpose of the page.
- Put invariants and contracts before implementation detail.
- Prefer short lists for flows, rules, and responsibilities.
- Use consistent title casing and avoid decorative emoji in headings.
- Prefer exact class and package names when mapping docs to code.
- For redesign pages, explicitly separate what stays, what changes, and what is newly introduced.
Diagrams
When a page uses PlantUML:
- keep the
.plantumlsource checked in - keep the generated
.pngchecked in next to it - embed the
.pnginline in the page
Preferred pattern:
On this workstation, use rp when it is available. If it is not installed,
render PlantUML diagrams with plantuml -tpng path/to/file.plantuml.
Page template
Use this lightweight starting shape when adding or rewriting a page:
---
title: Page Title
audience: user | operator | contributor | evaluator
doc_type: tutorial | how-to | reference | explanation
owner: docs | engine | ops
---
# Page Title
One paragraph describing the page purpose.
## Main content
## Related docs
The front matter is optional for old pages, but new pages should include it when practical.
Review checklist
Before finishing a docs change:
- the page is in the right section
- links are relative and render in MkDocs
- images render inline
- PlantUML source and PNG both exist when diagrams are used
mkdocs.ymlincludes published pagesdocs-nav-exclude.txtincludes intentional exclusions- the local section index links to the page when needed
python3 scripts/check_docs_nav.pypassesmkdocs build --strictpasses
Recurring maintenance checklist
Run this review when the docs structure changes significantly:
- remove stale examples and old package names
- remove placeholder pages or archive them
- check for orphaned docs pages
- check for broken links and missing images
- split oversized pages that mix multiple responsibilities
- confirm benchmark artifact pages are not used as primary docs