Skill Auditor (Operator Skill)
Runtime requirement
Invoke this skill via claude -p, not as a sibling skill in an existing session. This skill dispatches per-SLP audit subagents in parallel; Claude Code's subagent-dispatch budget is one level deep, so an orchestrator that is itself a subagent cannot fan out. Running as claude -p gives this skill its own top-level session with a fresh dispatch budget.
Concretely:
claude -p "<audit-prompt>" --dangerously-skip-permissions \
--output-format stream-json --verbose \
--add-dir /path/to/plugin --add-dir /path/to/target-repo
When to Use
- A repo's bootstrapped (L2) leverage skills have not been refreshed since major changes to the codebase
- Cross-document drift is suspected within a leverage-points plugin (README vs catalog vs MIGRATION)
- A planning agent or reviewer needs to verify that an SKILL.md's claims still hold before relying on it
When NOT to Use
- For a single-skill content review (just read the skill itself)
- For end-of-feature review through every leverage point (use
software-leverage-review)
- For initial bootstrap of L2 skills (use
skill-builder)
Input
target_repo: absolute path to a repo whose .claude/skills/ we should audit (or this plugin's own repo)
mode (optional): repo-skills (default) checks L2 skills against the target's actual code; cross-doc checks the plugin's own docs for internal consistency; both runs both passes
Workflow
If mode includes repo-skills:
- List all L2 SKILL.md files under
<target_repo>/.claude/skills/.
- For each skill, parse the
## Repo Context section. Extract claimed facts (language, framework, tool versions, layout).
- Verify each claim against the target repo's actual state (Read/Glob/Grep).
- For each mismatch, emit a finding with
severity: warn (drift), the claimed value, the actual value, and a suggested update.
- Parse the
## Maturity Assessment and ## Growth Direction sections (added by skill-builder). Compare the claimed level against current signals (CI presence, contributor count, deploy cadence, public consumers, release tags). Apply maturity-drift checks:
severity: medium: the Maturity Assessment claims a level the target has outgrown (for example, "POC" with CI green for 90 days, multiple contributors, and external users).
severity: info: the Growth Direction's "natural next step" is now overdue (the documented trigger has fired without the step being addressed).
severity: info: Last reviewed is older than 6 months even when the assessment still appears accurate (stale review timestamp).
If mode includes cross-doc:
- Read the plugin's load-bearing docs:
README.md, MIGRATION.md, the design spec (if present), and docs/leverage-points.md.
- Extract LP counts, version strings, install commands, skill names, status labels.
- Cross-reference: do all sources agree? Surface contradictions as findings.
- For findings that propagate (e.g., a single rename mentioned in README and not in MIGRATION), one finding per affected file.
Validate reference-link integrity (regardless of mode):
- For every relative path mentioned in any SKILL.md, references doc, or prompt file in scope, verify the file exists.
- Broken links emit
severity: high findings.
Emit findings using the schema at ../software-leverage-review/slp-output-schema.yaml. The software_leverage_point field MUST be "skill-auditor". Note: the auditor is an operator skill, not a leverage point per se; the schema's software_leverage_point field is overloaded here for output-format consistency.
Output
Conforms to ../software-leverage-review/slp-output-schema.yaml per-LP shape.
Red Flags (anti-patterns the auditor surfaces as findings)
- An L2 skill claims a framework version the target's manifest no longer pins
- An L2 skill's
Repo Context lists tooling that no longer appears in the repo
- An L2 skill's
Maturity Assessment says POC, but the target now ships to external users with CI gates and multiple contributors
- An L2 skill's
Growth Direction documents a trigger that has fired (e.g., "first incident where log noise hides the cause") without the next step being addressed
- README and MIGRATION disagree on what is shipped
- An LP count appears differently in README vs spec vs MIGRATION
- A SKILL.md references a file that does not exist
- A SKILL.md cites the schema at an obsolete path
References & rationales
The "why" behind a drift-detection skill at all:
- Single source of truth. When the same fact lives in multiple documents, it diverges. Cite: Ousterhout (A Philosophy of Software Design, ch. 12) on code-as-documentation; the same principle for prose. The fix is either deduplication or automated enforcement.
- Doc drift as recurring failure mode. Three consecutive evals (001, 002, 003) flagged cross-doc inconsistency in this plugin. The auditor is the structural fix. Cite: Bertrand Meyer's "Open/Closed" applied to documentation ecosystems: open for extension via the catalog, closed for modification of the source-of-truth.
- L2 skills as artifacts that age. A repo skill bootstrapped today may be stale tomorrow when the target ships a major refactor. Cite: Hunt and Thomas's "broken windows" principle (The Pragmatic Programmer); unmaintained docs accumulate decay.
- Reference-link integrity as a symptom. Broken links signal renames or moves that the rest of the docs missed. Cite: Nygard's ADR practice and the related "links should resolve" hygiene rule.
A future enhancement: this skill could ship a scripts/audit.sh that runs a subset of the cross-doc checks deterministically (count-the-LPs grep, link-check). For now, the SKILL.md is the contract; an autonomous agent applies it manually.
Continual improvement
This skill is maintained at:
https://github.com/syntropic137/software-leverage-points/blob/main/skills/skill-auditor/SKILL.md
To improve it, edit the file directly and follow the chassis discipline in maintaining-software-leverage-points: regenerate catalogs, run just qa, then commit.
1---2name: skill-auditor3description: Use when reviewing whether a plugin's leverage-point skills still match the codebase or its own documentation; detect drift between SKILL.md claims and current state4---56# Skill Auditor (Operator Skill)78## Runtime requirement910**Invoke this skill via `claude -p`, not as a sibling skill in an existing session.** This skill dispatches per-SLP audit subagents in parallel; Claude Code's subagent-dispatch budget is one level deep, so an orchestrator that is itself a subagent cannot fan out. Running as `claude -p` gives this skill its own top-level session with a fresh dispatch budget.1112Concretely:1314```bash15claude -p "<audit-prompt>" --dangerously-skip-permissions \16 --output-format stream-json --verbose \17 --add-dir /path/to/plugin --add-dir /path/to/target-repo18```1920## When to Use2122- A repo's bootstrapped (L2) leverage skills have not been refreshed since major changes to the codebase23- Cross-document drift is suspected within a leverage-points plugin (README vs catalog vs MIGRATION)24- A planning agent or reviewer needs to verify that an SKILL.md's claims still hold before relying on it2526## When NOT to Use2728- For a single-skill content review (just read the skill itself)29- For end-of-feature review through every leverage point (use `software-leverage-review`)30- For initial bootstrap of L2 skills (use `skill-builder`)3132## Input3334- `target_repo`: absolute path to a repo whose `.claude/skills/` we should audit (or this plugin's own repo)35- `mode` (optional): `repo-skills` (default) checks L2 skills against the target's actual code; `cross-doc` checks the plugin's own docs for internal consistency; `both` runs both passes3637## Workflow38391. If `mode` includes `repo-skills`:40 - List all L2 SKILL.md files under `<target_repo>/.claude/skills/`.41 - For each skill, parse the `## Repo Context` section. Extract claimed facts (language, framework, tool versions, layout).42 - Verify each claim against the target repo's actual state (Read/Glob/Grep).43 - For each mismatch, emit a finding with `severity: warn` (drift), the claimed value, the actual value, and a suggested update.44 - Parse the `## Maturity Assessment` and `## Growth Direction` sections (added by `skill-builder`). Compare the claimed level against current signals (CI presence, contributor count, deploy cadence, public consumers, release tags). Apply maturity-drift checks:45 - `severity: medium`: the Maturity Assessment claims a level the target has outgrown (for example, "POC" with CI green for 90 days, multiple contributors, and external users).46 - `severity: info`: the Growth Direction's "natural next step" is now overdue (the documented trigger has fired without the step being addressed).47 - `severity: info`: `Last reviewed` is older than 6 months even when the assessment still appears accurate (stale review timestamp).48492. If `mode` includes `cross-doc`:50 - Read the plugin's load-bearing docs: `README.md`, `MIGRATION.md`, the design spec (if present), and `docs/leverage-points.md`.51 - Extract LP counts, version strings, install commands, skill names, status labels.52 - Cross-reference: do all sources agree? Surface contradictions as findings.53 - For findings that propagate (e.g., a single rename mentioned in README and not in MIGRATION), one finding per affected file.54553. Validate reference-link integrity (regardless of mode):56 - For every relative path mentioned in any SKILL.md, references doc, or prompt file in scope, verify the file exists.57 - Broken links emit `severity: high` findings.58594. Emit findings using the schema at `../software-leverage-review/slp-output-schema.yaml`. The `software_leverage_point` field MUST be `"skill-auditor"`. Note: the auditor is an operator skill, not a leverage point per se; the schema's `software_leverage_point` field is overloaded here for output-format consistency.6061## Output6263Conforms to `../software-leverage-review/slp-output-schema.yaml` per-LP shape.6465## Red Flags (anti-patterns the auditor surfaces as findings)6667- An L2 skill claims a framework version the target's manifest no longer pins68- An L2 skill's `Repo Context` lists tooling that no longer appears in the repo69- An L2 skill's `Maturity Assessment` says POC, but the target now ships to external users with CI gates and multiple contributors70- An L2 skill's `Growth Direction` documents a trigger that has fired (e.g., "first incident where log noise hides the cause") without the next step being addressed71- README and MIGRATION disagree on what is shipped72- An LP count appears differently in README vs spec vs MIGRATION73- A SKILL.md references a file that does not exist74- A SKILL.md cites the schema at an obsolete path7576## References & rationales7778The "why" behind a drift-detection skill at all:7980- **Single source of truth.** When the same fact lives in multiple documents, it diverges. Cite: Ousterhout (*A Philosophy of Software Design*, ch. 12) on code-as-documentation; the same principle for prose. The fix is either deduplication or automated enforcement.81- **Doc drift as recurring failure mode.** Three consecutive evals (001, 002, 003) flagged cross-doc inconsistency in this plugin. The auditor is the structural fix. Cite: Bertrand Meyer's "Open/Closed" applied to documentation ecosystems: open for extension via the catalog, closed for modification of the source-of-truth.82- **L2 skills as artifacts that age.** A repo skill bootstrapped today may be stale tomorrow when the target ships a major refactor. Cite: Hunt and Thomas's "broken windows" principle (*The Pragmatic Programmer*); unmaintained docs accumulate decay.83- **Reference-link integrity as a symptom.** Broken links signal renames or moves that the rest of the docs missed. Cite: Nygard's ADR practice and the related "links should resolve" hygiene rule.8485A future enhancement: this skill could ship a `scripts/audit.sh` that runs a subset of the cross-doc checks deterministically (count-the-LPs grep, link-check). For now, the SKILL.md is the contract; an autonomous agent applies it manually.8687## Continual improvement8889This skill is maintained at:90https://github.com/syntropic137/software-leverage-points/blob/main/skills/skill-auditor/SKILL.md9192To improve it, edit the file directly and follow the chassis discipline in [`maintaining-software-leverage-points`](../../.claude/skills/maintaining-software-leverage-points/SKILL.md): regenerate catalogs, run `just qa`, then commit.