### Skill Test
Works with
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
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:
Fetches 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:
Restart Cursor to activate skill-test. Access via /skill-test in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
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
0
total installs
0
this week
10.7K
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
10.7K
stars
| 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."Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
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.
JuliusBrussee/caveman
JuliusBrussee/caveman
whyashthakker/agent-skills-marketing
JuliusBrussee/caveman
whyashthakker/agent-skills-marketing
kimyx0207/findskill
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