Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

validate-skills — Claude Code skill: what it does, how to install

Checks skills in skills/ against the agentskills.io specification and Claude Code practices. Use it when authoring or reviewing a skill collection.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add callstackincubator/agent-skills --skill validate-skills -a claude-code
Open on GitHub

What validate-skills does

The skill finds skill directories in skills/, reads each SKILL.md, and reports PASS or FAIL results. It checks name format and length, whether the directory matches name, description rules, plus license, metadata, and compatibility when present.

It also reviews Claude Code guidance: third-person descriptions, body length below 500 lines, Markdown links, and duplicated description text. Each reference file must be directly reachable from SKILL.md.

Cross-links between reference files are allowed when both files are listed in SKILL.md. That means you should fix hidden loading chains rather than ordinary navigation links.

What it helps with

  • check skill name formatting
  • match a directory to its name field
  • find oversized SKILL.md files
  • detect references hidden behind another reference
  • produce PASS and FAIL results per skill

Example prompts for the agent

  • `/validate-skills`
  • `/validate-skills check every skill in skills/`
  • `/validate-skills report agentskills.io specification violations`

How to install validate-skills

1Skills CLI (Vercel)

npx skills add callstackincubator/agent-skills --skill validate-skills -a claude-code

2Manually: put the files in place

~/.claude/skills/validate-skills/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/validate-skills/

From the same set4

The whole set →

Similar

cron-schedule ruvnet Schedules background worker runs via CronCreate during an active session. Useful for recurring security audits, test gap reviews, and codebase mapping. Claude Code CX Codex Cursor +1 902installs react-email vercel-labs Turns JSON email specs into HTML or plain-text output with React Email. Use it for email catalogs, generated specs, and transactional message templates. Claude Code CX Codex Cursor +1 1,400installs nitro Anthony Fu A skill with Nitro v3 references: file-based routing, route rules, caching, storage and deployment presets. Use it when the agent edits nitro.config or writes H3 handlers. Claude Code CX Codex Cursor +1 2,600installs image-to-ui UIZZE Turn a screenshot, mockup, or sketch into working interface code. The skill views the image, reproduces it exactly in code, then renders and compares to fix any mismatches. Claude Code CX Codex Cursor +1 63,500installs mmx-cli MiniMax-AI Teaches your agent to use the MiniMax CLI directly from the terminal. Helps generate text, images, video, speech, and music inside coding workflows. Claude Code CX Codex Cursor +1 1,600installs external-context Yeachan-Heo This skill breaks down your query into multiple search facets and spawns parallel document-specialist agents to search documentation and web simultaneously. Useful for gathering context on a topic or comparing approaches. Claude Code CX Codex Cursor +1 784installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs

Questions about validate-skills

How do I install validate-skills in Claude Code?

Run npx skills add callstackincubator/agent-skills --skill validate-skills -a claude-code, then run npx skills add callstackincubator/agent-skills --skill validate-skills -a claude-code again. The skill file is at ~/.claude/skills/validate-skills/SKILL.md.

What does validate-skills do?

It validates every skill under skills/ against agentskills.io rules and Claude Code practices. Its report marks each check as PASS or FAIL.

Which links does validate-skills flag?

It flags a reference file that is only discoverable through another reference file. Cross-links are valid when both endpoints are directly reachable from SKILL.md.

Source text

SKILL.md · MIT
---
name: validate-skills
description: Validates skills in this repo against agentskills.io spec and Claude Code best practices. Use via /validate-skills command.
license: MIT
metadata:
  author: Callstack
  tags: validation, linting, skill-authoring
---

# Validate Skills

Validate all skills in `skills/` against the agentskills.io spec and Claude Code best practices.

## Validation Checklist

For each skill directory, verify:

### Spec Compliance (agentskills.io)

| Check | Rule |
|-------|------|
| `name` format | 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens |
| `name` matches directory | Directory name must equal `name` field |
| `description` length | 1-1024 characters, non-empty |
| Optional fields valid | `license`, `metadata`, `compatibility` if present |

### Best Practices (Claude Code)

| Check | Rule |
|-------|------|
| Description format | Third person, describes what + when to use |
| Body length | Under 500 lines |
| Loading is one-level deep | `SKILL.md` is the only progressive-disclosure entry point: every reference file must be reachable from `SKILL.md`. References may cross-link each other for navigation (see note below). |
| Links are markdown | Use `[text](path)` not bare filenames |
| No redundancy | Don't repeat description in body |
| Concise | Only add context Claude doesn't already have |

> **One-level-deep vs. cross-linking.** The one-level-deep rule targets *progressive-disclosure loading chains* — a reference that can only be discovered by loading another reference first (`SKILL.md` → `a.md` → `b.md`, where `b.md` is not linked from `SKILL.md`). That is a defect: it hides content from the loader.
>
> It does **not** forbid *navigational* cross-links. Per [AGENTS.md](../../../AGENTS.md), reference files end with a "Related Skills" footer linking sibling references, and this is required. A cross-link is fine as long as both endpoints are also reachable directly from `SKILL.md`. Only flag a reference that is reachable *exclusively* through another reference.

## How to Run

1. Find all skill directories:
   ```bash
   fd -t d -d 1 . skills/
   ```

2. For each skill, read `SKILL.md` and check against the rules above

3. Report issues in this format:
   ```
   ## Validation Results

   ### skills/example-skill
   - [PASS] name format valid
   - [FAIL] name "example" doesn't match directory "example-skill"
   - [PASS] description length OK (156 chars)
   ```

## References

- [agentskills.io spec](https://agentskills.io/specification)
- [Claude Code best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)

© Callstack · MIT · callstackincubator/agent-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor