Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when an approved spec or design needs to become an implementation plan, after mise and before any code. Also use when the user says "write the plan", "plan this out", or the work will be executed later, by someone else, or in a fresh session.
.claude/skills/escoffier-labs-recipe/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -48% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 176% | 0% |
A recipe card is written so a cook who has never seen the dish can plate it exactly: exact quantities, exact pan, exact minutes, steps in order. "Season to taste" is how the same dish comes out different every night. This skill turns an approved spec into that card: an implementation plan a zero-context engineer or fresh agent session can execute with you unavailable for questions.
Assume the implementer is skilled but knows nothing about this codebase or problem domain, and has questionable taste in tests. The plan carries everything: which files each task touches, the actual code, the exact commands, the output to expect. DRY, YAGNI, test-first, frequent commits.
- [ ]): write the failing test (the actual test code), run it and watch it fail (the exact command and the expected failure), implement the minimal change (the actual code), run to green (command and expected output), commit (the command). Every task names its exact file paths up front.docs/plans/YYYY-MM-DD-<topic>.md, commit, and hand off to fire. It executes in two shapes: a fresh subagent per task with review between tasks (preferred), or inline in one session with checkpoints. Either way the plan, not memory of this conversation, is the source of truth.`markdown### Task N: <component> **Files:** - Create: `exact/path/to/file.py` - Modify: `exact/path/to/existing.py:123-145` - Test: `tests/exact/path/test_file.py` - [ ] Write the failing test
def test_specific_behavior(tmp_store): result = function(input) assert result == expected
- [ ] Run it, watch it fail: `pytest tests/exact/path/test_file.py::test_specific_behavior -v` - expect FAIL, "function not defined"
- [ ] Implement the minimal change
def function(input): return expected
- [ ] Run to green: same command - expect PASS
- [ ] Commit: `git add -A && git commit -m "feat: <effect>"`Each of these in a plan is a plan failure, not a shortcut:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→pass | 8,918 | 4,979 | -44% | 1 | 1 | 0% | 1,621 | 2,165 | +34% | 0 | 0 | — |
case-19 | fail→pass | 10,515 | 4,754 | -55% | 1 | 1 | 0% | 1,519 | 2,315 | +52% | 0 | 0 | — |
case-01 | fail→fail | 4,239 | 3,190 | -25% | 1 | 1 | 0% | 231 | 1,640 | +610% | 0 | 0 | — |
case-02 | fail→fail | 31,476 | 3,270 | -90% | 1 | 1 | 0% | 6,236 | 1,637 | -74% | 0 | 0 | — |
case-03 | fail→fail | 28,006 | 5,295 | -81% | 1 | 1 | 0% | 6,231 | 1,907 | -69% | 0 | 0 | — |
case-04 | fail→pass | 22,850 | 3,934 | -83% | 1 | 1 | 0% | 4,001 | 2,073 | -48% | 0 | 0 | — |
case-05 | fail→fail | 5,229 | 15,973 | +205% | 1 | 1 | 0% | 933 | 4,123 | +342% | 0 | 0 | — |
case-06 | fail→fail | 4,133 | 5,942 | +44% | 1 | 1 | 0% | 335 | 1,852 | +453% | 0 | 0 | — |
case-07 | fail→pass | 9,265 | 5,182 | -44% | 1 | 1 | 0% | 1,498 | 2,390 | +60% | 0 | 0 | — |
case-08 | pass→pass | 12,738 | 17,235 | +35% | 1 | 1 | 0% | 2,332 | 5,469 | +135% | 0 | 0 | — |
case-09 | fail→pass | 11,303 | 20,986 | +86% | 1 | 1 | 0% | 2,013 | 5,552 | +176% | 0 | 0 | — |
case-10 | fail→pass | 12,679 | 8,542 | -33% | 1 | 1 | 0% | 2,359 | 2,974 | +26% | 0 | 0 | — |
case-11 | fail→pass | 13,581 | 23,666 | +74% | 1 | 1 | 0% | 2,452 | 6,337 | +158% | 0 | 0 | — |
case-12 | fail→pass | 13,003 | 11,790 | -9% | 1 | 1 | 0% | 2,555 | 3,702 | +45% | 0 | 0 | — |
case-13 | fail→fail | 12,033 | 6,464 | -46% | 1 | 1 | 0% | 2,185 | 1,747 | -20% | 0 | 0 | — |
case-15 | pass→pass | 8,021 | 4,188 | -48% | 1 | 1 | 0% | 1,425 | 2,216 | +56% | 0 | 0 | — |
case-16 | pass→pass | 9,853 | 8,560 | -13% | 1 | 1 | 0% | 1,866 | 3,054 | +64% | 0 | 0 | — |
case-17 | pass→pass | 6,008 | 3,875 | -36% | 1 | 1 | 0% | 1,172 | 2,267 | +93% | 0 | 0 | — |
case-18 | pass→pass | 8,223 | 4,715 | -43% | 1 | 1 | 0% | 1,514 | 2,123 | +40% | 0 | 0 | — |
case-20 | pass→pass | 6,993 | 4,623 | -34% | 1 | 1 | 0% | 1,169 | 2,298 | +97% | 0 | 0 | — |
case-21 | pass→pass | 7,757 | 2,644 | -66% | 1 | 1 | 0% | 1,482 | 1,847 | +25% | 0 | 0 | — |
case-22 | pass→pass | 10,521 | 5,395 | -49% | 1 | 1 | 0% | 2,070 | 2,471 | +19% | 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. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 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 +36 percentage points is the difference between those two pass rates over the 18 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.