From gigachang-skills
Use when the user wants to verify this plugin's docs are still in sync with its code after a change — e.g. "check for docs drift", "did the README drift", "are the docs still accurate", "I updated the plugin, verify the docs", "/docs-drift". Runs a deterministic checker for mechanical drift (skill/command catalogs in README and codemap, per-skill index files, dead relative links, English-only rule, version bump) and then does a semantic pass the script cannot — comparing each doc's prose description against what the skill actually does and the dependencies it actually ships. Proposes concrete fixes and only edits docs after the user approves. Manual-trigger only — never auto-invoke; never edit files without approval.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gigachang-skills:docs-driftThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
When invoked, check whether this plugin's **documentation still matches its
When invoked, check whether this plugin's documentation still matches its
code, then propose fixes. "Drift" is anything a doc claims that the repo no
longer backs up: a skill missing from a catalog table, a dead link, a README
sentence that describes behaviour the skill no longer has, a dependency list
that no longer matches requirements.txt.
Two layers, in order: a deterministic script that proves mechanical drift, then a semantic pass that only an LLM can do. Report both, fix on approval.
/docs-drift. Typically right after adding, renaming, or removing a skill,
command, or agent.It is standard-library Python — no install needed.
python ${CLAUDE_PLUGIN_ROOT}/skills/docs-drift/scripts/check_docs_drift.py --json
The script resolves the repo root via git (or --root DIR) and reports, as
JSON, every mismatch it can prove:
skills/ missing its
docs/knowledge/skills/<name>-index.md, its README "Skills in this plugin"
row, or its codemap "Skill indexes" row; frontmatter name not matching the
directory.commands/<slug>.md not listed in the README
"Slash commands" table.HEAD without a
plugin.json version bump; a warning.errors block a clean bill of health; warnings may have legitimate
exceptions (judge each). Use the human-readable form (drop --json) if you
just want to read it.
The script proves structural facts; it cannot read meaning. Do this part
yourself. For each skill, open its SKILL.md and compare against:
docs/knowledge/codemap.md and its
docs/knowledge/skills/<name>-index.md,README.md
versus the actual scripts/requirements.txt (or "no dependencies" claims
versus whether a requirements.txt exists),commands/<slug>.md versus what the
skill now does.Also sanity-check the cross-cutting docs against reality:
README.md "Repository layout" tree — does it still match the real tree
(new top-level dirs/files, renamed ones)?docs/knowledge/architecture.md — does the "LLM understands / script
transforms" description still hold for every skill, including any new one?docs/knowledge/codemap.md "Dev tooling" table — are all hooks/scripts
listed?Flag a semantic drift only when the prose genuinely no longer fits the code — not for harmless wording differences.
Present, in chat:
Then ask the user to approve. They may take a subset, edit wording, or decline.
Only after approval:
.claude-plugin/plugin.json.Re-run the checker to confirm it now exits clean, then tell the user what was changed and in which files so they can review the diff.
.claude/hooks/check-docs-drift.sh) runs the same script after any
turn that touches catalog files, so mechanical drift is caught even when
this skill is not explicitly invoked. This skill adds the semantic pass and
the guided fix-up.--json for machine output, --strict to treat
warnings as errors (handy in CI), --root DIR to point at another checkout.npx claudepluginhub gigayaya/gigachang-skills --plugin gigachang-skillsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.