agentleFS
fagemxfagemx/edda/.claude/skills/skill-test/SKILL.md

skill-test

Skill36 starsChanged 2 months agoApache-2.0View on GitHub

Test a Claude Code skill — verify it runs, references exist, output is sane

14 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use soak-test, team-live-ops and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • lilangMaxSkill

    soak-test

    Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.

    Also in 9 projects that use this

  • lilangMaxSkill

    team-live-ops

    Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.

    Also in 9 projects that use this

  • +10 more from lilangMax

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 13 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run static checks + simulate with a reasonable sample input.

    line 23
  2. Very specific:

    Read the SKILL.md and verify:

    line 33
  3. Very specific:

    Every file path, command, and skill reference in the SKILL.md must be real.

    line 50
  4. Distinctive:

    If user provided args: use those.

    line 123
  5. Distinctive:

    If not: construct a reasonable sample input from the skill's usage examples.

    line 124
  6. Distinctive:

    Follow the skill's output template?

    line 141

“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill Test

You are a skill QA engineer. Your job is to take a skill and verify it actually works — not in theory, but against the real codebase.

Usage

skill-test <skill-name>                  # Full test (static + simulation)
skill-test <skill-name> static           # Static checks only (fast)
skill-test <skill-name> simulate <args>  # Simulate with specific input
skill-test all                           # Batch static check on all skills

Operations

Operation: Full Test (default)

Run static checks + simulate with a reasonable sample input.


Operation: static

Fast structural validation. No execution, just checks.

Check 1: Format

Read the SKILL.md and verify:

cat .claude/skills/<skill-name>/SKILL.md
ItemCheckHow
FrontmatterHas name and descriptiongrep for --- block at top
Name matchname: matches directory namecompare values
DescriptionOne line, starts with verb/nounread it
Role statementFirst paragraph defines who the agent isread first 5 lines after frontmatter
OperationsHas args parsing if multi-modegrep for args or ## Operations
WorkflowHas ### Step sectionsgrep for ### Step

Check 2: References Exist

Every file path, command, and skill reference in the SKILL.md must be real.

# Extract file paths referenced in the skill
grep -oE '`[^`]*\.(rs|toml|md|yml|json)`' .claude/skills/<skill-name>/SKILL.md

# For each path, check if it exists
ls <path> 2>/dev/null || echo "MISSING: <path>"

# Extract skill references
grep -oE '/[a-z-]+`|`/[a-z-]+' .claude/skills/<skill-name>/SKILL.md

# For each referenced skill, check if it exists
ls .claude/skills/<referenced-skill>/SKILL.md 2>/dev/null || echo "MISSING: <skill>"

# Extract bash commands and check if tools exist
grep -oE '(cargo|gh|git|docker|flyctl|npm|pnpm) [a-z]+' .claude/skills/<skill-name>/SKILL.md | sort -u

Check 3: Quality Score

Score against the six characteristics from /skill-craft:

#CharacteristicHow to Check
1Framework not checklistAre instructions thinking-oriented or tick-box?
2Concrete commandsCount bash code blocks with real commands
3Output templateIs there a ## Output or template section with placeholders?
4Multiple operationsDoes it parse args for different modes?
5Anti-patternsIs there a "NOT to do" or "Anti-Patterns" section?
6Decision frameworkIs there a decision table or tree?

Static Report

## Static Test: <skill-name>

### Format
- Frontmatter: ✅/❌
- Role statement: ✅/❌
- Operations: ✅/❌ (or N/A for single-mode)
- Workflow steps: ✅/❌

### References
| Reference | Type | Exists |
|-----------|------|--------|
| `docs/DECISIONS.md` | file | ✅ |
| `/testing` | skill | ✅ |
| `cargo clippy` | command | ✅ |
| `docs/MISSING.md` | file | ❌ |

### Quality Score
| # | Characteristic | Score |
|---|---------------|-------|
| 1 | Framework | ✅/⚠️/❌ |
| 2 | Commands | ✅/⚠️/❌ |
| 3 | Output template | ✅/⚠️/❌ |
| 4 | Operations | ✅/⚠️/❌ |
| 5 | Anti-patterns | ✅/⚠️/❌ |
| 6 | Decision framework | ✅/⚠️/❌ |

### Verdict
**PASS / WARN / FAIL** — <summary>

Operation: simulate

Dry-run the skill's workflow with real or sample input.

Step 1: Determine Input

If user provided args: use those. If not: construct a reasonable sample input from the skill's usage examples.

Step 2: Walk Through Workflow

For each ### Step in the skill:

  1. Read the step instructions
  2. Execute the commands (read-only — don't create files, PRs, or issues)
    • For grep/find/ls commands: run them and check output
    • For gh/git commands: run read-only variants (e.g., gh issue list, git log)
    • For write commands (Write, Edit, gh issue create): simulate only — describe what would be created
  3. Check output format — does the actual output match the skill's template?
  4. Record any failures — command errors, empty results, missing files

Step 3: Evaluate Output

Does the simulated output:

  • Follow the skill's output template? (structure match)
  • Contain real data from the codebase? (not hallucinated)
  • Answer the question the skill claims to answer? (purpose match)

Simulation Report

## Simulation Test: <skill-name>

### Input
`<args used>`

### Step-by-Step Results

#### Step 1: <step name>
- Commands executed: <count>
- Results: ✅ produced expected output / ❌ <error>
- Sample output:

<first 10 lines of actual output>


#### Step 2: <step name>
...

### Output Evaluation
- Template match: ✅/❌ — <does output follow the defined format?>
- Real data: ✅/❌ — <does output reference actual files/code?>
- Purpose match: ✅/❌ — <does output answer the skill's stated question?>

### Verdict
**PASS / WARN / FAIL** — <summary>

### Issues Found
1. <specific issue with file:line reference in SKILL.md>
2. ...

Operation: all

Batch static check on every skill.

Workflow

ls .claude/skills/

For each skill directory, run static checks. Produce summary:

## Batch Static Test

| Skill | Format | References | Quality | Verdict |
|-------|--------|-----------|---------|---------|
| ground-check | ✅ | ✅ | 5/6 | PASS |
| path-forward | ✅ | ✅ | 5/6 | PASS |
| pr-review | ✅ | ⚠️ 1 missing | 6/6 | WARN |
| skill-alias | ✅ | ✅ | 3/6 | WARN |
| ... | ... | ... | ... | ... |

### Summary
- Total: <count>
- PASS: <count>
- WARN: <count>
- FAIL: <count>

### Top Issues
1. <most common issue across skills>
2. ...

Anti-Patterns

  1. Testing format only — A skill can have perfect YAML and still be useless. Always simulate.
  2. Running destructive commands — Never execute write operations during testing. Simulate them.
  3. Passing everything — If a skill has no anti-patterns section and no decision framework, it's a WARN at best, not a PASS.
  4. Testing in isolation — Check cross-skill references. If skill A references /testing, verify that /testing skill exists and is compatible.
  5. Ignoring staleness — A skill that references a crate that doesn't exist is broken, even if the format is perfect.

What Triggers FAIL vs WARN vs PASS

VerdictCondition
FAILFrontmatter missing/broken, OR referenced files don't exist, OR simulation produces errors
WARNQuality score < 4/6, OR some references stale, OR output doesn't match template
PASSFormat correct, all references exist, quality ≥ 4/6, simulation produces expected output

References

  • Quality standards: .claude/skills/skill-craft/SKILL.md
  • Best reference skills: pr-review, issue-scan, code-quality

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.