Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create a new skill or update an existing skill that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations. Use when the user asks to "create a skill", "make a new skill", "build a skill", "scaffold a skill", "write a skill for...", or "new skill that does...".
.claude/skills/tobihagemann-create-skill/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 25% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 57% | 0% |
This skill guides the creation of effective skills. Authoring guidance is split across the reference files below. Read the ones the current step needs rather than all of them.
| Reference | Covers | |---|---| | references/principles.md | Conciseness, instructions-not-documentation, degrees of freedom | | references/structure.md | Frontmatter, naming, descriptions, progressive disclosure, file layout | | references/writing.md | Prose rules: terminology, phrasing, conditions, thresholds | | references/workflows.md | Step/phase structure, feedback loops, exit signals, output patterns | | references/composition.md | Depending on, invoking, and fanning out to other skills | | references/tools.md | Agent, Bash, AskUserQuestion, and MCP tool invocation | | references/evaluation.md | Evaluations and iterating on a skill from observed behavior | | references/scripts.md | Skills that bundle executable code | | references/harness.md | Harness tool names, permission modes, and discovery paths |
For conceptual background on how Skills work, see the Skills overview on platform.claude.com.
Skip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.
To create an effective skill, clearly understand concrete examples of how the skill will be used. This understanding can come from either direct user examples or generated examples that are validated with user feedback.
For example, when building an image-editor skill, relevant questions include:
To avoid overwhelming users, avoid asking too many questions in a single message. Start with the most important questions and follow up as needed for better effectiveness.
Conclude this step when there is a clear sense of the functionality the skill should support.
To turn concrete examples into an effective skill, analyze each example by:
Example: When building a pdf-editor skill to handle queries like "Help me rotate this PDF," the analysis shows:
scripts/rotate_pdf.py script would be helpful to store in the skillExample: When designing a frontend-webapp-builder skill for queries like "Build me a todo app" or "Build me a dashboard to track my steps," the analysis shows:
assets/hello-world/ template containing the boilerplate HTML/React project files would be helpful to store in the skillExample: When building a big-query skill to handle queries like "How many users have logged in today?" the analysis shows:
references/schema.md file documenting the table schemas would be helpful to store in the skillTo establish the skill's contents, analyze each concrete example to create a list of the reusable resources to include: scripts, references, and assets.
Skip this step if the skill being developed already exists and iteration is needed. In this case, continue to the next step.
When creating a new skill from scratch, create the skill directory with:
SKILL.md file with proper YAML frontmatter (name and description) and TODO placeholders for the bodyscripts/, references/, and/or assets/After initialization, customize or remove the generated files as needed.
When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Claude to use. Focus on including information that would be beneficial and non-obvious to Claude. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Claude instance execute these tasks more effectively.
To begin implementation, start with the reusable resources identified above: scripts/, references/, and assets/ files. Note that this step may require user input. For example, when implementing a brand-guidelines skill, the user may need to provide brand assets or templates to store in assets/, or documentation to store in references/.
Before writing SKILL.md, read references/principles.md, references/structure.md, and references/writing.md. These apply to every skill.
Then read the references matching what this skill does:
AskUserQuestion, or MCP calls → references/tools.mdRead references/evaluation.md when validating the skill against real tasks or refining it from observed behavior.
At the start of Step 5, use TaskCreate to create a task for each remaining step:
After writing all files, spawn a subagent (model: "opus", no name) to review the skill. Wait for it to report before continuing; do not relaunch it if it has not yet reported. The subagent should read references/skill-reviewer.md for review guidelines, read all skill files, and produce a review report following the format in the guidelines. Its prompt must direct it to treat the shared working tree and its git index as read-only and to review by reading and reasoning; fixes happen in Step 7. HEAD stays where it is: read other refs with git show <ref>:<path> rather than git checkout or git switch.
model: "opus" and no name. Wait for every agent to report before continuing. Do not begin the next step on a partial set, and do not relaunch an agent that has not yet reported. State the total count and which sites map to which subagent when emitting the calls./evaluate-findings SkillRun the /evaluate-findings skill on the review findings.
/apply-findings SkillRun the /apply-findings skill on the evaluated findings.
When the skill bundles executable code, run the project's test suite and report the result: state pass or fail with the failing output, rather than closing the workflow on an assumption that the suite still passes. When the skill bundles none, or the project has no suite to run, say so.
Then use the TaskList tool and proceed to any remaining task.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 66,572 | 35,045 | -47% | 1 | 1 | 0% | 8,142 | 2,962 | -64% | 0 | 0 | — |
case-02 | fail→fail | 3,891 | 36,804 | +846% | 1 | 1 | 0% | 273 | 2,583 | +846% | 0 | 0 | — |
case-03 | fail→fail | 25,708 | 7,463 | -71% | 1 | 1 | 0% | 4,834 | 2,820 | -42% | 0 | 0 | — |
case-04 | fail→fail | 10,645 | 8,912 | -16% | 1 | 1 | 0% | 1,760 | 3,888 | +121% | 0 | 0 | — |
case-05 | fail→pass | 10,811 | 5,694 | -47% | 1 | 1 | 0% | 1,750 | 3,143 | +80% | 0 | 0 | — |
case-06 | fail→pass | 42,192 | 7,685 | -82% | 1 | 1 | 0% | 1,768 | 3,095 | +75% | 0 | 0 | — |
case-07 | fail→pass | 12,221 | 3,644 | -70% | 1 | 1 | 0% | 2,114 | 2,647 | +25% | 0 | 0 | — |
case-08 | fail→pass | 15,972 | 6,095 | -62% | 1 | 1 | 0% | 2,449 | 3,321 | +36% | 0 | 0 | — |
case-09 | fail→pass | 12,950 | 6,295 | -51% | 1 | 1 | 0% | 2,102 | 3,310 | +57% | 0 | 0 | — |
case-10 | fail→pass | 10,163 | 2,052 | -80% | 1 | 1 | 0% | 1,584 | 2,435 | +54% | 0 | 0 | — |
case-11 | fail→pass | 11,826 | 2,303 | -81% | 1 | 1 | 0% | 1,948 | 2,509 | +29% | 0 | 0 | — |
case-12 | fail→pass | 14,635 | 2,303 | -84% | 1 | 1 | 0% | 2,500 | 2,488 | -0% | 0 | 0 | — |
case-13 | fail→pass | 12,668 | 34,019 | +169% | 1 | 1 | 0% | 1,946 | 2,845 | +46% | 0 | 0 | — |
case-14 | pass→pass | 10,755 | 4,085 | -62% | 1 | 1 | 0% | 1,541 | 2,858 | +85% | 0 | 0 | — |
case-15 | pass→pass | 3,999 | 3,745 | -6% | 1 | 1 | 0% | 738 | 2,704 | +266% | 0 | 0 | — |
case-16 | fail→pass | 11,978 | 2,479 | -79% | 1 | 1 | 0% | 1,737 | 2,424 | +40% | 0 | 0 | — |
case-17 | fail→pass | 10,114 | 2,142 | -79% | 1 | 1 | 0% | 1,410 | 2,486 | +76% | 0 | 0 | — |
case-18 | pass→pass | 30,045 | 31,941 | +6% | 1 | 1 | 0% | 5,379 | 7,556 | +40% | 0 | 0 | — |
case-19 | fail→fail | 7,259 | 5,344 | -26% | 1 | 1 | 0% | 1,022 | 2,999 | +193% | 0 | 0 | — |
case-20 | pass→fail | 16,893 | 8,269 | -51% | 1 | 1 | 0% | 4,020 | 2,957 | -26% | 0 | 0 | — |
case-21 | pass→fail | 28,177 | 52,987 | +88% | 1 | 1 | 0% | 6,483 | 10,287 | +59% | 0 | 0 | — |
case-22 | fail→fail | 13,442 | 5,767 | -57% | 1 | 1 | 0% | 1,877 | 2,323 | +24% | 0 | 0 | — |
case-23 | fail→pass | 12,199 | 8,895 | -27% | 1 | 1 | 0% | 2,202 | 3,311 | +50% | 0 | 0 | — |
case-24 | pass→pass | 8,915 | 2,643 | -70% | 1 | 1 | 0% | 1,000 | 2,493 | +149% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 21 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +42 percentage points is the difference between those two pass rates over the 21 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/21/2026 | +41% |
Other measured skills in the registry, with their headline benchmark lift.