Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run a task through a budget-aware multi-model pipeline from a Fable/Opus main chat that never switches model: plan and interview, orchestrate Sonnet 4.5 implementer subagents, then self-review. Use when the user wants planning, implementation, and review handled by different models.
.claude/skills/fredrikaverpil-smart/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-18 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 8% | 0% |
Three phases from a single main chat on the smart model. The point is to keep expensive tokens on the judgment work — planning, verifying, reviewing — and delegate implementation and research to subagents carrying their own cheaper, pinned model.
Hub-and-spoke, not a team: workers report to the orchestrator and never talk to each other, so subagents fit and agent teams don't. Leave CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS unset.
Run the whole session from the main chat on one model — Opus 5, or Fable 5 — and never switch /model. Two phases must live there because a subagent can't do them: the interview (only the main chat talks to you) and the final review (wants the full session).
| Phase / role | Runs in | Model | Effort | | ---------------- | ----------------------- | ---------- | ----------- | | Plan & interview | main chat | Opus 5 | high → xhigh | | Implement | impl-worker subagents | Sonnet 4.5 | medium | | Research | researcher subagents | Haiku | low | | Review | main chat | Opus 5 | high → xhigh |
Set effort once at the start and leave it. Default to high; step up to xhigh only for genuinely demanding planning or review, since Opus 5 holds quality at lower effort for a fraction of the tokens.
impl-worker pins the full ID claude-sonnet-4-5 deliberately — the bare sonnet alias resolves to Sonnet 5, which costs more than this role needs.
Delegation pays off on sizeable, genuinely independent tracks of work. It multiplies cost and wall-clock time on small ones. Don't spawn a worker for something you'd finish yourself in a handful of tool calls, and if one worker can do the task, use one rather than several.
Subagents are stateless cold starts and this flow spans three phases, so keep a single working doc as shared state. Put it at smart-plan.md in the scratchpad (or a gitignored path) — do not commit it. The name avoids colliding with the harness's own MEMORY.md.
It holds the plan, settled decisions, open questions, one task spec per delegated unit of work, and review findings. Point each subagent at the relevant section instead of re-explaining context in the spawn prompt — that keeps spawn prompts small and the main context lean.
Keep it to what the next phase actually needs; it's working state, not a report.
Every change must be written to be testable — clear seams, injectable dependencies, pure logic separated from side effects, no hidden global state a test can't reach. Design this in during planning.
If a piece genuinely can't be made reasonably testable, it doesn't get waved through silently: the worker flags it, and the orchestrator gets your explicit OK with AskUserQuestion before accepting it, recording the decision in smart-plan.md.
/model and /effort per the table, and leave them there.plan-interview skill: work back and forth with the user, leadingwith open questions and an outline before writing the plan.
worker's. Read the code the change will touch and trace the real flow first; be lazy about the solution, never about reading. Then walk the laziness ladder (defined in the self-review skill; the ponytail plugin enforces the same ladder at write time when enabled) and pick the lowest workable rung. Record the chosen approach so it flows into the task specs — the workers implement the rung you picked rather than exercising this judgment themselves.
smart-plan.md.Stay in the main chat — no model switch. You are the orchestrator: you verify and coordinate, you do not write the implementation yourself.
clear deliverable. Write one task spec per task into smart-plan.md (files to touch, expected behaviour, constraints, done criteria). Include the minimal approach chosen in planning, so the worker builds that rather than its own idea of the solution.
impl-worker per task, subject to Delegatedeliberately above. Keep the spawn prompt short: point it at its smart-plan.md section and the relevant files. Independent tasks can run in parallel; give each worker a disjoint set of files.
spawn a researcher rather than doing it in the main context — only its summary returns.
self-review criteria, and whether it over-built past the rung you picked. This is the verification step for worker output — one careful read, not a second pass on top of it. If it falls short, send precise feedback and re-delegate.
AskUserQuestion and record the answer. When a worker flags something as hard to test, follow Testability above.
ambiguous and a fresh read would change what you do, spawn one reviewer. This is a writer-verifier split — the worker wrote it, you didn't. Don't use it to re-check routine diffs, and never to double-check your own Phase 3 review.
self-review skill across the whole change, reading every changedfile in full rather than only diffs.
impl-worker.smart-plan.md, then summarize for the user:lead with what happened, supporting detail after.
$ARGUMENTS
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,495 | 8,935 | +19% | 1 | 1 | 0% | 1,219 | 1,874 | +54% | 0 | 0 | — |
case-02 | fail→fail | 4,662 | 3,755 | -19% | 1 | 1 | 0% | 335 | 1,888 | +464% | 0 | 0 | — |
case-03 | fail→fail | 3,650 | 3,189 | -13% | 1 | 1 | 0% | 423 | 1,982 | +369% | 0 | 0 | — |
case-04 | pass→pass | 5,238 | 1,732 | -67% | 1 | 1 | 0% | 993 | 1,888 | +90% | 0 | 0 | — |
case-05 | fail→fail | 4,281 | 3,266 | -24% | 1 | 1 | 0% | 649 | 2,095 | +223% | 0 | 0 | — |
case-18 | fail→pass | 11,602 | 2,364 | -80% | 1 | 1 | 0% | 1,608 | 1,919 | +19% | 0 | 0 | — |
case-06 | fail→fail | 7,130 | 3,873 | -46% | 1 | 1 | 0% | 1,264 | 2,218 | +75% | 0 | 0 | — |
case-07 | fail→pass | 8,655 | 1,848 | -79% | 1 | 1 | 0% | 1,763 | 1,882 | +7% | 0 | 0 | — |
case-08 | pass→pass | 9,460 | 2,621 | -72% | 1 | 1 | 0% | 1,463 | 1,987 | +36% | 0 | 0 | — |
case-09 | fail→pass | 6,458 | 1,644 | -75% | 1 | 1 | 0% | 1,133 | 1,855 | +64% | 0 | 0 | — |
case-10 | fail→pass | 11,859 | 1,817 | -85% | 1 | 1 | 0% | 1,958 | 1,929 | -1% | 0 | 0 | — |
case-11 | fail→pass | 11,964 | 2,252 | -81% | 1 | 1 | 0% | 1,836 | 1,977 | +8% | 0 | 0 | — |
case-12 | fail→pass | 11,023 | 3,738 | -66% | 1 | 1 | 0% | 1,793 | 2,179 | +22% | 0 | 0 | — |
case-13 | fail→pass | 7,552 | 2,447 | -68% | 1 | 1 | 0% | 1,104 | 1,958 | +77% | 0 | 0 | — |
case-14 | fail→pass | 14,282 | 2,816 | -80% | 1 | 1 | 0% | 2,316 | 2,008 | -13% | 0 | 0 | — |
case-15 | pass→pass | 8,403 | 3,853 | -54% | 1 | 1 | 0% | 1,346 | 2,194 | +63% | 0 | 0 | — |
case-16 | pass→pass | 9,954 | 2,988 | -70% | 1 | 1 | 0% | 1,500 | 2,060 | +37% | 0 | 0 | — |
case-17 | fail→pass | 16,411 | 5,739 | -65% | 1 | 1 | 0% | 2,394 | 2,414 | +1% | 0 | 0 | — |
case-19 | fail→pass | 10,663 | 2,823 | -74% | 1 | 1 | 0% | 1,557 | 1,956 | +26% | 0 | 0 | — |
case-20 | pass→pass | 14,217 | 7,049 | -50% | 1 | 1 | 0% | 2,117 | 2,617 | +24% | 0 | 0 | — |
case-21 | pass→pass | 12,967 | 4,861 | -63% | 1 | 1 | 0% | 1,988 | 2,339 | +18% | 0 | 0 | — |
case-22 | pass→pass | 14,190 | 9,244 | -35% | 1 | 1 | 0% | 2,015 | 2,967 | +47% | 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 20 counted toward the lift figure. The other 2 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 +45 percentage points is the difference between those two pass rates over the 20 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.