docs-sync
Docs Sync
Reconcile prose with code. Every claim in the docs must match what the code does today. Accuracy pass only; no restructuring.
Delegate by default: spawn the docs-reconciler agent (one per repo) and pass it the change description if the pass is scoped. Outside a docs-reconciler lane, run inline only for a single small doc; a docs-reconciler lane never hands the pass to another docs-reconciler. If that agent def is missing in this environment, run the pass inline rather than blocking or trying to create it; the agent is an optional context-saver, not a prerequisite.
Scope
README.md,wiki/,docs/*.md,CLAUDE.md/AGENTS.md(gitignored, still sync them).wiki/+README.mdare the default committed, user-facing docs.- Agent-visible prompt files that enumerate a tool's surface: the
plugin/,commands/,agents/dirs plus skill and agent prompt.md. A prompt that lists a tool's response fields or flags breaks silently when that surface changes, since the model keeps following it and reading fields that no longer exist. Sweep these on any output-shape or API change (field renames, dropped flags), alongsideREADMEanddocs. - Other repo-root docs (
CONTRIBUTING.md,SECURITY.md,.github/*.md, etc.) are in scope only for the parts that make code-derived claims (build/test commands, flags, supported versions). Pure-policy prose with no code claim (CODE_OF_CONDUCT.md, license text, a security-reporting address) is out of scope, same reasoning as code comments below. - Not in scope: code comments (including doc-comments like docstrings, JSDoc, rustdoc; those track code but are the code author's surface, not a doc file), CHANGELOG/release notes (a release-notes convention owns those), README section structure (a readme convention owns that), and bare copyedits (a typo or wording fix carrying no code-derived claim needs a plain edit, not a reconciliation pass).
Procedure
Never run this from a worktree. git worktree add checks out tracked files only; gitignored docs/, CLAUDE.md, .claude/ exist in the main checkout alone, so a pass spawned into a worktree finds nothing to reconcile and reports a false clean. Run from the main checkout.