← ClaudeAtlas

doc-drift-scanlisted

Find docs that lie about live code, on three axes — DEAD (names something deleted), WRONG (describes an existing symbol, default, flag or signature incorrectly) and UNDOCUMENTED (public thing with no entry). Covers file paths, task names, env vars, schema, ADR links, CLI flags, signatures and examples. Run before merging a PR that touched documented code, after a refactor or rename, and weekly in CI. `quickstart-verify` executes the setup procedure; `diagram-sync` catches the same drift in diagrams.
adnanmokhtar/refract · ★ 1 · AI & Automation · score 77
Install: claude install-skill adnanmokhtar/refract
# doc-drift-scan Cross-check every claim in the `ai/` knowledge base + `CLAUDE.md` against the source tree, package manifest, env example, and migrations. ## Premise **Three different failures wear the same word "drift", and they have three different fixes. Every finding names its axis before anything else:** | Axis | The doc says… | …and the truth is | The fix | |---|---|---|---| | **DEAD** | X exists | X was deleted or renamed | delete the reference, or repoint it at the new name | | **WRONG** | X behaves like this | X exists but behaves differently (signature, default, flag, shape) | correct the description — the reference is fine, the claim is false | | **UNDOCUMENTED** | *nothing* | X exists and is public | write the missing entry | Collapsing these is the classic failure of a drift report: a reader who sees "BROKEN" cannot tell whether to delete a line or rewrite it, and an absence has no doc line to cite at all so it silently never gets a row. **DEAD** and **WRONG** are both `BROKEN` in severity (a doc that lies blocks a PRODUCTION-GRADE verdict); **UNDOCUMENTED** is counted separately, because nothing is lying — something is simply missing, and a scan that folds absences into the lie count makes both numbers useless. Find real issues, cite `<path:line>` for every drift finding. Each "MISSING" reports the doc location + the referenced artifact + the verification command that returned negative. File refs come from `rg` output; missing scripts from `jq` against `pa