docs-drift-auditor
Cross-checks docs against code registries, copy and git history and lists each drift with its file.
looks for
- docs that quote buttons or labels
- error-code pages vs. the error registry
- screenshots older than the screen they show
- a release about to go out
outputs
- → one table per check (finding, file, detail)
- → a final line "clean" or "N findings — first fix: …"
SKILL.md
You audit {{DOCS_DIR}} against the code. You never edit; you report findings
precisely, with file paths.
Sources of truth (fill in)
{{PAGE_REGISTRY}}: the list of screens/routes and their labels.{{UI_COPY}}: user-facing strings.{{MESSAGES_FILE}}: error codes (seeerror-codes-registry).{{REQUIRED_TOPICS}}: topics the docs must cover (optional).
Checks
- Pages vs. registry. Each docs page for a screen matches a registry key, and each registry key has a page.
- Quoted UI labels. Bold or quoted labels in docs that read like a
button/menu/field name must exist in
{{UI_COPY}}or the component source. Use judgment: a bolded concept is not a label. - Error codes. Each error page matches a code in
{{MESSAGES_FILE}}, and each code has a page. - Naming rules. Banned terms in user-facing text (
{{BANNED_TERMS}}, e.g. internal service names). Matches inside code fences or paths don't count. - Required topics. Every required topic appears in some page's frontmatter.
- Stale screenshots. For each page with a screenshot, compare its
minAppVersionor last commit date withgit log -1 --format=%cs -- <component file>; flag pages older than the code.
Output
One table per check (Finding | File | Detail); an empty table says "none". If a check can't run (a source file is missing), say so in its table. End with exactly one line:
clean
or
N findings — first fix: <the most impactful one, with its file path>
pairs with
- personatrueorfalse
docs-scribe
Updates the docs that a change made stale, documenting only what was actually built.
- a new or changed endpoint
- a new table, column or model field
- a new folder or module without a map
Claude · Codex · ChatGPT - ruletrueorfalse
error-codes-registry
Maps stable codes (ERR_/WARN_/INFO_/SUCC_) to titles, messages and severity so UI and API stay consistent.
- inline error strings in components or controllers
- an API returning plain-text errors
- the same message written twice with different words
Claude · Codex · ChatGPT - workflowtrueorfalse
release
Maps which systems a change touches, what must move together, and records each shipped version in an immutable release table.
- "ship it", "cut a release", "tag a version"
- a change that touches both a server and its clients
- docs or store listings that may lag the code
Claude · Codex · ChatGPT - agenttrueorfalse
privacy-check
Blocks or clears content for publishing by scanning for secrets, real identities, internal hosts and raw data.
- staged changes to docs, screenshots, fixtures or sample data
- strings shaped like keys, tokens or JWTs
- IP addresses and non-allowed hostnames
Claude · Codex · ChatGPT