do-skills-auditlisted
Install: claude install-skill tomcounsell/ai
# Skills Audit
Audits every skill the repo has — `.claude/skills-global/` (synced to all machines) and
`.claude/skills/` (project-only) — plus user-level `~/.claude/skills/` orphan detection.
Two layers: a **deterministic lint** (script; code checks what code can verify) and an
optional **architecture pass** (`--arch`; model judgment against a fixed rubric).
## Why this audit exists (the economics)
A skill costs context in three places, each with different economics:
1. **Description** — ships in *every* session, used or not. The fleet total is the scarcest
resource here: budget 4,000 chars (~2% of context), per-skill target ≤120.
2. **Body (SKILL.md)** — loads once per invocation. Only what every invocation needs. Cap 500 lines.
3. **Sub-files** — load on demand. Reference tables, edge cases, templates live here.
Always-true policy belongs in CLAUDE.md, not in any skill. Most findings are misplacements
across these three boundaries.
## Quick start
```bash
python .claude/skills-global/do-skills-audit/scripts/audit_skills.py $ARGUMENTS
```
**If `$ARGUMENTS` was not substituted** (the command shows a literal `$ARGUMENTS`): extract
whatever followed `/do-skills-audit` in the user's message and pass it through; no flags
means default behavior.
| Flag | Description |
|------|-------------|
| `--fix` | Auto-fix trivial issues (missing name, whitespace, untracked build artifacts) |
| `--json` | JSON output (contract in the script docstring; consumed by the skills-audit r