Organize documentation by audience: packaged user guides in docs/operations (including Devices, Tape scripts, Auto read order, Jobs, offline migration and tar recovery), contributor procedures in docs/development, maintainer release procedures in docs/release, current behavior in docs/architecture (now with separate Tape and read-planning documents) and evidence in docs/research. Each rule keeps one owner and other pages link to it; the document checker, the packaged guide allowlist and their tests follow the new layout. The documents land together because the new guides and index link to each other. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6.1 KiB
Documentation Rules
How repository documentation is owned, decided and updated. Contributors follow these rules for every change to a document.
Documentation Ownership
Every maintained fact has one owner. Other documents link to that owner instead of restating it.
| Location | Owns | Does not own |
|---|---|---|
Root README.md |
Released product introduction, quick start and documentation entry points | Development status, architecture detail or repeated runbooks |
Root CONTEXT.md |
Domain vocabulary and core domain invariants | Schemas, algorithms, task notes or UI layout |
Root AGENTS.md |
Contributor rules, safety gates, repository layout and required verification | Product or architecture contracts |
Root TODO.md |
Concise confirmed pending work with source Issue links | Detailed designs, implemented behavior or completed-work history |
docs/README.md |
Developer entry, complete documentation index and the pre-stable compatibility policy | Daily-use instructions or documentation rules |
docs/operations/index.md |
User entry for installation, configuration and operation | Architecture, contributor rules or test procedures |
docs/architecture/ |
Current implemented behavior, module interfaces, invariants and durable constraints | Proposals, implementation plans, acceptance transcripts or superseded behavior |
docs/operations/ |
Packaged user guides: current setup, migration, configuration, use and maintenance | Domain definitions, architecture specifications, test procedures or measurement results |
docs/development/ |
Contributor procedures: documentation rules, code layout, checks, E2E, performance and the Demo | Release gates, user procedures or product contracts |
docs/release/ |
Maintainer release procedures: SOP, builds, package acceptance, the physical Tape gate and physical measurements | Contributor checks, user procedures or measurement research |
docs/research/ |
Public technical studies, evidence, limitations and evaluation of possible approaches | Product guarantees, implementation backlogs, private incident reports or raw acceptance logs |
.agents/skills/yatm/ |
Installed agent operating and safety instructions | Human-facing architecture or change history |
Component README.md files |
Commands and usage local to that component, such as frontend/ conventions |
Product behavior owned by docs/ |
Decision Authority
Within overlapping scope, broader accepted constraints bound narrower descriptions: the repository engineering rules, the domain invariants and compatibility policy, the architecture overview, area architecture, operations guides, and finally implementation and tests. A lower level may provide evidence and implementation detail, but its existence cannot justify complexity or override a broader decision. When they conflict, update the lower-level documents, code and tests together.
The repository intentionally has no documentation archive, ADR archive or redirect stubs.
Git already retains deleted text and rationale. Root TODO.md records concise confirmed pending
work; detailed implementation plans belong in an Issue or pull request. Remove completed TODO
items instead of retaining a work history. Public research follows the scope above.
Published change notes belong to GitHub Releases. Raw acceptance logs, checksums,
measurements, screenshots and host-specific reports belong in CI artifacts rather than Markdown.
Update Workflow
- Establish the intended behavior from the decision authority above, then inspect
CONTEXT.md, the owning document and the implementation. A mismatch is something to resolve, not a reason to promote the current implementation into a requirement. - Update the implementation, semantic tests, owning architecture document and affected operating guide together. Describe the final behavior in present tense; remove the replaced text instead of marking it historical, implemented or superseded.
- Keep unsettled implementation designs in a PR or Issue. Public studies may evaluate alternatives
in
docs/research/, with evidence, assumptions and remaining proof clearly identified. After implementation, update the current architecture and link to research for supporting evidence. Update or remove invalidated research conclusions instead of accumulating superseded studies. - Keep implementation detail only when callers or maintainers must know it to use the module correctly. Function names, CSS placement, one measurement, one candidate checksum and step-by-step development history belong in code, tests or verification output.
- Keep repository documentation self-contained. Every repository-relative link or file reference must resolve to a tracked file, or to a new file committed in the same change; external references use stable public URLs. Private notes, ignored artifacts and machine-local paths are never sources for repository documentation.
- Before delivery, run
make checkor at minimumnode dev/check-documents.mjsandgit diff --check. The document check enforces the allowed tree, complete index, valid relative links and the absence of private/history references.
For research, use official specifications and source code together with relevant original community reports and maintainer responses. Record what was observed, what was actually resolved and which explanations remain hypotheses; a forum's resolved label alone is not evidence of a verified fix. Use stable public citations and concise summaries. Keep credentials, local paths, device identifiers, private host details and raw logs out of public studies; include only the technical context needed to assess the evidence. Hardware measurements establish the tested configuration's behavior, while general guarantees require an applicable specification or other evidence with a defined scope.
Use English Markdown, short topic-based kebab-case filenames and repository-relative links. Current architecture filenames are version-independent. Adding a new documentation file requires a distinct current owner that cannot be expressed clearly in an existing file; update this index in the same change.