Docs
Keep the repo legible to humans and agents.
Principles
- Docs rot silently — every code change is a possible doc change
- Routing docs stay short; depth lives in
- No duplication when a pointer will do
- Use repo-relative links for in-repo docs; external links are fine in sources and references
- Doc drift is a real failure, not polish debt
Handoffs
- Missing boot, smoke, e2e, logs, or agent-readiness infrastructure → use
- Need to judge existing code, a diff, branch, or PR with evidence → use
- Need to validate your own completed change on the real surface → use
Workflow
1. Audit the doc surface
Check the files humans and agents actually rely on:
- plans, specs, runbooks, decision docs
Flag stale commands, dead paths, duplicated guidance, and routing failures.
2. Update routing docs
Keep top-level docs terse and navigational.
- should be a table of contents, not a wiki
- If the repo uses , keep at the same level as a symlink to instead of maintaining a second authored file
- should lead with value and the fastest path to use the project
- should hold contributor setup, validation, and workflow
- should hold private-first vulnerability reporting guidance
- Push detail downward instead of bloating top-level files
- Use the concrete top-level split and section order in references/documentation.md instead of inventing a new shape every time
- Prefer terse routing over narrative sprawl, for example should link to deeper docs instead of re-explaining them inline
3. Update deep docs and specs
Refresh the detailed documents that actually carry the knowledge.
- architecture and API docs
- task guides and runbooks
- feature specs, plans, and decision records
- readiness infrastructure docs after agent-readiness changes
For new features, use the directory layout and templates in references/structuring.md — specs, plans, and decisions each have their own shape.
4. Clean up drift
- deduplicate repeated facts
- delete or archive stale docs
- fix cross-links and moved paths
- keep naming and commands consistent across files
Example — fixing a stale path after a rename:
diff
# AGENTS.md
-- Run `scripts/bootstrap.sh` to set up the dev environment.
+- Run `scripts/setup.sh` to set up the dev environment.
5. Validate reality
Do not trust prose. Check that commands, file paths, and entry points still match the repo.
Concrete checks:
rg -n "old/path|stale-command" AGENTS.md CLAUDE.md README.md docs/
when paths or commands moved
- before keeping a file reference
test ! -e AGENTS.md || { test -L CLAUDE.md && test "$(readlink CLAUDE.md)" = "AGENTS.md"; }
when normalizing agent entrypoints
Output
After docs work, report:
- files updated
- stale or duplicated docs removed or rewritten
- commands or paths verified
- remaining doc gaps
- any handoff needed to , , or
References
- references/documentation.md — AGENTS.md shape, scoped rules, README patterns, doc hygiene
- references/specifications.md — feature specs, conformance tests, spec drift, SDD trade-offs
- references/structuring.md — directory layout, templates, and naming for specs, plans, and decisions