Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Distills a completed user workflow or interaction into a reusable agent skill. Use when the user asks to turn their workflow, interaction, or multi-step process into a skill, or when they say "make this a skill", "create a skill from what we just did", "package this workflow" or similar. Do not use for creating skills from scratch without an existing workflow (use a generic skill-creator for that).
.claude/skills/mkurman-workflow-skill-creator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 268% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 89% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 123% | 0% |
Turns a completed workflow into a reusable agent skill. Specifically, this skill extracts patterns from an interaction or workflow that already happened and packages them.
> !CAUTION] You MUST complete Phase 1 (Brainstorming) before writing any code > or SKILL.md content. Skipping brainstorming produces skills that are either > too rigid or too vague. The brainstorming conversation is the most important > part of this process.
Have an iterative back-and-forth conversation with the user. Do NOT ask all questions at once. Pick 2-3 relevant questions per round from the bank below, refine your understanding, and ask follow-ups.
Start by summarizing what you observed from the workflow, then ask:
would you change?"
For each step identified in the workflow, determine its rigidity:
should the agent: (a) ask you for guidance, (b) try alternative approaches automatically, or (c) fail loudly with an error?"
specific database), vs. steps where any reasonable approach is fine?"
Before asking these questions, check which of your installed skills overlap with the workflow. If an existing skill from the science bundle covers a step, the new skill MUST reference it — do not offer a self-contained option.
skill Y]. The new skill will reference these rather than reimplementing them. Are there any other tools or skills you'd like me to incorporate?"
this workflow that aren't already covered by an existing skill?"
creating this skill? For example: API documentation, reference papers, example datasets, or domain-specific notes. If so, please share them and I will incorporate their content into the skill's reference materials."
skill, or is there additional functionality that's important to include? Conversely, should any of these be left out?"
API, processing data, reading/writing files, or computing results, the skill needs code and you should default to the CLI pattern. Only use a text-only instruction skill when every step is purely about reasoning, coordinating existing tools, or following a written protocol with no programmatic work at all. Confirm your assessment with the user in plain language:
API / processing files / computing results], so I'll create a helper script that the agent can run for you. The script will have simple commands like search, fetch, analyze, etc. — you won't need to write any code yourself. Does that sound right?"
of steps and using existing tools — no new code is needed. I'll write it as a set of clear instructions the agent follows. Does that sound right?"
these commands: proposed commands in plain English, e.g. 'search for proteins', 'fetch results', 'compare sequences']. What would you add or change?"
[suggestion]."the skill works as intended? For example: 'If I ask question], the skill should produce answer].' This is optional but helps me validate the skill during development."
You are ready to move to Phase 2 when you can confidently answer ALL of:
instruction-only)
Produce a design document (as an artifact / implementation plan) and present it to the user for approval. The document must include:
chars, lowercase + hyphens; description ≤1024 chars).
Wait for explicit user approval before proceeding to Phase 3.
General guidelines for skill implementation:
uv run, never python or python3.(urllib preferred); Avoid libraries that require extra installation if possible.
file-lock–based rate limiting so that concurrent sub-agents sharing the same machine collectively respect the limit. See other skills in the Science Skills bundle for the canonical cross-process–safe implementation.
should be processed programmatically to extract relevant fields.
name: field.When the workflow uses functionality covered by an existing installed skill, the new SKILL.md MUST reference it by name rather than reimplementing. Include a Dependencies section in the SKILL.md listing required skills with a brief rationale for each.
For any API interaction not covered by an existing skill, the generated CLI script MUST implement rate limiting. Before writing any rate-limiting code, look up the API's official rate-limit guidelines: check any documentation the user provided during brainstorming, then search the API's public documentation online. If no documented rate limit can be found, default to 1 request per second. The rate limiting pattern is built directly into the CLI template at references/cli_script_template.py — see the RateLimitError class and the _request method of the API client.
Key requirements:
time.monotonic() for timing (not time.time()).RateLimitError when HTTP 429 is received.response body in the error message — not just the status code. API response bodies contain actionable details (e.g., "Invalid parameter") that enable the agent to self-correct.
This is the default choice. If any step in the workflow involves API calls, data processing, file I/O, computation, or any other programmatic work, produce a multi-command CLI script using argparse with subcommands. Follow the template in references/cli_script_template.py.
Key requirements:
--output for writing results to a file.json.dump with indent=2 for JSON output.--limit required (no silent defaults). This forcesthe agent to specify the value explicitly, preventing it from assuming it retrieved "all" results when it was silently capped.
All scripts and workflows MUST write output to files, not stdout. Stdout should only contain short status messages (e.g., "Success! Data written to: results.json"). This is critical because:
using jp or Python one-liners.
Use this pattern only when the workflow requires zero programmatic work — i.e., every step is purely about orchestration, reasoning, multi-skill coordination, or following a written protocol. If any step needs code (API calls, data processing, file I/O, etc.), use the CLI pattern from Rule 3 instead. Produce a SKILL.md with a structured workflow section:
markdown## Workflow ### 1. Step Name - Description of what to do - Which skill to use and how ### 2. Next Step ...
Every generated SKILL.md must follow this structure:
markdown--- name: {skill-name} description: >- {description} --- # {Skill Title} ## Overview {Brief description of what the skill does.} ## Dependencies {List of required skills, if any.} ## Quick Start {Minimal example to get started.} ## Utility Scripts (if CLI-based) {Document each subcommand with examples.} ## Workflow (if instruction-only) {Numbered steps with clear instructions.} ## Rate Limiting (if applicable) {Document rate limits and how they are enforced.} ## Common Mistakes {List 2-3 common pitfalls.}
After implementation is complete:
prompt that should trigger the new skill.
through the skill and verify the output matches expectations.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 16,329 | 7,307 | -55% | 1 | 1 | 0% | 2,645 | 3,814 | +44% | 0 | 0 | — |
case-22 | pass→pass | 9,562 | 22,078 | +131% | 1 | 1 | 0% | 1,960 | 6,867 | +250% | 0 | 0 | — |
case-01 | fail→pass | 6,196 | 4,805 | -22% | 1 | 1 | 0% | 921 | 3,391 | +268% | 0 | 0 | — |
case-02 | fail→pass | 10,791 | 3,724 | -65% | 1 | 1 | 0% | 1,716 | 3,250 | +89% | 0 | 0 | — |
case-03 | fail→pass | 10,953 | 3,729 | -66% | 1 | 1 | 0% | 1,831 | 3,296 | +80% | 0 | 0 | — |
case-04 | fail→pass | 9,084 | 3,912 | -57% | 1 | 1 | 0% | 1,430 | 3,187 | +123% | 0 | 0 | — |
case-06 | fail→pass | 14,130 | 7,352 | -48% | 1 | 1 | 0% | 2,168 | 3,726 | +72% | 0 | 0 | — |
case-07 | pass→pass | 13,513 | 7,633 | -44% | 1 | 1 | 0% | 2,199 | 3,753 | +71% | 0 | 0 | — |
case-08 | fail→pass | 10,241 | 5,866 | -43% | 1 | 1 | 0% | 1,872 | 3,393 | +81% | 0 | 0 | — |
case-09 | fail→fail | 28,999 | 7,031 | -76% | 1 | 1 | 0% | 6,174 | 3,583 | -42% | 0 | 0 | — |
case-10 | fail→pass | 11,270 | 2,355 | -79% | 1 | 1 | 0% | 1,789 | 2,986 | +67% | 0 | 0 | — |
case-11 | pass→pass | 11,800 | 4,147 | -65% | 1 | 1 | 0% | 2,043 | 3,302 | +62% | 0 | 0 | — |
case-12 | fail→pass | 32,425 | 7,984 | -75% | 1 | 1 | 0% | 1,465 | 4,047 | +176% | 0 | 0 | — |
case-13 | pass→pass | 10,950 | 2,697 | -75% | 1 | 1 | 0% | 1,888 | 3,021 | +60% | 0 | 0 | — |
case-14 | pass→pass | 8,651 | 2,186 | -75% | 1 | 1 | 0% | 1,447 | 2,920 | +102% | 0 | 0 | — |
case-15 | pass→pass | 9,231 | 3,091 | -67% | 1 | 1 | 0% | 1,233 | 3,089 | +151% | 0 | 0 | — |
case-16 | fail→pass | 14,384 | 7,254 | -50% | 1 | 1 | 0% | 2,441 | 3,768 | +54% | 0 | 0 | — |
case-17 | pass→pass | 15,116 | 5,038 | -67% | 1 | 1 | 0% | 2,124 | 3,480 | +64% | 0 | 0 | — |
case-18 | pass→pass | 14,697 | 5,492 | -63% | 1 | 1 | 0% | 2,377 | 3,583 | +51% | 0 | 0 | — |
case-19 | fail→pass | 12,264 | 3,664 | -70% | 1 | 1 | 0% | 2,042 | 3,289 | +61% | 0 | 0 | — |
case-20 | pass→pass | 8,621 | 4,618 | -46% | 1 | 1 | 0% | 1,288 | 3,350 | +160% | 0 | 0 | — |
case-21 | pass→fail | 12,362 | 11,901 | -4% | 1 | 1 | 0% | 1,305 | 4,691 | +259% | 0 | 0 | — |
case-23 | pass→fail | 13,179 | 8,882 | -33% | 1 | 1 | 0% | 2,695 | 4,264 | +58% | 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. 23 cases were attempted, and 22 counted toward the lift figure. The other 1 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 +39 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 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.
Other measured skills in the registry, with their headline benchmark lift.