skill-tester

star 215

Validates all interactive skills in this repo against the Agent Skills spec, project conventions, and structural requirements. Runs quick_validate.py, checks line limits, verifies cross-references, and tests hook scripts. Use when skills have been added or modified and you want to verify everything passes before committing or submitting.

pskoett By pskoett schedule Updated 6/12/2026

name: skill-tester description: "Validates all interactive skills in this repo against the Agent Skills spec, project conventions, and structural requirements. Runs quick_validate.py, checks line limits, verifies cross-references, and tests hook scripts. Use when skills have been added or modified and you want to verify everything passes before committing or submitting."

Skill Tester

Validates all interactive (non-CI) skills in this repo. Runs the Anthropic skill-creator's quick_validate.py plus project-specific checks.

When to Use

  • After adding or modifying a skill
  • Before committing changes
  • Before submitting the plugin for Anthropic review
  • As part of the outer loop when eval-creator needs to verify skill quality

Checks

1. Anthropic Spec Validation

Run quick_validate.py on every skill in skills/ (excluding -ci variants):

for d in skills/*/; do
  skill=$(basename "$d")
  [[ "$skill" == *-ci ]] && continue
  python3 .claude/skills/skill-creator/scripts/quick_validate.py "$d"
done

Pass criteria: Exit code 0 for every skill. Frontmatter has only allowed keys (name, description, license, allowed-tools, metadata, compatibility). Name is kebab-case, max 64 chars. Description max 1024 chars, no angle brackets.

2. Project Convention Checks

For each skill directory:

Check Rule Severity
Name matches folder Frontmatter name == directory name Error
Line limit SKILL.md at or under 600 lines Error
No README.md Skill folders must not contain README.md Error
Scripts executable All .sh files in scripts/ must have execute permission Error
References exist Files referenced in SKILL.md body actually exist in references/ (agent-performed — not covered by run-tests.sh) Warning
Description non-empty Description field is present and non-empty Error

3. Cross-Reference Validation (agent-performed — not covered by run-tests.sh)

Verify that all skills listed in these files actually exist as directories:

  • CLAUDE.md — Skill References section
  • AGENTS.md — Skill References section
  • .github/copilot-instructions.md — Skill References section
  • README.md — Skills table

Also verify reverse: every skill directory is listed in all four files.

4. Hook Script Testing

For each skill with a scripts/ directory:

# Syntax check
bash -n scripts/*.sh

# Verify bash shebang (either form used in this repo)
head -1 scripts/*.sh | grep -qE "^#!(/bin/bash|/usr/bin/env bash)"

# Verify executable
test -x scripts/*.sh

5. Plugin Skill Validation (agent-performed — not covered by run-tests.sh)

For skills that exist in both skills/ and plugin/skills/:

Check Rule
Plugin frontmatter keys Only Claude Code-specific keys (hooks, user-invocable, argument-hint) added beyond spec
Content alignment Body content matches or plugin has extracted references
Beta markers consistent If skills/ copy has [Beta], plugin copy should too

Output Format

## Skill Test Results

**Date:** YYYY-MM-DD
**Skills tested:** N
**Passed:** N
**Warnings:** N
**Failed:** N

### Failures
- [skill-name]: [check]: [error message]

### Warnings
- [skill-name]: [check]: [warning message]

### All Passed
- [list of clean skills]

Running

Invoke manually:

/skill-tester

Or run the script directly:

bash skills/skill-tester/scripts/run-tests.sh

Coverage note: run-tests.sh automates Checks 1, 2, and 4 (minus the references-exist check). Checks 3 and 5 and the references-exist check are performed by the agent when /skill-tester is invoked — a green script run alone does not mean they passed.

What This Skill Does NOT Do

  • Does not test CI skills (use skill-tester-ci for those)
  • Does not modify skills — reports findings only
  • Does not run behavioral evals (trigger testing) — use skill-creator's run_eval.py for that
  • Does not replace the eval-creator regression framework — this tests skill structure, not promoted rules
Install via CLI
npx skills add https://github.com/pskoett/pskoett-ai-skills --skill skill-tester
Repository Details
star Stars 215
call_split Forks 40
navigation Branch main
article Path SKILL.md
More from Creator