docs-sync
Audit the project's documentation (CLAUDE.md, .claude/rules, skills, README, CONTRIBUTING, SECURITY, .env.example, app/data/*.md, learn articles) against the actual code and config, and fix drift. Use
SKILL.md.claude/skills/docs-sync/SKILL.md
GitHubDocs ↔ code drift audit
Verify every factual claim against the source. Anything unverifiable or wrong gets fixed, or listed if --report-only was passed ($ARGUMENTS).
Checks
- Commands: every
pnpm <script>mentioned in README.md, CONTRIBUTING.md, CLAUDE.md,.claude/**, and.github/**exists inpackage.jsonscripts. - Files and paths: every path mentioned in docs exists (
ls/Glob). Pay special attention to the architecture trees in README.md and CLAUDE.md. - CI/workflows: descriptions of
.github/workflows/*.yml(triggers, jobs, what runs) match the YAML. - Env vars:
.env.examplelists exactly the variables read bynuxt.config.ts,server/,playwright.config.ts, and workflows, each with an accurate description. - Product facts: palette, font, shade, and radius lists in
app/data/*.md,content/learn/**, andserver/utils/aiSystemPrompt.tsmatchshared/constants/theme.ts. AI model lists in docs matchapp/types/ai.ts. - Dependencies: libraries named in docs (e.g. SECURITY.md's "DOMPurify", "Dependabot") are actually installed or configured and used.
- Claude setup: skills and agents named in CLAUDE.md and
.claude/README.mdexist;.claude/rules/*paths:globs match real files; hooks referenced in.claude/settings.jsonexist. - Config hygiene:
.prettierignore,.gitignore, theknipkey inpackage.json,eslint.config.mjs,.github/labeler.yml, and.github/CODEOWNERSdon't reference paths that no longer exist.
Output
A table of file:line | claim | reality | action. Fix what you can (docs only; if the code is wrong, report it rather than change behavior), run pnpm format, and summarize the fixes and open questions.