Skill Test
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add Donchitos/Claude-Code-Game-Studios --skill skill-testCompatible with
Supported agents
description: "Validate skill files for structural compliance and behavioral correctness. Three modes: static (linter), spec (behavioral), audit (coverage report)."
argument-hint: "static [skill-name | all] | spec [skill-name] | category [skill-name | all] | audit"
allowed-tools: Read, Glob, Grep, Write
| name | skill-test |
| description | "Validate skill files for structural compliance and behavioral correctness. Three modes: static (linter), spec (behavioral), audit (coverage report)." |
| argument-hint | "static [skill-name | all] | spec [skill-name] | category [skill-name | all] | audit" |
| user-invocable | true |
| allowed-tools | Read, Glob, Grep, Write |
Validates .claude/skills/*/SKILL.md files for structural compliance and
behavioral correctness. No external dependencies — runs entirely within the
existing skill/hook/template architecture.
Four modes:
| Mode | Command | Purpose | Token Cost |
|---|---|---|---|
static | /skill-test static [name|all] | Structural linter — 7 compliance checks per skill | Low (~1k/skill) |
spec | /skill-test spec [name] | Behavioral verifier — evaluates assertions in test spec | Medium (~5k/skill) |
category | /skill-test category [name|all] | Category rubric — checks skill against its category-specific metrics | Low (~2k/skill) |
audit | /skill-test audit | Coverage report — skills, agent specs, last test dates | Low (~3k total) |
Determine mode from the first argument:
static [name] → run 7 structural checks on one skillstatic all → run 7 structural checks on all skills (Glob .claude/skills/*/SKILL.md)spec [name] → read skill + test spec, evaluate assertionscategory [name] → run category-specific rubric from CCGS Skill Testing Framework/quality-rubric.mdcategory all → run category rubric for every skill that has a category: in catalogaudit (or no argument) → read catalog, list all skills and agents, show coverageIf argument is missing or unrecognized, output usage and stop.
For each skill being tested, read its SKILL.md fully and run all 7 checks:
The file must contain all of these in the YAML frontmatter block:
name:description:argument-hint:user-invocable:allowed-tools:FAIL if any are absent.
The skill must have ≥2 numbered phase headings. Look for patterns like:
## Phase N or ## Phase N:## N. (numbered top-level sections)## headings if phases aren't explicitly numberedFAIL if fewer than 2 phase-like headings are found.
The skill must contain at least one of: PASS, FAIL, CONCERNS, APPROVED,
BLOCKED, COMPLETE, READY, COMPLIANT, NON-COMPLIANT
FAIL if none are present.
The skill must contain ask-before-write language. Look for:
"May I write" (canonical form)"before writing" or "approval" near file-write instructions"ask" + "write" in close proximity (within same section)WARN if absent (some read-only skills legitimately skip this).
FAIL if allowed-tools includes Write or Edit but no ask-before-write language is found.
The skill must end with a recommended next action or follow-up path. Look for:
/story-done, /gate-check)WARN if absent.
If frontmatter contains context: fork, the skill should have ≥5 phase headings
(## level or numbered Phase N headers). Fork context is for complex multi-phase
skills; simple skills should not use it.
WARN if context: fork is set but fewer than 5 phases found.
argument-hint must be non-empty. If the skill body mentions multiple modes
(e.g., "Mode A | Mode B"), the hint should reflect them. Cross-reference the
hint against the first phase's "Parse Arguments" section.
WARN if hint is "" or if documented modes don't match hint.
For a single skill:
=== Skill Static Check: /[name] ===
Check 1 — Frontmatter Fields: PASS
Check 2 — Multiple Phases: PASS (7 phases found)
Check 3 — Verdict Keywords: PASS (PASS, FAIL, CONCERNS)
Check 4 — Collaborative Protocol: PASS ("May I write" found)
Check 5 — Next-Step Handoff: WARN (no follow-up section found)
Check 6 — Fork Context Complexity: PASS (8 phases, context: fork set)
Check 7 — Argument Hint: PASS
Verdict: WARNINGS (1 warning, 0 failures)
Recommended: Add a "Follow-Up Actions" section at the end of the skill.
For static all, produce a summary table then list any non-compliant skills:
=== Skill Static Check: All 52 Skills ===
Skill | Result | Issues
-----------------------|--------------|-------
gate-check | COMPLIANT |
design-review | COMPLIANT |
story-readiness | WARNINGS | Check 5: no handoff
...
Summary: 48 COMPLIANT, 3 WARNINGS, 1 NON-COMPLIANT
Aggregate Verdict: N WARNINGS / N FAILURES
Find skill at .claude/skills/[name]/SKILL.md.
Look up the spec path from CCGS Skill Testing Framework/catalog.yaml — use the
spec: field for the matching skill entry.
If either is missing:
.claude/skills/."/skill-test audit
to see coverage gaps."Read the skill file and test spec file completely.
For each Test Case in the spec:
For each assertion, evaluate whether the skill's written instructions, if followed correctly given the fixture state, would satisfy it. This is a Claude-evaluated reasoning check, not code execution.
Mark each assertion:
For Protocol Compliance assertions (always present):
=== Skill Spec Test: /[name] ===
Date: [date]
Spec: CCGS Skill Testing Framework/skills/[category]/[name].md
Case 1: [Happy Path — name]
Fixture: [summary]
Assertions:
[PASS] [assertion text]
[FAIL] [assertion text]
Reason: The skill's Phase 3 says "..." but the fixture state means "..."
Case Verdict: FAIL
Case 2: [Edge Case — name]
...
Case Verdict: PASS
Protocol Compliance:
[PASS] Uses "May I write" before file writes
[PASS] Presents findings before asking approval
[WARN] No explicit next-step handoff at end
Overall Verdict: FAIL (1 case failed, 1 warning)
"May I write these results to CCGS Skill Testing Framework/results/skill-test-spec-[name]-[date].md
and update CCGS Skill Testing Framework/catalog.yaml?"
If yes:
CCGS Skill Testing Framework/results/CCGS Skill Testing Framework/catalog.yaml:
last_spec: [date]last_spec_result: PASS|PARTIAL|FAILFind skill at .claude/skills/[name]/SKILL.md.
Look up category: field in CCGS Skill Testing Framework/catalog.yaml.
If skill not found: "Skill '[name]' not found."
If no category: field: "No category assigned for '[name]' in catalog.yaml.
Add category: [name] to the skill entry first."
For category all: collect all skills with a category: field and process each.
category: utility skills are evaluated against U1 (static checks pass) and U2
(gate mode correct if applicable) only — skip to the static mode for U1.
Read CCGS Skill Testing Framework/quality-rubric.md.
Extract the section matching the skill's category (e.g., ### gate, ### team).
Read the skill's SKILL.md fully.
For each metric in the category's rubric table:
=== Skill Category Check: /[name] ([category]) ===
Metric G1 — Review mode read: PASS
Metric G2 — Full mode directors: FAIL
Gap: Phase 3 spawns only CD-PHASE-GATE; TD-PHASE-GATE, PR-PHASE-GATE, AD-PHASE-GATE absent
Metric G3 — Lean mode: PHASE-GATE only: PASS
Metric G4 — Solo mode: no directors: PASS
Metric G5 — No auto-advance: PASS
Verdict: FAIL (1 failure, 0 warnings)
Fix: Add TD-PHASE-GATE, PR-PHASE-GATE, and AD-PHASE-GATE to the full-mode director
panel in Phase 3.
"May I update CCGS Skill Testing Framework/catalog.yaml to record this category check
(last_category, last_category_result) for [name]?"
Read CCGS Skill Testing Framework/catalog.yaml. If missing, note that catalog doesn't exist
yet (first-run state).
Glob .claude/skills/*/SKILL.md to get the complete list of skills.
Extract skill name from each path (directory name).
Also read the agents: section from CCGS Skill Testing Framework/catalog.yaml to get the
complete list of agents.
For each skill:
spec: path from catalog, or glob CCGS Skill Testing Framework/skills/*/[name].md)last_static, last_static_result, last_spec, last_spec_result,
last_category, last_category_result, category from catalog (or mark as
"never" / "—" if not in catalog)priority: field (critical/high/medium/low)For each agent in catalog's agents: section:
spec: path from catalog, or glob CCGS Skill Testing Framework/agents/*/[name].md)last_spec, last_spec_result, category from catalog=== Skill Test Coverage Audit ===
Date: [date]
SKILLS (72 total)
Specs written: 72 (100%) | Never static tested: 72 | Never category tested: 72
Skill | Cat | Has Spec | Last Static | S.Result | Last Cat | C.Result | Priority
-----------------------|----------|----------|-------------|----------|----------|----------|----------
gate-check | gate | YES | never | — | never | — | critical
design-review | review | YES | never | — | never | — | critical
...
AGENTS (49 total)
Agent specs written: 49 (100%)
Agent | Category | Has Spec | Last Spec | Result
-----------------------|------------|----------|-------------|--------
creative-director | director | YES | never | —
technical-director | director | YES | never | —
...
Top 5 Priority Gaps (skills with no spec, critical/high priority):
(none if all specs are written)
Skill coverage: 72/72 specs (100%)
Agent coverage: 49/49 specs (100%)
No file writes in audit mode.
Offer: "Would you like to run /skill-test static all to check structural
compliance across all skills? /skill-test category all to run category rubric
checks? Or /skill-test spec [name] to run a specific behavioral test?"
After any mode completes, offer contextual follow-up:
static [name]: "Run /skill-test spec [name] to validate behavioral
correctness if a test spec exists."static all with failures: "Address NON-COMPLIANT skills first. Run
/skill-test static [name] individually for detailed remediation guidance."spec [name] PASS: "Update CCGS Skill Testing Framework/catalog.yaml to record this
pass date. Consider running /skill-test audit to find the next spec gap."spec [name] FAIL: "Review the failing assertions and update the skill
or the test spec to resolve the mismatch."audit: "Start with the critical-priority gaps. Use the spec template
at CCGS Skill Testing Framework/templates/skill-test-spec.md to create new specs."AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionskill-testExecute the skills CLI command in your project's root directory to begin installation:
epx add Donchitos/Claude-Code-Game-Studios --skill skill-testFetches skill-test from Donchitos/Claude-Code-Game-Studios and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/skill-test
Restart Cursor to activate skill-test. Access via /skill-testin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
code-review
Donchitos/Claude-Code-Game-Studios · Game Dev Code · same repo
art-bible
Donchitos/Claude-Code-Game-Studios · Game Design · same repo
gate-check
Donchitos/Claude-Code-Game-Studios · Game QA & Testing · same repo
reverse-document
Donchitos/Claude-Code-Game-Studios · Game Design · same repo
create-epics
Donchitos/Claude-Code-Game-Studios · Game Dev Planning · same repo
architecture-decision
Donchitos/Claude-Code-Game-Studios · Game Dev Planning · same repo
We added skill-test from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
skill-test reduced setup friction for our internal harness; good balance of opinion and flexibility.
Registry listing for skill-test matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: skill-test is focused, and the summary matches what you get after install.
skill-test is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
We added skill-test from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Keeps context tight: skill-test is the kind of skill you can hand to a new teammate without a long onboarding doc.
skill-test fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
skill-test is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
skill-test has been reliable in day-to-day use. Documentation quality is above average for community skills.
showing 1-10 of 53