create-skill
Skill20 starsChanged 13 days agoMITView on GitHub
Scaffolds, diagnoses, and prunes agent skills. Modes: `scaffold` (default — runs the job once without a skill on a real input, records every correction, then writes a skill made of only those corrections), `diagnose` (retrospective failure analysis that emits a confidence-gated unified diff against any skill declaring a diagnostic surface), `prune` (deletes unused skills and trims or deletes those whose with/without-skill eval shows no lift over a same-length dummy). Triggers on "create a skill", "scaffold a skill", "new SKILL.md", "diagnose this skill", "why did the skill miss this", "prune my skills", "clean up my skills", "/create-skill".
142 other projects use a version of this.
Adopted by
Most recently taken up by
- lancy69/skillstheir own version, first seen Nov 8, 2026
- CherryHQ/cherry-studiotheir own version, first seen Nov 8, 2026
- niilohlin/skillstheir own version, first seen Nov 8, 2026
- sankalpaacharya/skillstheir own version, first seen Nov 8, 2026
- zalogarcia/zalo-claude-code-setuptheir own version, first seen Nov 8, 2026
- serbyte-development/shellby-mcptheir own version, first seen Nov 8, 2026
Used with
Projects with it also use review-bugbot, migrate-to-skills 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.
0mlkrizzz655335vSkillreview-bugbot
缺陷导向代码审查。用 Bugbot 子代理找 bug。
Also in 5 projects that use this
32103210Skillmigrate-to-skills
Convert 'Applied intelligently' Cursor rules (.cursor/rules/*.mdc) and slash commands (.cursor/commands/*.md) to Agent Skills format (.cursor/skills/). Use when you want to migrate rules or commands to skills, convert .mdc rules to SKILL.md format, or consolidate commands into the skills directory.
Also in 8 projects that use this
32103210Skillupdate-cursor-settings
Modify Cursor/VSCode user settings in settings.json. Use when you want to change editor settings, preferences, configuration, themes, font size, tab size, format on save, auto save, keybindings, or any settings.json values.
Also in 8 projects that use this
PandelisZSkillupdate-cli-config
View and modify Cursor CLI configuration settings in ~/.cursor/cli-config.json. Use when the user wants to change CLI settings, configure permissions, switch approval mode, enable vim mode, toggle display options, configure sandbox, or manage any CLI preferences.
Also in 7 projects that use this
yawningwhaleAISkillbuild-premium-website
Build a premium, animated marketing website (React + Vite + Tailwind + GSAP) for any industry. Use when the user asks to "build a website", "make a landing page for [business]", "build a marketing site", or wants a high-end animated company website. Adapts color, copy, services, and signature animation to the industry.
Also in 6 projects that use this
yawningwhaleAISkillinstantly-campaign
Create a new Instantly cold-email campaign in the proven 5-email structure of the user's top-performing campaign (~16% reply rate). Use when the user wants to launch a new outbound campaign, write a cold email sequence, create an Instantly campaign, draft outreach for a new service or niche, or set up a sales sequence.
Also in 5 projects that use this
- +1 more from 32103210
Other versions142 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 142
- microsoft/vscode★ 195ksame name
- CherryHQ/cherry-studio★ 53ksame name
- videojs/video.js★ 40ksame name
- BuilderIO/agent-native★ 7.6ksame name
- stagewise-io/stagewise★ 6.8ksame name
- dotnet/skills★ 5.9ksame name
- xstongxue/best-skills★ 2.9ksame name
- Lilac-Labs/gini-agent★ 1.9ksame name
- Open-Curiosity/gini-agent★ 1.9ksame name
- mattmireles/gemma-tuner-multimodal★ 1.5ksame name
132 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository48 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- skills/workflow/autonomous-workflow/CLAUDE.mdCLAUDE.md
- ideateSkill
- interviewSkill
- playwright-trace-analyzerSkill
- profile-optimizerSkill
- rum-trackingSkill
- screencastSkill
- video-analyserSkill
- youtube-transcriptSkill
- docsSkill
- handoffSkill
- optimize-claude-mdSkill
- persistent-memorySkill
- attach-mediaSkill
- ci-auto-fixSkill
- create-prSkill
- github-actions-authorSkill
- resolve-conflictsSkill
- animations-nativeSkill
- animationsSkill
- behavioral-designSkill
- chartingSkill
- storybookSkill
- uxSkill
- visual-designSkill
- ai-engineeringSkill
- confidenceSkill
- criticalSkill
- impact-mapSkill
- jev-assertSkill
- measurableSkill
- optimize-approachSkill
- polishSkill
- pr-reviewSkill
- review-loopSkill
- tddSkill
- verify-behaviorSkill
- aw-verifySkill
- e2e-testing-mobileSkill
- e2e-testingSkill
- telemetry-verifySkill
- ui-verifySkill
- autonomous-workflowSkill
- aw-create-planSkill
- aw-create-walkthroughSkill
- fix-bugSkill
- implement-suggestionSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 6 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 132 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Write a skill from what a real run of the job got wrong, harden an existing skill after it failed, and delete skills that do not earn their …
- Very specific: line 48
If the user typed a path or skill name as $ARGUMENTS, treat it as the target for diagnose/prune.
- Distinctive: line 63
Run the job first, write the skill second.
- Distinctive: line 67
No one to ask: When the user said not to ask questions, or the session is headless, answer each question below yourself from the request …
- Very specific: line 80
Ask the user, in one message, for the four brief fields in rules/run-first.md § Step 1: task, a real input, guardrails, and a definition of …
- Distinctive: line 81
Do not ask for the skill's name, description, or structure yet.
- Very specific: line 85
Do the job on the real input, in this session, without the skill, following rules/run-first.md § Step 2.
- Very specific: line 87
Write each correction to the ledger at .agent/{branch}/skill-run-<task-slug>.md as it happens.
- Very specific: line 109
Add argument-hint only when the run took an argument, allowed-tools only when the run needed repeated permission prompts, and the portable …
- Distinctive: line 113
Write the skill from the ledger, not from the process:
- Very specific: line 122
Never add a step the agent did correctly in the run, a heading with no ledger row under it, or frontmatter the run did not need.
- Very specific: line 123
Start from templates/SKILL.minimal.md.
- Very specific: line 139
Run node ${CLAUDE_SKILL_DIR}/scripts/validate-skill.mjs <dir> [--portable], fix every FAIL, and report its Self-check: line verbatim.
- Very specific: line 186
If the target has not declared a surface, Diagnose Mode falls back to inferring phases from the target body's H2 sections (SKILL.md for …
- Very specific: line 198
When a target declares a ## Lessons scope, Diagnose Mode reads it as evidence (Step 2).
- Distinctive: line 208
Delete candidates: skills never invoked.
- Very specific: line 234
A skill is the list of what the agent got wrong: Do the job once without it and write only the corrections.
- Distinctive: line 235
Every line is a recurring cost: Write nothing the model already does.
“Common” is measured: kept by at least 6 in 10 of the 132 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.
Files
Create Skill
Write a skill from what a real run of the job got wrong, harden an existing skill after it failed, and delete skills that do not earn their context.
Detailed rules live in rules/*.md and templates in templates/*.md; load them on demand.
Mode Detection
Parse $ARGUMENTS (first token) and detect the mode:
| Mode | Default | Trigger |
scaffold | yes | Default. "create", "scaffold", "new skill", or no mode argument. |
diagnose | "diagnose", "why did <skill> miss this", or $0 == "diagnose". | |
prune | "prune", "clean up my skills", "which skills are useless", or $0 == "prune". |
If the user typed a path or skill name as $ARGUMENTS, treat it as the
target for diagnose/prune; for scaffold it is the proposed
skill name.
State the detected mode and target in one line before continuing. Example:
Mode: scaffold
Target: skills/<category>/<proposed-name>/Scaffold Workflow (default)
Run the job first, write the skill second.
Phases 0–2 do the job with no skill loaded and record every correction it needed; Phases 3–5 write a skill made of those corrections only and prove it closes them.
The full procedure for Phases 0–2 is rules/run-first.md; why it beats designing the skill up front is references/run-first-rationale.md.
No one to ask. When the user said not to ask questions, or the session is headless, answer each question below yourself from the request and the run, record the answers in the ledger, and continue.
| Phase | Name | Gate |
| 0 | Brief | Task, real input, guardrails, and a definition of done that can fail |
| 1 | Run | The job ran on the real input with no skill and passes its definition of done, and every correction is in the ledger — or the run was waived with a recorded reason |
| 2 | Distill | Every ledger row routed; no-skill exit evaluated; name, description, and invocation settled |
| 3 | Write | Every skill line traces to a ledger row, a guardrail, or the definition of done |
| 4 | Check | scripts/validate-skill.mjs is PASS; wiring done when inside this repo |
| 5 | Verify | A fresh run with the skill needed none of the ledger's corrections |
Phase 0 — Brief
Ask the user, in one message, for the four brief fields in rules/run-first.md § Step 1: task, a real input, guardrails, and a definition of done.
Do not ask for the skill's name, description, or structure yet.
Phase 1 — Run
Do the job on the real input, in this session, without the skill, following rules/run-first.md § Step 2.
Show the output with its definition-of-done result, take the user's corrections, and repeat until they accept it.
Write each correction to the ledger at .agent/{branch}/skill-run-<task-slug>.md as it happens.
✗ Wrong — writing the skill from the user's description of the process
User: create a skill for our weekly client report
Agent: Here is skills/…/weekly-client-report/SKILL.md with 9 steps …
✓ Right — doing the report first
User: create a skill for our weekly client report
Agent: Give me this week's export, what I must not touch, and what "done" means.
I'll produce the report without a skill, you correct me, and the skill
will be made of those corrections.Phase 2 — Distill
- Route every ledger row (
rules/run-first.md§ Step 4) and apply the no-skill exit (§ Step 5). On a zero count, stop here and say no skill is needed — unless the run was waived, which skips the exit. - Propose these three, derived from the run, and confirm them with the user in one message:
- Name — kebab-case, ≤ 64 chars, no
anthropicorclaude. - Description — third person, what it does and when to use it, with 3–8 trigger phrases including how the user asked in Phase 0 (
rules/description-writing.md). - Invocation — model-invokable (default) or slash-only (
disable-model-invocation: true) (rules/invocation-control.md).
- Name — kebab-case, ≤ 64 chars, no
- Add
argument-hintonly when the run took an argument,allowed-toolsonly when the run needed repeated permission prompts, and theportableprofile only when the user asks for it (rules/frontmatter.md§ Portability profile).
Phase 3 — Write
Write the skill from the ledger, not from the process:
| Ledger route | Becomes |
skill gotcha | one line or one short block under ## Gotchas |
check script | scripts/check-<name>.mjs (zero dependencies, ${CLAUDE_SKILL_DIR}-anchored; rules/scripts-and-assets.md) plus one line to run it before reporting done |
subagent step | one instruction to run that step in a sub-agent and return only its result |
hook, workspace fact | its routed destination, never the skill |
Never add a step the agent did correctly in the run, a heading with no ledger row under it, or frontmatter the run did not need.
Start from templates/SKILL.minimal.md; split into rules/ only when the body passes 200 lines (rules/structure-decision.md).
<!-- ✗ Wrong — a manual for the process, plus ceremony -->
## Overview / ## Steps (1. Read the export. 2. Compute totals. …) / ## Best practices / ## Troubleshooting
<!-- ✓ Right — only what the run got wrong, and how done is checked -->
## Gotchas
- Refund rows carry positive amounts; subtract them.
- JPY has no minor unit; never divide its amount by 100.
Before reporting done, run `node ${CLAUDE_SKILL_DIR}/scripts/check-report.mjs report.md` and show its last line.Phase 4 — Check
Run node ${CLAUDE_SKILL_DIR}/scripts/validate-skill.mjs <dir> [--portable], fix every FAIL, and report its Self-check: line verbatim.
FAIL FM05 SKILL.md:3 — description must be non-empty and <= 1024 chars, got 1180
Self-check: FAIL — 1 failingInside this repo (it has scripts/sync-symlinks.sh), place the skill at skills/<category>/<name>/, run bash scripts/sync-symlinks.sh, and add the inventory hook to CLAUDE.md and the row to README.md (rules/repository-conventions.md).
Anywhere else, skip wiring and state where the skill was written.
Phase 5 — Verify
Re-run the Phase 0 brief in a sub-agent with the skill installed, on a fresh input (another real input, or the same one with the previous output deleted), and check that no ledger correction recurs.
A recurring correction means the line meant to prevent it is wrong or missing: fix that line and re-run once.
Report Verify: PASS — fresh run, 0 of <n> corrections recurred.
The lift check (rules/lift-check.md) is not part of a scaffold: run it when the user asks, or before the skill is shipped to other people.
Diagnose Workflow
For diagnose mode, do not scaffold or review.
Analyse a session in which another skill executed and produced an
unsatisfactory result, identify which of that skill's gates should have
caught it, and emit a confidence-gated unified diff that hardens the target
skill against the same failure class.
The full procedure (seven steps, including the mandatory
confidence(analysis) ≥ 90 % gate before --apply), the report format,
and the hard rules live in rules/diagnose-mode.md.
Invocation:
/create-skill diagnose <target-skill-name> [--symptom "..."] [--scope <phase|companion>] [--apply] [--pr] [--no-write]The target declares its own diagnostic surface in
skills/<target>/rules/diagnostic-surface.md (skills) or
agents/<target>/rules/diagnostic-surface.md (agents) — phase model,
failure taxonomy, existing-guards table, source root, hard invariants.
Step 1 of Diagnose Mode disambiguates by checking both locations.
The contract spec is in rules/diagnostic-surface.md;
the scaffolding template a target drops into its own rules/ is
templates/diagnostic-surface.template.md.
If the target has not declared a surface, Diagnose Mode falls back to
inferring phases from the target body's H2 sections (SKILL.md for skills,
agents/<name>.md for agents) and warns the user once that fidelity is reduced.
Diagnose Mode never modifies user product code. It only proposes changes to the target's own source.
Self-improving skills. An orchestrator skill can close the loop further with
a two-tier self-improvement loop: a fast episodic-lessons tier
(LoreKit memory.* tools) feeding the slow diagnose tier via a recurrence gate.
The reusable recipe — including when NOT to add one — is in
rules/self-improvement-loop-pattern.md.
When a target declares a ## Lessons scope, Diagnose Mode reads it as evidence
(Step 2).
Prune Workflow
For prune mode, clean up an installed skill set; follow rules/prune-mode.md:
- Inventory each skill's context cost and usage with
claude -p "/skill-doctor". - Delete candidates: skills never invoked.
- Lift-check every used skill (
rules/lift-check.md), highest cost first; no lift over the dummy makes it a trim or delete candidate. - Find and migrate callers, then get the user's explicit yes per skill before deleting or trimming anything.
Why: references/lift-and-prune-rationale.md.
Required Reading by Phase
Load these on demand — do not preload them all.
| Phase | Files |
| 0–2 | rules/run-first.md, rules/description-writing.md, rules/invocation-control.md |
| 3 | rules/scripts-and-assets.md, rules/structure-decision.md (only past 200 lines), templates/SKILL.minimal.md |
| 4 | rules/repository-conventions.md (inside this repo only) |
| prune | rules/prune-mode.md, rules/lift-check.md |
| diagnose | rules/diagnose-mode.md, rules/diagnostic-surface.md, plus the target's rules/diagnostic-surface.md |
| loop | rules/self-improvement-loop-pattern.md (adding a self-improvement loop to an orchestrator skill) |
| lens | rules/review-lens-contract.md + templates/lens.md (making an existing skill lens-eligible for pr-reviewer) |
Core Principles
- A skill is the list of what the agent got wrong. Do the job once without it and write only the corrections; a run that needed none means no skill (
rules/run-first.md). - Every line is a recurring cost. Write nothing the model already does; a loaded skill stays in context, and compaction re-attaches up to 5,000 tokens of it.
- The description is the discovery surface. Third person, what and when, trigger phrases first.
- Guarantees are hooks and scripts, not capitals. What must never happen becomes a hook; a done condition that can be checked becomes a script the skill runs.
Definition of Done
A scaffold run is done when:
- The job ran once without the skill on a real input (or the waiver is recorded), and the ledger at
.agent/{branch}/skill-run-<task-slug>.mdroutes every correction. - Every
SKILL.mdline traces to a ledger row, a guardrail, or the definition of done. validate-skill.mjsreportsPASS.- Inside this repo: symlinks resolve and the
CLAUDE.mdandREADME.mdrows exist. - Phase 5 verify passed, or the user waived it.
- One sentence to the user: where the skill is and how to invoke it.
A prune run is done when:
- Every skill in scope has a cost, a usage class, and (if used) a lift verdict or an
uncheckedmark. - No skill was deleted or trimmed without the user's explicit per-skill confirmation.
- Every deleted skill's callers were repointed or removed in the same change.
- The report states the context saved per turn.
A diagnose run is done when:
- Target skill name resolved and source root verified writable.
- Diagnostic surface loaded (or fallback warning printed).
- Failure classified against the target's taxonomy (or
F-novelplus a proposed new row). - Phase-attribution table walks every phase in the target's surface.
- Exactly one improvement proposal constructed (one diff per report).
confidence(analysis)score recorded;--applyhonored only at ≥ 90 % (final score, after Step 6.5's two-iteration refinement loop if the initial score was below the gate).- Report written to
.agent/{branch}/diagnose-{target}.md(or stdout with--no-write). - If
--applyran, user explicitly confirmed beforegit apply.
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
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.

