Install any skill in seconds. Free to start, no credit card required.
Get Started Free →crystian/skill-optimizer
Optimizer that refines and professionalizes AI agent skills through real usage — saves tokens, eliminates redundancy, and tightens instructions so skills cost less to run. Learns from mistakes, reviews quality, and improves over time. Observes skill execution in the current conversation, analyzes up to four sources (conversation friction, file diffs, user feedback, static diagnostic) plus accumulated lessons, and proposes concrete improvements to the target skill's SKILL.md. Works with Claude Co
Passed 14 of 19 test cases with the skill, and 9 of 19 without it.
and 8 more in the full report
8 fixed8 passed either way4 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
During skill evaluation, uncommitted local modifications exist after running a tool. Which git subcommand is used to inspect unstaged changes made during skill execution?
| Checked | Without skill | With skill |
|---|---|---|
| Uses git diff to examine file modifications made during execution. | Missed | Passed |
The instructions your model reads when the skill loads.
Born from real-world production usage across multiple projects. Every diagnostic category, every proposal flow, and every guardrail exists because it solved a real problem in a real skill.
Kaizen (改善) for AI agent skills. Observe how a skill performed, find what went wrong or could be better, and propose concrete changes to its SKILL.md.
Diagnoses root causes and proposes improvements — you decide each one. Tracks recurrence in LESSONS.md with automatic importance escalation.
/skill-optimizer (default) — enter listening mode. Output ONLY this single line:
"skill-optimizer is observing the conversation, waiting for a skill to complete..."
Nothing else — no explanations, no additional context, no prompts. Be silent.
Then wait — do not prompt or block. The user will manually invoke
/skill-optimizer --review when ready to analyze.
This is the ideal scenario — the optimizer observes the skill in real time.
/skill-optimizer <name> — target a specific skill by name
/skill-optimizer --diagnose or /skill-optimizer <name> --diagnose — run static
diagnostic directly on the SKILL.md without prior observation. Skips conversation
friction and file diffs — uses static diagnostic + user feedback only.
If no target can be resolved, ask the user: "Which skill do you want to diagnose?
Provide the name or path."
/skill-optimizer --review — skip to accumulated lessons (no skill execution needed).
If no target can be resolved (no name, no prior skill in conversation), ask the
user: "Which skill do you want to review? Provide the name or path."
If multiple skills were executed in this conversation, ask the user:
"Multiple skills detected — which one do you want to review?"
If no LESSONS.md exists, inform the user: "No accumulated lessons found —
static diagnostic and user feedback will still run. Run /skill-optimizer
after a skill execution to start collecting lessons."
/skill-optimizer <name> --review — review accumulated lessons for the named skill.
Combines target resolution with --review mode. If no LESSONS.md exists,
apply the same fallback: inform the user and offer a static diagnostic.
Argument order does not matter — --review <name> is equivalent to <name> --review.
--diagnose and --review are mutually exclusive — if both are provided, inform the
user: "Cannot use --diagnose and --review together. Pick one." and stop.
test cases passed, vs 9 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.