solo-skill-audit ยท v1.0.0 ยท 2026-08-04 ยท sha256 0e0eee7e8e8568d7
solo-skill-audit v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/0e0eee7e8e8568d7.
---
name: solo-skill-audit
description: Use when "audit skill", "review skill quality", "check skill", "skill score", "skill checklist", "is this skill good", or evaluating skill against best practices. Do NOT use for KB audits (/audit) or code review (/review).
license: MIT
metadata:
author: fortunto2
version: "1.0.0"
openclaw:
emoji: "๐"
allowed-tools: Read, Grep, Glob, Bash
argument-hint: "<skill-name or path>"
---
# /skill-audit
Audit a skill against the quality checklist based on Anthropic's internal best practices for Claude Code skills. Reads the skill's SKILL.md, references/, scripts/, and evaluates across 12 dimensions.
Source: https://x.com/trq212/status/2033949937936085378
## Checklist Reference
- Scoring rubric, 12 dimensions: `references/checklist.md`
- The levers the scores measure โ invocation, information hierarchy, leading words, failure modes: `references/writing-skills.md`
- Term definitions used in findings: `references/skills-glossary.md`
## Steps
1. **Locate skill** from `$ARGUMENTS`:
- If name: search `skills/{name}/SKILL.md` in current project, then `~/.claude/plugins/**/skills/{name}/SKILL.md`
- If path: read directly
- If empty: list available skills via Glob `**/skills/*/SKILL.md`, ask via AskUserQuestion
2. **Read skill contents** (parallel):
- `SKILL.md` โ main skill file
- `references/*` โ all reference files (if dir exists)
- `scripts/*` โ all scripts (if dir exists)
- `assets/*` โ all assets (if dir exists)
- Count total lines of SKILL.md
3. **Read checklist** from `references/checklist.md`
4. **Evaluate each dimension** โ for every checklist item, assess based on what you read:
For each of the 12 dimensions:
- State what you found (evidence)
- Score 0, 1, or 2 (use rubric from checklist)
- If score < 2: give one specific fix
5. **Determine category** โ classify skill into one of 9 types from checklist. Flag if it straddles multiple.
6. **Failure-mode pass** โ read `references/writing-skills.md`, then check the skill for each named failure mode. Quote the offending line for every hit; a hit with no quote is a guess:
- **No-op** โ a line the model already obeys by default. Test each sentence in isolation: does it change behaviour versus the default?
- **Duplication** โ one meaning stated in more than one place.
- **Sediment** โ stale lines describing behaviour, paths, or tools that no longer exist.
- **Sprawl** โ long even after no-ops and duplication are removed; cure is disclosure into `references/`, not deletion.
- **Negation** โ steering by prohibition where a positive target would work. `Don't use X` names X; `use Y` doesn't.
- **Premature completion** โ a step whose completion criterion can't distinguish done from not-done.
- **Weak leading word** โ a description or body leaning on generic words instead of a compact pretrained concept the user actually types.
7. **Output scorecard:**
```
## Skill Audit: {skill-name}
**Score:** {N}/24 (Grade: {A/B/C/D/F})
**Category:** {type}
**SKILL.md:** {N} lines | **References:** {N} files | **Scripts:** {N} files
| # | Dimension | Score | Notes |
|---|-----------|-------|-------|
| 1 | Category Fit | {0-2} | {one line} |
| 2 | Description Quality | {0-2} | {one line} |
| 3 | Progressive Disclosure | {0-2} | {one line} |
| 4 | Gotchas | {0-2} | {one line} |
| 5 | Don't State Obvious | {0-2} | {one line} |
| 6 | Flexibility | {0-2} | {one line} |
| 7 | Setup & Config | {0-2} | {one line} |
| 8 | Memory & State | {0-2} | {one line} |
| 9 | Scripts & Code | {0-2} | {one line} |
| 10 | Allowed Tools | {0-2} | {one line} |
| 11 | Argument Handling | {0-2} | {one line} |
| 12 | Output & Artifacts | {0-2} | {one line} |
### Failure Modes
{mode} โ "{quoted line}" โ {fix}
(or "none found")
### Top 3 Fixes (highest impact)
1. {fix}
2. {fix}
3. {fix}
```
8. **Batch mode** โ if `$ARGUMENTS` is "all" or "*":
- Find all skills via Glob
- Run audit on each
- Output summary table sorted by score (worst first)
- Identify common weaknesses across the set
## Gotchas
1. **N/A dimensions still score 2** โ if a skill genuinely doesn't need config/state/scripts, don't penalize it. Score N/A as 2. Only score 0-1 when the skill SHOULD have it but doesn't.
2. **Gotchas โ Common Issues** โ "Common Issues" is troubleshooting (reactive). Gotchas are preventive โ things Claude would get WRONG by default. A skill with only "Common Issues" scores 1, not 2.
3. **Line count is a smell, not a rule** โ 500-line SKILL.md with no references is suspicious. But 400 lines of dense, non-obvious content is fine. Check if content COULD be extracted, not just if it's long.
4. **Description under 300 chars** โ long descriptions dilute the trigger signal. Claude scans ALL skill descriptions at session start. Shorter = sharper matching.
## Common Issues
### Can't find skill
**Cause:** Skill not in expected path or using different directory structure.
**Fix:** Use full path to SKILL.md as argument. Or run with "all" to discover available skills.
### Score seems unfair
**Cause:** Some dimensions don't apply to the skill type.
**Fix:** N/A dimensions score 2. Re-read the rubric โ it accounts for genuinely stateless or config-free skills.