Claude Code Skill Spec Auditor
SkillFiles & storageAudit a Claude Code skill file against the official skills specification. Use when the user asks to review, audit, or check a skill for spec compliance, or when a skill file may be too long, have wrong frontmatter, or needs structural improvement.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Claude Code Skill Spec Auditor skill
What this skill tells your AI
The instructions your AI receives, as published by deanyou/virtuoso-cli in .claude/skills/skill-review/SKILL.md and read by ahel’s review.
Audit the skill named "$ARGUMENTS". If no argument was given, ask the user which skill to review.
Step 1 — Locate the skill file
find .claude/skills ~/.claude/skills -name "SKILL.md" 2>/dev/null | head -30
wc -l <path/to/SKILL.md>
ls -la <skill-dir>/
Read the SKILL.md file in full.
Step 2 — Checklist (score PASS / WARN / FAIL)
A. File size
| Check | Limit | Notes |
|---|---|---|
| SKILL.md line count | ≤ 500 lines | Excess is silently truncated before Claude sees it |
| reference.md exists when needed | — | Required if SKILL.md would overflow |
Module templates, long examples, and reference tables belong in reference.md, not the main file.
B. Frontmatter fields
| Field | Required | Constraint |
|---|---|---|
name | Yes | Must match the slash-command name exactly |
description | Yes | ≤ 1,536 chars; drives auto-trigger matching |
allowed-tools | Recommended | ToolName or ToolName(glob); glob uses bare *, not */prefix/ |
argument-hint | Recommended | Short hint shown in autocomplete UI |
allowed-tools patterns:
CORRECT: Bash(virtuoso *) Bash(vcli *) Read Write
WRONG: Bash(*/virtuoso *) — leading */ has unclear glob semantics
WRONG: Bash — no glob = allows ALL bash commands (too broad)
C. Skill body
| Check | What to look for |
|---|---|
| Arguments routing | Body references the ARGUMENTS variable to route on user input |
| Skill-dir-relative paths | Companion files use the CLAUDE_SKILL_DIR variable, not hardcoded absolute paths |
| Dynamic blocks | Time-sensitive content (git branch, date, env vars) injected at load time |
| No hardcoded paths | Absolute paths to project dirs should not appear in skill body |
D. Content quality
| Check | Guidance |
|---|---|
| Templates vs reference.md | Multiple long code blocks (>30 lines each) → extract to reference.md |
| No commented-out code | Clean, actionable content only |
| Runnable examples | Snippets work as-is or with minimal substitution |
Step 3 — Report
Produce a findings table:
| # | Check | Status | Finding |
|---|-------------------|--------|---------------------------------------------------|
| 1 | File size | FAIL | 792 lines — move templates to reference.md |
| 2 | allowed-tools | WARN | Bash(*/vcli *) — remove leading */ |
| 3 | argument-hint | FAIL | Missing from frontmatter |
| 4 | Arguments routing | WARN | ARGUMENTS variable not used — skill ignores input |
List recommended fixes in priority order (FAIL first, then WARN).
Step 4 — Offer to fix
Ask: "Apply all fixes now?" If yes:
- Extract overflow content to
reference.mdin the same directory - Fix frontmatter:
allowed-tools,argument-hint,name - Add arguments routing block and a load instruction pointing to
reference.md
Spec reference (invariants)
- SKILL.md > 500 lines: content past line 500 is dropped silently
descriptionis used for semantic matching — keep it focused, under ~1,000 charsallowed-toolscontrols which tools Claude may call during skill execution- The ARGUMENTS variable = everything the user typed after the slash command name
- The CLAUDE_SKILL_DIR variable = absolute path to the skill's directory (currently: ${CLAUDE_SKILL_DIR})
Signals
- GitHub stars
- 32
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
skill-review-deanyou- Source
- github.com/deanyou/virtuoso-cli