Skip to content
Back to skills

skill-validator

ASecurity

Audits an existing SKILL.md file for structural issues, missing required fields, weak triggering descriptions, anti-patterns, and marketplace-readiness. Use this skill whenever a user says "check my skill", "review this SKILL.md", "audit my skill", "is this skill ready to publish", "why isn't my skill triggering", or pastes a SKILL.md file and asks for feedback. Also triggers when a user shares a skill file that looks incomplete, has a vague description, or is behaving unexpectedly. Returns a...

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
toolsgo

Works with

  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add Anvil-Code/skill-validator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of skill-validator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for skill-validator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anvil-code-skill-validator/badge)](https://www.skillsdirectory.com/skills/anvil-code-skill-validator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: skill-validator
description: >
  Audits an existing SKILL.md file for structural issues, missing required fields, weak triggering
  descriptions, anti-patterns, and marketplace-readiness. Use this skill whenever a user says
  "check my skill", "review this SKILL.md", "audit my skill", "is this skill ready to publish",
  "why isn't my skill triggering", or pastes a SKILL.md file and asks for feedback.
  Also triggers when a user shares a skill file that looks incomplete, has a vague description,
  or is behaving unexpectedly. Returns a scored report with specific, actionable fixes for every
  issue found. Always use this skill before publishing or sharing a skill file.
---

# Skill Validator — Anvil & Code

Audits SKILL.md files for structural correctness, triggering strength, and marketplace readiness.
Produces a scored report with every issue categorized by severity and a specific fix for each.

---

## How to Use

Paste a SKILL.md file (or its contents) and say "validate this" or "audit this skill."
The validator will scan it, score it, and return a full report.

---

## Validation Checklist

Run every check below. Report every finding — do not silently skip checks that pass.

### YAML Frontmatter (Critical — failures here make the skill invisible)

| Check | Pass | Fail |
|-------|------|------|
| `name` field present | ✅ | ❌ CRITICAL: Skill won't load |
| `name` in kebab-case | ✅ | ⚠️ WARNING: May cause ID conflicts |
| `description` field present | ✅ | ❌ CRITICAL: Skill will never trigger |
| `description` is 60–120 words | ✅ | ⚠️ WARNING: Under 60 = under-triggers; Over 200 = diluted signal |
| `description` starts with an action verb | ✅ | ⚠️ WARNING: Passive descriptions under-trigger by ~40% |
| `description` contains 3+ trigger phrases | ✅ | ⚠️ WARNING: Skill won't fire on real user inputs |
| `description` names input AND output format | ✅ | ⚠️ WARNING: Claude can't match skill to context |
| No placeholder text in YAML | ✅ | ❌ CRITICAL: Placeholder text breaks triggering |

### Body Structure (Important — missing sections produce unreliable output)

| Check | Pass | Fail |
|-------|------|------|
| Has a clear purpose statement in first 3 lines | ✅ | ⚠️ WARNING |
| Has an output format section | ✅ | ⚠️ WARNING: Claude will invent a format |
| Has an anti-patterns section | ✅ | ⚠️ INFO: Skill will occasionally produce bad output |
| Has at least 2 test cases | ✅ | ⚠️ INFO: No way to verify skill works without tests |
| No placeholder text ([TODO], [INSERT], etc.) | ✅ | ❌ CRITICAL: Incomplete skill |
| Under 500 lines total | ✅ | ⚠️ WARNING: Large skills load slowly and may be partially ignored |
| No instructions that contradict each other | ✅ | ❌ CRITICAL: Claude will behave unpredictably |

### Triggering Quality (Determines whether the skill actually fires)

Score the description on each dimension (1–3):

**Specificity** — Does it name specific inputs, outputs, and user phrases?
- 3: Names exact input format, output format, and 3+ trigger phrases
- 2: Names some inputs/outputs but trigger phrases are vague
- 1: Generic ("helps with X") — will not trigger reliably

**Action orientation** — Does it start with what Claude will DO?
- 3: Starts with verb: "Generates...", "Audits...", "Converts..."
- 2: Subject-first but active: "This skill generates..."
- 1: Passive or noun-first: "A skill for..." or "Can be used to..."

**Coverage** — Does it cover the real ways users will ask for this?
- 3: Includes formal request, casual request, and adjacent use case
- 2: Covers formal request only
- 1: Only matches one exact phrasing

**Total triggering score: X/9**
- 8–9: Strong — will trigger reliably
- 5–7: Moderate — will miss some valid use cases
- Below 5: Weak — needs a rewrite before publishing

### Anti-Pattern Detection

Flag any of the following if present:

- ❌ Unicode bullets (•, -, –) in YAML values — breaks YAML parsing
- ❌ HTML tags in the skill body — not rendered, creates noise
- ❌ Hardcoded file paths that don't exist in the skill's directory
- ❌ References to tools or MCPs not listed in a `compatibility` section
- ❌ Instructions that say "always" and also say "never" about the same thing
- ❌ Empty sections with only a heading
- ❌ Test cases with no expected output described

---

## Output Format

Return the report in this exact structure:

```
## Skill Validation Report: [skill name]

**Overall Score: [X/10]**
[One sentence verdict: Ready to publish / Needs minor fixes / Needs major revision]

---

### Critical Issues (fix before using)
[List each CRITICAL finding with: what's wrong, where it is, exact fix]

### Warnings (fix before publishing)
[List each WARNING finding with: what's wrong, where it is, recommended fix]

### Info (optional improvements)
[List each INFO finding with: what it is and why it's worth fixing]

### Triggering Score: [X/9]
[Specificity: X/3 — one-line reason]
[Action orientation: X/3 — one-line reason]
[Coverage: X/3 — one-line reason]

### What's Working Well
[2–3 things the skill does right — be specific]

### Recommended Next Step
[Single most important thing to fix first]
```

---

## Scoring Rubric (Overall 0–10)

Start at 10. Deduct:
- 3 points per CRITICAL issue
- 1 point per WARNING
- 0.5 points per INFO
- Floor at 0

A score of 7+ is publishable. Below 7, the skill needs revision before listing.

---

## Anti-Patterns

- Never give a passing score to a skill with any CRITICAL issues
- Never skip the triggering score — it's the most important single metric
- Never suggest fixes without explaining why the current version is wrong
- Never give vague feedback like "improve the description" — always give the specific rewrite

---

## Test Cases

**Test 1 — Strong skill**
Input: A well-formed SKILL.md with complete frontmatter, clear output format, 3+ test cases
Expected: Score 8–10, few or no warnings, positive "What's Working" section

**Test 2 — Weak description**
Input: A SKILL.md where the description is 15 words and starts with "A skill for..."
Expected: Triggering score 2–3/9, CRITICAL issue flagged for description length and action verb

**Test 3 — Placeholder text**
Input: A SKILL.md with [TODO: add examples here] in the body
Expected: CRITICAL issue flagged, score deducted, exact location of placeholder cited

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.