Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Dispatch fix subagent for FIX-FIRST gaps from review, re-review, then diagnose unresolved failures after 2 loops.
.claude/skills/automagik-dev-fix/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 119% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 118% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 52% | 0% |
Runtime syntax: invoke the plugin copy through the active runtime's owner-qualified skill selector; use a bare selector only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector for the active runtime.
Resolve FIX-FIRST gaps from review: dispatch a fix subagent, re-review, repeat up to 2 loops, then diagnose and route any unresolved failure.
review returned a FIX-FIRST verdict with CRITICAL or HIGH gapsoverdesigned-plan, stop and return to brainstorm/wish; removing optional machinery is a plan correction, not a code-fix attempt.trace diagnosis.review on the same pipeline.| Verdict | Condition | Action | |---------|-----------|--------| | SHIP | — | Done. Return to orchestrator. | | FIX-FIRST | loop < 2 | Increment loop, go to step 2. | | FIX-FIRST | loop = 2 | Stop fixing and run Escalation Diagnosis; max loops reached. | | BLOCKED | — | Run Escalation Diagnosis and take the cause-specific route. |
in_progress.Fix and re-review are separate native-dispatch dispatches — never combined in one subagent, and the re-reviewer is never the fixer. Subagents notify on completion — no polling. Follow-ups to a running fixer go through native follow-up messaging.
The fixer's brief must carry: the severity-tagged gaps (file:line), the original wish acceptance criteria, the validation command(s) to re-run, and stop conditions — fix only the listed gaps; report blocked rather than expand scope.
Use this policy before any model or effort change; keep this contract identical in fix, review, and work.
| Cause | Diagnostic evidence | Corrective route | |-------|---------------------|------------------| | model-capacity | The supplied context is complete, the spec is decidable, the environment works, and attempt output shows the assigned model or effort still cannot perform the reasoning. | May raise model or effort one step, but only with new evidence and available caps. | | missing-context | The attempt identifies absent files, history, criteria, logs, or other inputs needed to decide. | Supply the missing context and retry at the same model and effort; MUST NOT escalate model or effort. | | ambiguous-spec | Two or more materially different behaviors remain consistent with the stated criteria. | Request a human decision or wish clarification; MUST NOT escalate model or effort. | | env-tool-failure | A reproducible environment, dependency, permission, timeout, or tool error prevents valid execution. | Repair or retry the environment/tool, or report blocked with the error; MUST NOT escalate model or effort. | | overdesigned-plan | Gaps cluster in optional machinery that lacks a current criterion or measurement, while a simpler design satisfies the user stories with fewer durable states or recovery paths. | Stop the fix loop and return to brainstorm/wish to remove or defer the mechanism. Re-review the amended design/plan; MUST NOT spend retries or model escalation defending it. |
Escalation eligibility requires new evidence produced since the previous attempt: attach the new failing output or diagnostic result, the correction already tried, and why it rules out the other four causes. A repeated verdict or unchanged failure is not new evidence and cannot authorize a model or effort change.
Model and reasoning effort belong in the active runtime's session or named-agent configuration, never in skill frontmatter. Inherit the active model by default. Only an evidenced model-capacity diagnosis may justify one higher-effort fresh agent, with at most two escalation attempts per group. The runtime's highest supported effort is appropriate only for a final gate or similarly demanding review when the user requested it or the evidence warrants it. Further escalation requires an explicit human decision recorded with the wish/group, old and new settings, reason, approver, and timestamp.
If an ordinary reviewer and the final-gate disagree, log an appeal with the wish/group, both verdicts and evidence, the contested criterion, and the human resolution. Neither verdict silently overrides the other, and the group remains in_progress until the appeal is resolved.
The fix loop never mutates task state. The group's task stays in_progress through every loop; the orchestrator calls genie task done <task-id> only after a clean re-review. During any diagnosed route or appeal, the task remains in_progress with the remaining gaps recorded in the wish notes/handoff. If no task row exists for the work, proceed — the loop runs off the review verdict alone.
Fix loop exhausted (2/2). Group remains in progress.
Remaining gaps:
- [CRITICAL] <gap description> — <file>
- [HIGH] <gap description> — <file>
Cause: <model-capacity|missing-context|ambiguous-spec|env-tool-failure|overdesigned-plan>
New evidence: <new output/diagnosis, or "none — model/effort escalation prohibited">
Corrective route: <one cause-specific next step>
Budget: attempts=<used>/2; effort_escalations=<used>/2
Appeal: <reviewer/final-gate disagreement record, or "none">review returned FIX-FIRST with:
- [CRITICAL] workDispatchCommand missing initialPrompt — dispatch.ts:532
- [HIGH] sendMessage result not checked — dispatch.ts:541Loop 1: native delegation surface → fixer briefed with both gaps, the wish criteria, and bun test as validation. The fixer edits, runs the validation, reports its changes with outcomes, and ends done. Then native delegation surface → a fresh reviewer briefed to re-run review against the same criteria. SHIP → report success to the orchestrator. FIX-FIRST again → loop 2; after that, classify the cause and take its corrective route. A model or effort raise is permitted only for evidenced model-capacity within both caps. An overdesigned-plan diagnosis stops immediately and returns to planning instead.
When spawned as a native subagent, your final message IS the completion signal — the orchestrator is notified when you finish; do not poll or emit a separate contract call. End with exactly one terminal outcome as the last word:
blocked / failed must include a one-line reason.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,561 | 6,379 | +40% | 1 | 1 | 0% | 242 | 2,226 | +820% | 0 | 0 | — |
case-02 | fail→fail | 5,552 | 5,748 | +4% | 1 | 1 | 0% | 211 | 2,171 | +929% | 0 | 0 | — |
case-03 | pass→fail | 18,429 | 24,315 | +32% | 1 | 1 | 0% | 2,109 | 2,154 | +2% | 0 | 0 | — |
case-04 | pass→pass | 19,363 | 18,852 | -3% | 1 | 1 | 0% | 3,395 | 5,133 | +51% | 0 | 0 | — |
case-05 | pass→fail | 3,296 | 6,523 | +98% | 1 | 1 | 0% | 443 | 2,064 | +366% | 0 | 0 | — |
case-06 | fail→pass | 8,205 | 4,918 | -40% | 1 | 1 | 0% | 1,207 | 2,649 | +119% | 0 | 0 | — |
case-07 | fail→pass | 13,557 | 4,762 | -65% | 1 | 1 | 0% | 2,322 | 2,558 | +10% | 0 | 0 | — |
case-08 | fail→pass | 9,839 | 7,813 | -21% | 1 | 1 | 0% | 1,457 | 3,176 | +118% | 0 | 0 | — |
case-09 | pass→pass | 8,071 | 3,776 | -53% | 1 | 1 | 0% | 1,143 | 2,402 | +110% | 0 | 0 | — |
case-10 | fail→pass | 14,022 | 7,329 | -48% | 1 | 1 | 0% | 2,107 | 3,070 | +46% | 0 | 0 | — |
case-11 | pass→pass | 7,601 | 3,794 | -50% | 1 | 1 | 0% | 1,059 | 2,401 | +127% | 0 | 0 | — |
case-12 | fail→pass | 9,215 | 3,655 | -60% | 1 | 1 | 0% | 1,604 | 2,442 | +52% | 0 | 0 | — |
case-13 | pass→pass | 9,463 | 4,820 | -49% | 1 | 1 | 0% | 1,302 | 2,612 | +101% | 0 | 0 | — |
case-14 | fail→pass | 10,314 | 4,518 | -56% | 1 | 1 | 0% | 1,585 | 2,499 | +58% | 0 | 0 | — |
case-15 | fail→pass | 5,252 | 2,866 | -45% | 1 | 1 | 0% | 832 | 2,196 | +164% | 0 | 0 | — |
case-16 | fail→fail | 5,653 | 3,865 | -32% | 1 | 1 | 0% | 826 | 2,527 | +206% | 0 | 0 | — |
case-17 | fail→pass | 4,311 | 2,657 | -38% | 1 | 1 | 0% | 650 | 2,250 | +246% | 0 | 0 | — |
case-18 | fail→pass | 6,550 | 6,223 | -5% | 1 | 1 | 0% | 957 | 2,751 | +187% | 0 | 0 | — |
case-19 | pass→pass | 11,279 | 3,828 | -66% | 1 | 1 | 0% | 1,666 | 2,415 | +45% | 0 | 0 | — |
case-20 | fail→pass | 12,443 | 2,911 | -77% | 1 | 1 | 0% | 1,892 | 2,233 | +18% | 0 | 0 | — |
case-21 | pass→pass | 9,307 | 3,271 | -65% | 1 | 1 | 0% | 1,408 | 2,344 | +66% | 0 | 0 | — |
case-22 | fail→pass | 9,005 | 4,636 | -49% | 1 | 1 | 0% | 1,291 | 2,548 | +97% | 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 +41 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.