agentleFS
lilangMaxlilangMax/ClaudeCodeGameStudios/.claude/skills/skill-improve/SKILL.md

skill-improve

Skill8 starsChanged 7 months agoMITView on GitHub

Improve a skill using a test-fix-retest loop. Runs static checks, proposes targeted fixes, rewrites the skill, re-tests, and keeps or reverts based on score change.

We split this skill into the rules it gives an agent

22 rules. 0 are common, 8 are distinctive, and 14 are very specific to this project.

  • 0

    Common

    Most of the 11 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 14

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the skill name from the first argument.

    line 18
  2. Very specific:

    Verify .claude/skills/[name]/SKILL.md exists.

    line 25
  3. Very specific:

    Run /skill-test static [name] and record the baseline score:

    line 32
  4. Distinctive:

    If baseline is 0 FAILs and 0 WARNs, note it and proceed to Phase 2b.

    line 43
  5. Very specific:

    Look up the skill's category: field in CCGS Skill Testing Framework/catalog.yaml.

    line 47
  6. Very specific:

    If no category: field is found, display: "Category: not yet assigned — skipping category checks." and skip to Phase 3.

    line 49
  7. Very specific:

    If category is found, run /skill-test category [name] and record the category baseline:

    line 53
  8. Distinctive:

    If BOTH static and category baselines are 0 FAILs and 0 WARNs, stop: "This skill already passes all static and category checks.

    line 63
  9. Very specific:

    Read the full skill file at .claude/skills/[name]/SKILL.md.

    line 70
  10. Distinctive:

    If G2 fails (gate mode, full directors not spawned): skill body never references all 4 PHASE-GATE director prompts

    line 84
  11. Distinctive:

    If A2 fails (authoring, no per-section May-I-write): skill asks once at the end, not before each section write

    line 86
  12. Distinctive:

    If T3 fails (team, BLOCKED not surfaced): skill doesn't halt dependent work on blocked agent

    line 88
  13. Distinctive:

    Write a targeted fix for each failure and warning.

    line 96
  14. Very specific:

    Ask: "May I write this improved version to .claude/skills/[name]/SKILL.md?"

    line 100
  15. Distinctive:

    If the user says no, stop here.

    line 102
  16. Very specific:

    Write the improved skill to .claude/skills/[name]/SKILL.md.

    line 110
  17. Very specific:

    If a category was assigned, also re-run /skill-test category [name] and record the new category score.

    line 113
  18. Very specific:

    Ask: "May I revert .claude/skills/[name]/SKILL.md using git checkout?" If yes: run git checkout -- .claude/skills/[name]/SKILL.md

    line 135
  19. Very specific:

    If yes: run git checkout -- .claude/skills/[name]/SKILL.md

    line 136
  20. Very specific:

    Run /skill-test static all to find the next skill with failures.

    line 142
  21. Very specific:

    Run /skill-improve [next-name] to continue the loop on another skill.

    line 143
  22. Very specific:

    Run /skill-test audit to see overall coverage progress.

    line 144

“Common” is measured: kept by at least 6 in 10 of the 11 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 Improve

Runs an improvement loop on a single skill: test → fix → retest → keep or revert.


Phase 1: Parse Argument

Read the skill name from the first argument. If missing, output usage and stop:

Usage: /skill-improve [skill-name]
Example: /skill-improve tech-debt

Verify .claude/skills/[name]/SKILL.md exists. If not, stop with: "Skill '[name]' not found."


Phase 2: Baseline Test

Run /skill-test static [name] and record the baseline score:

  • Count of FAILs
  • Count of WARNs
  • Which specific checks failed (Check 1–7)

Display to the user:

Static baseline:   [N] failures, [M] warnings
Failing: Check 4 (no ask-before-write), Check 5 (no handoff)

If baseline is 0 FAILs and 0 WARNs, note it and proceed to Phase 2b.

Phase 2b: Category Baseline

Look up the skill's category: field in CCGS Skill Testing Framework/catalog.yaml.

If no category: field is found, display: "Category: not yet assigned — skipping category checks." and skip to Phase 3.

If category is found, run /skill-test category [name] and record the category baseline:

  • Count of FAILs
  • Count of WARNs
  • Which specific category rubric metrics failed

Display to the user:

Category baseline: [N] failures, [M] warnings  ([category] rubric)

If BOTH static and category baselines are 0 FAILs and 0 WARNs, stop: "This skill already passes all static and category checks. No improvements needed."


Phase 3: Diagnose

Read the full skill file at .claude/skills/[name]/SKILL.md.

For each failing or warning static check, identify the exact gap:

  • Check 1 fail → which frontmatter field is missing
  • Check 2 fail → how many phases found vs. minimum required
  • Check 3 fail → no verdict keywords anywhere in the skill body
  • Check 4 fail → Write or Edit in allowed-tools but no ask-before-write language
  • Check 5 warn → no follow-up or next-step section at the end
  • Check 6 warn → context: fork set but fewer than 5 phases found
  • Check 7 warn → argument-hint is empty or doesn't match documented modes

For each failing or warning category check (if category was assigned in Phase 2b), identify the exact gap in the skill's text. For example:

  • If G2 fails (gate mode, full directors not spawned): skill body never references all 4 PHASE-GATE director prompts
  • If A2 fails (authoring, no per-section May-I-write): skill asks once at the end, not before each section write
  • If T3 fails (team, BLOCKED not surfaced): skill doesn't halt dependent work on blocked agent

Show the full combined diagnosis to the user before proposing any changes.


Phase 4: Propose Fix

Write a targeted fix for each failure and warning. Show the proposed changes as clearly marked before/after blocks. Only change what is failing — do not rewrite sections that are passing.

Ask: "May I write this improved version to .claude/skills/[name]/SKILL.md?"

If the user says no, stop here.


Phase 5: Write and Retest

Record the current content of the skill file (for revert if needed).

Write the improved skill to .claude/skills/[name]/SKILL.md.

Re-run /skill-test static [name] and record the new static score. If a category was assigned, also re-run /skill-test category [name] and record the new category score.

Display the comparison:

Static:   Before [N] failures, [M] warnings  →  After [N'] failures, [M'] warnings
Category: Before [N] failures, [M] warnings  →  After [N'] failures, [M'] warnings  (if applicable)
Combined change: improved / no change / worse

Phase 6: Verdict

Count the combined failure total: static FAILs + category FAILs + static WARNs + category WARNs.

If combined score improved (combined failure count is lower than baseline): Report: "Score improved. Changes kept." Show a summary of what was fixed in each dimension.

If combined score is the same or worse: Report: "Combined score did not improve." Show what changed and why it may not have helped. Ask: "May I revert .claude/skills/[name]/SKILL.md using git checkout?" If yes: run git checkout -- .claude/skills/[name]/SKILL.md


Phase 7: Next Steps

  • Run /skill-test static all to find the next skill with failures.
  • Run /skill-improve [next-name] to continue the loop on another skill.
  • Run /skill-test audit to see overall coverage progress.

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.