Improving skills
Skill Mike-Jenkins-Org/skill-testing/.claude/skills/improving-skills
Iteratively improves an agent skill's SKILL.md by mutating it, scoring against a fixed composite (trigger accuracy, instruction quality, token efficiency, best-practices compliance), and keeping only changes that raise the score. Use when the user asks to tighten, shrink, or improve a SKILL.md while preserving its intended behavior.From its SKILL.md
npx -y skills add Mike-Jenkins-Org/skill-testing --skill improving-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Improving Skills
Adapts the autoresearch loop (modify → verify → keep-or-revert) for one purpose only: improving SKILL.md files. The target is always a single SKILL.md; no prompts, no agents, no generic code optimization.
When to use
The user wants to autonomously improve a specific SKILL.md — phrasings like "tighten this skill", "shrink the skill body without losing capability", "make this skill trigger more reliably", "run autoresearch on the X skill".
Always invoked manually via /improving-skills. The skill has
disable-model-invocation: true so it never auto-fires.
Steps
- Set up the run. Take the target SKILL.md path from the user. Copy
the entire skill directory to
runs/<run-id>/skill/(run-id is a short timestamp like2026-05-13-1542). Initialize a scratch git branch for the run. - Read configuration. Copy templates from this skill's
templates/intoruns/<run-id>/if not already present:program.md— goals and constraints. If<skill-dir>/goal.mdexists (drafted via/goal-improve-skill), seedprogram.mdfrom it instead of starting from the blank template.eval.json— scoring config (paths, weights, iteration cap)test-prompts.md— positive + negative trigger fixtures (drives the trigger-accuracy dimension) If<skill-dir>/references/learnings.mdexists and carries a "Retro log" of observations from real runs, read it and fold itsStatus: openentries intoprogram.md's "Notes for the agent" as a candidate-edit backlog — these are the human-flagged improvements the loop should try first. Treat them as candidates, not mandates: each must still pass the harness and raise the composite to be kept, and any unhelpful entry is just reverted. Verify the target ships atests.mdsidecar with ≥3 scenarios — the quality dimension scores candidates against those scenarios. Iftest-prompts.mdortests.mdis missing/empty, stop and ask the user to populate it before starting the loop.
- Score the baseline. Run
.claude/skills/improving-skills/scripts/score-skill.sh runs/<run-id>/skill/SKILL.mdand record the composite as iteration 0 inruns/<run-id>/results.tsv. - Run the loop. See loop.md for the iteration mechanics and stopping conditions.
- Value-add check. When the loop stops, run the value-add test
(
eval/value-add-test.md) once on the final kept candidate — the composite proves the skill is well-formed, not that it beats just asking the model. Skip only if the target is not a generative/judgment skill (deterministic / safety / format-compliance); then recordValue-add verdict: N/A (non-generative). Record the verdict (PASS / CONCERN / FAIL, lift, seeds) inruns/<run-id>/results.tsvand the report. A FAIL means the composite gains never reached the user (usually scaffolding burying substance) — recommend the substance-first remedy and do not call the skill done. This runs once at loop end, never per-iteration (it spawns ~4N sub-agents). See scoring.md → "What the composite does NOT measure". - Report. Summarize: starting score, best score, number of iterations,
what changed in the winning candidate, and the value-add verdict. Point the
user at
runs/<run-id>/skill/SKILL.mdand theresults.tsvaudit log.
Constraints
- One focused change per iteration. Resist the urge to refactor multiple things at once.
- Never modify frontmatter field names (
name,description) — only their values. Renamingdescriptiontodescwould break discovery. - Never drop below the harness floor: every kept iteration must pass
eval/check-skill.shcleanly (zero FAILs). - Preserve the skill's intended behavior. If
test-prompts.mdsays a prompt should fire, the candidate must keep it firing.
Output format
After the loop stops, emit:
## Improving-skills run <run-id>
- Target: <path>
- Iterations: <n>
- Baseline score: <score>
- Best score: <score> (iteration <k>)
- Token reduction: <baseline_tokens> → <best_tokens> (<percent>%)
- Trigger (simulated / empirical): <sim> / <emp>
- Value-add verdict: <PASS|CONCERN|FAIL, lift, seeds | N/A (non-generative)>
## What changed
<2-4 bullets describing the surviving edits>
## Audit log
runs/<run-id>/results.tsv
runs/<run-id>/skill/SKILL.md
Details
- Loop mechanics, retry behavior, stopping conditions: loop.md
- Scoring composite and how to interpret results.tsv: scoring.md
- Empirical trigger measurement (real firing vs simulated prediction):
eval/trigger-accuracy.md
What ships with it: 9 files
25.2 KB alongside SKILL.md, 2 of them executable
references/
- loop.md5.7 KB
- scoring.md5.9 KB
scripts/
- score-skill.shruns2.4 KB
- token-count.shruns568 B
templates/
- eval.json.template3.0 KB
- program.md.template1.8 KB
- test-prompts.md.template718 B
- PROMOTION-CHECKLIST.md1.5 KB
- tests.md3.6 KB