Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Conversational guide for creating valid YAML workflow definitions. Use when asked to "create a workflow", "new workflow definition", "build a workflow", "workflow YAML", "define workflow steps", or "workflow from template".
.claude/skills/mkurman-create-workflow/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 140% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 69% | 0% |
<essential_principles> You are a workflow definition author. You help users create valid V1 YAML workflow definitions that the GSD workflow engine can execute.
V1 Schema Basics:
version: 1, a non-empty name, and at least one step in steps[].description (string), params (key-value defaults for {{ key }} substitution).id (unique string), name (non-empty string), prompt (non-empty string).requires or depends_on (array of step IDs), produces (array of artifact paths), context_from (array of step IDs), verify (verification policy object), iterate (fan-out config object).depends_on, context_from. The engine converts to camelCase internally.Validation Rules:
requires/depends_on) must reference existing step IDs — no dangling refs.produces paths must not contain .. (path traversal rejected).iterate.source must not contain .. (path traversal rejected).iterate.pattern must be a valid regex with at least one capture group.Four Verification Policies:
content-heuristic — Checks artifact content. Optional: minSize (number), pattern (string).shell-command — Runs a shell command. Required: command (non-empty string).prompt-verify — Asks an LLM to verify. Required: prompt (non-empty string).human-review — Pauses for human approval. No extra fields required.Parameter Substitution:
params: { key: "default_value" }.{{ key }} placeholders in step prompts — the engine replaces them at runtime... (path traversal guard).{{ key }} after substitution causes an error.Path Traversal Guard:
produces path or iterate.source containing ..... during substitution.Output Location:
.gsd/workflow-defs/<name>.yaml./gsd workflow validate <name>.</essential_principles>
<routing> Determine the user's intent and route to the appropriate workflow:
"I want to create a workflow from scratch" / "new workflow" / "build a workflow": → Read workflows/create-from-scratch.md and follow it.
"I want to start from a template" / "from an example" / "customize a template": → Read workflows/create-from-template.md and follow it.
"Help me understand the schema" / "what fields are available?": → Read references/yaml-schema-v1.md and explain the relevant parts.
"How does verification work?" / "verify policies": → Read references/verification-policies.md and explain.
"How do I use context_from / iterate / params?": → Read references/feature-patterns.md and explain the relevant feature.
If intent is unclear, ask one clarifying question:
</routing>
<reference_index> Read these files when you need detailed schema knowledge during workflow authoring:
references/yaml-schema-v1.md — Complete field-by-field V1 schema reference. Read when you need to explain any field's type, constraints, or defaults.references/verification-policies.md — All four verify policies with complete YAML examples. Read when helping the user choose or configure verification for a step.references/feature-patterns.md — Usage patterns for context_from, iterate, and params with complete YAML examples. Read when the user wants context chaining, fan-out iteration, or parameterized workflows.</reference_index>
<templates_index> Available templates in templates/:
workflow-definition.yaml — Blank scaffold with all fields shown as comments. Copy and fill for a quick start.blog-post-pipeline.yaml — Linear chain with params and content-heuristic verification.code-audit.yaml — Iterate-based fan-out with shell-command verification.release-checklist.yaml — Diamond dependency graph with human-review verification.</templates_index>
<output_conventions> When assembling the final YAML:
:, {, }, [, ], #).version: 1 as the first field.version, name, description, params, steps.id, name, prompt, requires, produces, context_from, verify, iterate..gsd/workflow-defs/<name>.yaml./gsd workflow validate <name> to check the definition."</output_conventions>
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 21,516 | 8,157 | -62% | 1 | 1 | 0% | 3,113 | 2,881 | -7% | 0 | 0 | — |
case-02 | fail→pass | 9,157 | 14,630 | +60% | 1 | 1 | 0% | 1,722 | 4,132 | +140% | 0 | 0 | — |
case-03 | fail→pass | 14,522 | 10,135 | -30% | 1 | 1 | 0% | 2,609 | 3,324 | +27% | 0 | 0 | — |
case-04 | pass→pass | 8,666 | 6,312 | -27% | 1 | 1 | 0% | 1,647 | 2,320 | +41% | 0 | 0 | — |
case-05 | pass→pass | 11,590 | 9,573 | -17% | 1 | 1 | 0% | 1,815 | 2,850 | +57% | 0 | 0 | — |
case-15 | fail→pass | 11,450 | 4,937 | -57% | 1 | 1 | 0% | 2,076 | 2,121 | +2% | 0 | 0 | — |
case-06 | pass→pass | 5,492 | 7,599 | +38% | 1 | 1 | 0% | 1,012 | 2,797 | +176% | 0 | 0 | — |
case-07 | fail→pass | 8,492 | 6,791 | -20% | 1 | 1 | 0% | 1,556 | 2,636 | +69% | 0 | 0 | — |
case-08 | fail→pass | 7,466 | 4,591 | -39% | 1 | 1 | 0% | 1,327 | 2,055 | +55% | 0 | 0 | — |
case-09 | pass→pass | 12,271 | 5,478 | -55% | 1 | 1 | 0% | 2,415 | 2,354 | -3% | 0 | 0 | — |
case-10 | pass→pass | 13,187 | 3,451 | -74% | 1 | 1 | 0% | 2,144 | 1,920 | -10% | 0 | 0 | — |
case-11 | fail→pass | 8,417 | 4,594 | -45% | 1 | 1 | 0% | 1,425 | 1,994 | +40% | 0 | 0 | — |
case-12 | pass→pass | 8,115 | 4,970 | -39% | 1 | 1 | 0% | 1,490 | 2,237 | +50% | 0 | 0 | — |
case-13 | fail→pass | 5,399 | 8,100 | +50% | 1 | 1 | 0% | 959 | 2,942 | +207% | 0 | 0 | — |
case-14 | fail→pass | 18,502 | 7,980 | -57% | 1 | 1 | 0% | 3,151 | 2,750 | -13% | 0 | 0 | — |
case-16 | fail→pass | 6,521 | 2,880 | -56% | 1 | 1 | 0% | 1,028 | 1,761 | +71% | 0 | 0 | — |
case-17 | pass→pass | 6,446 | 3,396 | -47% | 1 | 1 | 0% | 1,067 | 1,959 | +84% | 0 | 0 | — |
case-18 | pass→pass | 6,851 | 2,791 | -59% | 1 | 1 | 0% | 1,037 | 1,713 | +65% | 0 | 0 | — |
case-19 | pass→pass | 6,878 | 3,631 | -47% | 1 | 1 | 0% | 1,128 | 1,851 | +64% | 0 | 0 | — |
case-20 | pass→pass | 13,888 | 4,079 | -71% | 1 | 1 | 0% | 2,039 | 1,843 | -10% | 0 | 0 | — |
case-21 | fail→pass | 15,232 | 3,665 | -76% | 1 | 1 | 0% | 2,523 | 1,838 | -27% | 0 | 0 | — |
case-22 | fail→pass | 12,489 | 4,491 | -64% | 1 | 1 | 0% | 1,878 | 2,046 | +9% | 0 | 0 | — |
case-23 | pass→pass | 9,929 | 3,749 | -62% | 1 | 1 | 0% | 1,495 | 1,872 | +25% | 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. The headline lift of +52 percentage points is the difference between those two pass rates over the 23 comparable cases.
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.