ADR 002 — Diátaxis Three-Tier Documentation Architecture
ADR 002 — Diátaxis Three-Tier Documentation Architecture
Section titled “ADR 002 — Diátaxis Three-Tier Documentation Architecture”Status: Accepted Date: 2026-03-02
Context
Section titled “Context”Vox needed a reader-facing documentation structure, but the repository also grew contributor governance, machine-readable contracts, research notes, and planning material that do not fit a prefix-only Diataxis model.
The early policy in this ADR leaned on filename prefixes such as tut- and ref-. That helped the first migration, but the current repository organizes most docs by directory, frontmatter category, and intended audience:
docs/src/is the published mdBook corpus.docs/src/architecture/contains both current architecture pages and research or roadmap material.docs/src/reference/mirrors machine-backed contracts in reader-facing prose.docs/src/contributors/anddocs/agents/serve contributors and automation.contracts/contains machine-readable SSOT.
Decision
Section titled “Decision”Keep Diátaxis as the reader-facing organizing principle for user documentation, but ground the overall documentation system in audience and authority boundaries rather than filename prefixes alone.
Reader-facing categories
Section titled “Reader-facing categories”| Category | Purpose | Primary need |
|---|---|---|
getting-started | front door and first steps | ”Where do I begin?” |
tutorial | guided learning | ”Teach me step by step.” |
how-to | goal-oriented tasks | ”Help me accomplish something.” |
explanation | conceptual understanding | ”Help me understand why.” |
reference | lookup and exact behavior | ”I need the details.” |
adr | design decisions | ”Why was this chosen?” |
architecture | system shape, SSOT, research, roadmap | ”How is the repo organized and where is the design described?” |
contributor | contributor process and governance | ”How do I work safely in this repo?” |
ci | quality and CI contracts | ”What does automation enforce?” |
Frontmatter Standard
Section titled “Frontmatter Standard”Published pages should use YAML frontmatter. At minimum, new pages should carry:
---title: "Human-readable Title"description: "One-sentence summary"category: "Getting Started"|tutorial|how-to|explanation|reference|adr|architecture|contributor|cilast_updated: "2026-03-01"training_eligible: truestatus: current|experimental|legacy|research|roadmap|deprecated # when needed---training_eligible controls whether eligible doc content may feed the documentation extraction pipeline for Mens-related corpora. status is required whenever a page could otherwise be mistaken for current shipped behavior.
Authority boundaries
Section titled “Authority boundaries”The docs system is intentionally split:
| Surface | Role |
|---|---|
README.md | short public front door |
docs/src/index.md | site landing page |
docs/src/ | published human documentation |
docs/src/contributors/ | contributor-facing documentation in the book |
docs/agents/ | inventories, governance, automation support |
contracts/ | machine-readable SSOT |
Naming
Section titled “Naming”Filename prefixes are allowed when they improve scanability, but they are no longer the core organizational rule. Folder placement, frontmatter, and authority boundaries are canonical.
Consequences
Section titled “Consequences”Positive:
- mdBook navigation can stay reader-first without pretending every document has the same audience.
- Contributor guidance becomes discoverable without moving machine-oriented docs into the public front door.
- Research and roadmap pages can stay in-tree while being labeled honestly.
- Contracts, prose, and contributor governance can each keep a clear job.
Negative:
- Frontmatter and boundaries must be maintained as the repo evolves.
- Some legacy filename conventions remain in the tree and will coexist with the newer boundary model.
- Tooling must validate category vocabulary and catch drift instead of silently accepting it.
References
Section titled “References”- Diátaxis framework
../contributors/documentation-governance.mdcrates/vox-doc-pipeline/src/main.rs— SUMMARY generation.github/workflows/docs-deploy.yml— docs deploy integration