wizz-method 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/package.json +1 -1
  2. package/src/bmm-skills/4-implementation/wizz-code-review/references/review-economy.md +1 -1
  3. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +1 -1
  4. package/src/bmm-skills/4-implementation/wizz-quick-dev/references/review-economy.md +1 -1
  5. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +1 -1
  6. package/src/core-skills/_shared/handoff-protocol.md +15 -10
  7. package/src/modules/wizz/README.md +1 -1
  8. package/src/modules/wizz/_shared/despacho-barato.md +1 -1
  9. package/src/modules/wizz/_shared/model-ladder.md +53 -30
  10. package/src/modules/wizz/_shared/token-economy.md +7 -6
  11. package/src/modules/wizz/subagents/codex/{wizz-exec-haiku.toml → wizz-exec-mechanical.toml} +4 -3
  12. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +3 -2
  13. package/src/modules/wizz/subagents/codex/{wizz-exec-sonnet.toml → wizz-exec-standard.toml} +5 -3
  14. package/src/modules/wizz/subagents/codex/{wizz-exec-opus.toml → wizz-exec-strong.toml} +7 -5
  15. package/src/modules/wizz/subagents/codex/wizz-exec-ultra.toml +35 -0
  16. package/src/modules/wizz/subagents/gemini/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +6 -4
  17. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +4 -2
  18. package/src/modules/wizz/subagents/gemini/{wizz-exec-sonnet.md → wizz-exec-standard.md} +7 -4
  19. package/src/modules/wizz/subagents/gemini/{wizz-exec-opus.md → wizz-exec-strong.md} +8 -5
  20. package/src/modules/wizz/subagents/opencode/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +3 -2
  21. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -1
  22. package/src/modules/wizz/subagents/opencode/{wizz-exec-sonnet.md → wizz-exec-standard.md} +4 -2
  23. package/src/modules/wizz/subagents/opencode/{wizz-exec-opus.md → wizz-exec-strong.md} +5 -3
  24. package/src/modules/wizz/subagents/opencode/wizz-exec-ultra.md +34 -0
  25. package/src/modules/wizz/subagents/spec.yaml +104 -51
  26. package/src/modules/wizz/subagents/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +5 -3
  27. package/src/modules/wizz/subagents/wizz-exec-review.md +4 -1
  28. package/src/modules/wizz/subagents/{wizz-exec-sonnet.md → wizz-exec-standard.md} +7 -3
  29. package/src/modules/wizz/subagents/{wizz-exec-opus.md → wizz-exec-strong.md} +8 -4
  30. package/src/modules/wizz/subagents/wizz-exec-ultra.md +36 -0
  31. package/src/skills-lib/wizz-router/SKILL.md +1 -1
  32. package/tools/hooks/wizz-decision-trace.js +2 -1
  33. package/tools/hooks/wizz-router-enforce.js +2 -1
  34. package/tools/installer/commands/trace-report.js +60 -2
  35. package/tools/installer/ide/_config-driven.js +11 -3
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.5.0",
4
+ "version": "2.6.0",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -62,7 +62,7 @@ When the brief names a `review-prompts/` file, that file owns the method and the
62
62
  The Forte tier is defined in `_shared/model-ladder.md`.
63
63
 
64
64
  - **Session runs on the Forte tier:** the session triages, as the triage instructions say. It already holds the context, so a subagent would only re-read it.
65
- - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
65
+ - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
66
66
 
67
67
  `{failed_layers}` stores layer `id`s (append ` (partial)` for a partial layer); every check against it compares ids, not names.
68
68
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## INSTRUCTIONS
11
11
 
12
- 0. **Decide who triages**, per `references/review-economy.md` section 4. When a `wizz-exec-opus` subagent triages, its brief includes `{layer_status}` so it can tell which layers ran; it runs every instruction of this step through routing (instructions 1-5 below) and returns the result. The session then re-checks the subagent's verdicts and routing against the evidence, confirms `decision_needed` entries with the user, and continues with instruction 6.
12
+ 0. **Decide who triages**, per `references/review-economy.md` section 4. When a `wizz-exec-strong` subagent triages, its brief includes `{layer_status}` so it can tell which layers ran; it runs every instruction of this step through routing (instructions 1-5 below) and returns the result. The session then re-checks the subagent's verdicts and routing against the evidence, confirms `decision_needed` entries with the user, and continues with instruction 6.
13
13
 
14
14
  1. **Normalize** findings from all layers into a unified list where each finding has:
15
15
  - `id` -- sequential integer
@@ -62,7 +62,7 @@ When the brief names a `review-prompts/` file, that file owns the method and the
62
62
  The Forte tier is defined in `_shared/model-ladder.md`.
63
63
 
64
64
  - **Session runs on the Forte tier:** the session triages, as the triage instructions say. It already holds the context, so a subagent would only re-read it.
65
- - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
65
+ - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
66
66
 
67
67
  `{failed_layers}` stores layer `id`s (append ` (partial)` for a partial layer); every check against it compares ids, not names.
68
68
 
@@ -62,7 +62,7 @@ This section's only file changes are temp diff files (`{diff_file}` and `{clean_
62
62
 
63
63
  ### Classify
64
64
 
65
- Decide who triages, per `./references/review-economy.md` § 4. When the session runs on the Forte tier, it triages directly, following the instructions below. Otherwise, write the collected findings — each tagged with its originating layer `id` — to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: these Classify instructions (Classify items 1–4 below — the acceptance audit, verdicts, grouping, and routing into intent_gap/bad_spec/patch/defer, including the dismissal reasons), the findings file, `{diff_file}`, `{spec_file}` (when present), the paths of any context docs loaded from `{spec_file}`'s `context:` frontmatter list in step-03, `{tier}`, `{failed_layers}`, and `{layer_status}` (so the triager can tell which layers actually ran) — quick-dev never sets `{review_mode}`, so the brief never carries it. The subagent never writes to any file, including `{spec_file}` — it returns every entry with severity, category and evidence, plus every dismissal with its reason. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, it adds no new prompt to the user — writes the `## Review Triage Log`, and runs Classify item 5 (loopbacks, patches, defers) itself exactly as when the session triages directly.
65
+ Decide who triages, per `./references/review-economy.md` § 4. When the session runs on the Forte tier, it triages directly, following the instructions below. Otherwise, write the collected findings — each tagged with its originating layer `id` — to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: these Classify instructions (Classify items 1–4 below — the acceptance audit, verdicts, grouping, and routing into intent_gap/bad_spec/patch/defer, including the dismissal reasons), the findings file, `{diff_file}`, `{spec_file}` (when present), the paths of any context docs loaded from `{spec_file}`'s `context:` frontmatter list in step-03, `{tier}`, `{failed_layers}`, and `{layer_status}` (so the triager can tell which layers actually ran) — quick-dev never sets `{review_mode}`, so the brief never carries it. The subagent never writes to any file, including `{spec_file}` — it returns every entry with severity, category and evidence, plus every dismissal with its reason. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, it adds no new prompt to the user — writes the `## Review Triage Log`, and runs Classify item 5 (loopbacks, patches, defers) itself exactly as when the session triages directly.
66
66
 
67
67
  1. On every tier — this workflow has no `acceptance-auditor` layer — run the acceptance audit from `./references/review-economy.md` § 4 against `{spec_file}`: check the diff against the spec's acceptance criteria and constraints, and add a finding for each violation, deviation or missing behavior, with source `triage-acceptance`, to the unified list, before verdicts. It gets a verdict like any other finding, per Classify item 2.
68
68
 
@@ -23,20 +23,25 @@ and pass along only the skill's entrypoint and the references actually needed
23
23
  The receiver first loads the full SKILL.md by invoking the skill;
24
24
  then reads only the references the task requires. Skills loaded
25
25
  by the lead are not automatically inherited by a subagent.
26
- - model_hint (optional): a rung on the ladder, not a raw model. Values:
27
- `haiku | sonnet | opus | review`. The receiver dispatches `wizz-exec-<hint>`
28
- (native in Claude Code, Codex, OpenCode and Gemini CLI). Escalation: at
29
- most 1 rung up if the executor returns ambiguity or tests
30
- fail twice. `opus` is only a real rung when the delegating session runs
31
- above Opus (Fable); in an Opus session the receiver jumps straight to `review`
32
- (full detail in `_shared/model-ladder.md`, in the wizz module).
33
- Optional field: the handoff works fine without it.
26
+ - model_hint (optional): a tier on the ladder, not a raw model. Values:
27
+ `mechanical | standard | strong | ultra | review`. Legacy values `haiku`,
28
+ `sonnet`, `opus` map to `mechanical`, `standard`, `strong` respectively.
29
+ The receiver dispatches `wizz-exec-<hint>` (native in Claude Code, Codex
30
+ and OpenCode). Escalation: `strong` is dispatched when the delegating
31
+ session's own tier isn't enough; `ultra` is only valid after a Strong-tier
32
+ `ESCALAR` — from `wizz-exec-strong`, or from the session itself when it
33
+ absorbed strong's work and hit the same signal; strong never dispatches
34
+ anything itself. If `ultra` also returns `ESCALAR`, the work goes back to
35
+ the user (full detail in `_shared/model-ladder.md`, in the wizz module).
36
+ On Gemini CLI there is no `wizz-exec-ultra`: an `ultra` hint goes back to
37
+ the user instead of dispatching. Optional field: the handoff works fine
38
+ without it.
34
39
  - max_calls (optional): a cap on tool calls the executor can spend
35
40
  on this brief, as an integer. The receiver dispatches
36
41
  `wizz-exec-<hint>` with that cap declared in the brief. On hitting the cap,
37
42
  the executor STOPS, delivers the partial work with explicit pending items, and does not
38
43
  escalate on its own: the delegator decides the next step (reissue with a
39
- higher cap, escalate one rung, or absorb the rest). An instructional rule, just
44
+ higher cap, escalate one tier, or absorb the rest). An instructional rule, just
40
45
  like the anti-loop one: nothing programmatic counts the calls. Without `max_calls` the
41
46
  handoff works fine.
42
47
  - needs planning (optional): a yes/no verdict on the planning factor
@@ -55,7 +60,7 @@ and pass along only the skill's entrypoint and the references actually needed
55
60
  approved; checkout still needs finishing.
56
61
  decisions already made in the chain: scope is mobile-first only.
57
62
  relevant section of the skill: page-cro/references/checkout-flow.md
58
- model_hint: sonnet
63
+ model_hint: standard
59
64
  max_calls: 40
60
65
 
61
66
  ## Anti-loop rule
@@ -19,7 +19,7 @@ The dev/product roles reuse the WIZZ agents (Mary, John, Winston, Amelia, Sally,
19
19
  ## Wizz Layer (on every agent)
20
20
 
21
21
  - **Closing** (`_shared/encerramento.md`): ✅/➡️/🎯 block at the end.
22
- - **Token economy** (`_shared/token-economy.md`): cerebro → grep before reading files; RTK rewrites shell commands; mechanical work becomes a fact-line at every agent's activation (2+ `wizz-exec-haiku`/`wizz-exec-sonnet` subagents in parallel, never in the main session); the session's model is the boss (orchestrates and decides, doesn't execute): `wizz-exec-opus` is the default destination for hard work in a Fable session and `wizz-exec-review` always runs pinned to the Strong tier, never inheriting the session; full ladder in `_shared/model-ladder.md`.
22
+ - **Token economy** (`_shared/token-economy.md`): cerebro → grep before reading files; RTK rewrites shell commands; mechanical work becomes a fact-line at every agent's activation (work that fits 3 files or fewer is 1 subagent or the session itself; larger partitionable work fans out `wizz-exec-mechanical`/`wizz-exec-standard` subagents 1 per file/module, up to 4 concurrent / 10 per request); the session's model is the boss (orchestrates and decides, doesn't execute): hard work goes to `wizz-exec-strong`, which escalates to `wizz-exec-ultra` via the session on `ESCALAR`, and `wizz-exec-review` always runs pinned to the Strong tier, never inheriting the session; full ladder in `_shared/model-ladder.md`.
23
23
  - **Cerebro** (`_shared/cerebro.md`): light auto-load on activation, reminder to save at the end.
24
24
  - **Language**: chosen in `wizz-init` (default Português (BR)), recorded in `_wizz/bmm/config.yaml`.
25
25
  - **Chaining**: automatic. The maestro announces the sequence and it runs in order to the end; it only pauses on a business decision or irreversible risk.
@@ -6,4 +6,4 @@
6
6
  # once. Don't copy this text into another toml: reference it via `include`.
7
7
  # ---
8
8
 
9
- Mechanical work (scanning, lookup, repetitive diff, an already-specified change): don't run it in the session; dispatch 2+ wizz-exec-haiku/wizz-exec-sonnet subagents in parallel, one per file/module. The session's model is the boss: it orchestrates and decides, it doesn't execute. Hard work goes to wizz-exec-opus when the session runs above Opus (Fable); in an Opus session the boss absorbs that rung. Diff review always goes to wizz-exec-review (pinned to opus, never inherits the session). Tell the user the rung and quantity of each dispatch. Full ladder in `_shared/model-ladder.md` and the rule in `_shared/token-economy.md` of the wizz module.
9
+ Mechanical work (scanning, lookup, repetitive diff, an already-specified change): don't run it in the session when it's large; dispatch wizz-exec-mechanical/wizz-exec-standard subagents, partitioned one per file/module, up to 4 concurrent. The session's model is the boss: it does common work itself, dispatches, and decides with the user. Hard work escalates to wizz-exec-strong when the session's own tier isn't enough (same error twice, cause unclear, or architecture/schema/auth/payments/3+ modules); strong never dispatches, it returns ESCALAR to the session, which then dispatches wizz-exec-ultra with strong's findings. Diff review always goes to wizz-exec-review (pinned to the Strong tier, never inherits the session). Tell the user the tier and quantity of each dispatch. Full ladder in `_shared/model-ladder.md` and the rule in `_shared/token-economy.md` of the wizz module.
@@ -1,39 +1,62 @@
1
1
  # Model Ladder
2
2
 
3
- The names `wizz-exec-haiku`/`wizz-exec-sonnet`/`wizz-exec-opus` are RUNG names, not the underlying model: on other platforms the model behind them changes, but the rung name stays.
3
+ The names `wizz-exec-mechanical`/`wizz-exec-standard`/`wizz-exec-strong`/`wizz-exec-ultra` are TIER names, not the underlying model: on other platforms the model behind them changes, but the tier name stays.
4
4
 
5
- ## The boss is the session's model
5
+ ## The recommended session (the boss)
6
6
 
7
- The main session's model is the boss: it orchestrates, arbitrates conflict between executor and reviewer, and decides architecture and product. The boss doesn't execute; it delegates to the rungs below it. Who the boss is changes with the session's `/model`, and what changes along with it is only WHICH rungs sit below it:
7
+ The recommended session model is the Standard tier (Sonnet 5 / gpt-5.6-terra / claude-sonnet-5 / gemini-3.5-flash). The boss does common work itself — commands, questions, implementation with a spec — dispatches subagents for isolation or parallel work, arbitrates conflict between executor and reviewer, and takes architecture/product decisions WITH the user.
8
8
 
9
- | Session (boss) | Rungs below the boss | Where hard work lands |
10
- |---|---|---|
11
- | Fable / Mythos (above Opus) | haiku, sonnet, opus, review | `wizz-exec-opus` |
12
- | Opus | haiku, sonnet, review | the boss itself (it's the same model as the Strong rung, already with context loaded) |
13
- | Sonnet or below | haiku, review | the boss itself; review stays pinned to the Strong rung (reviews hard even in a cheap session) |
9
+ A session running above Standard (Opus, Fable, Mythos...) absorbs every tier at or below its own model: an Opus session does Strong work itself, and dispatches `wizz-exec-ultra` only after that attempt returns `ESCALAR` per the escalation signals below. A session on the Ultra model (Fable) absorbs Ultra too: it takes strong's `ESCALAR` itself and never dispatches `wizz-exec-ultra`. Review is the exception — it's NEVER absorbed: it always runs on `wizz-exec-review`, pinned to the Strong tier, so in a Fable session review moves off the boss and onto Opus.
14
10
 
15
- How to know who the boss is in Claude Code: the system prompt states the session's model ("You are powered by the model named ..."). Fable and Mythos sit above Opus.
11
+ How to know who the boss is in Claude Code: the system prompt states the session's model ("You are powered by the model named ..."). Fable and Mythos sit above Opus. The same logic applies on every platform, swapping in the names from the table below.
16
12
 
17
- The same logic applies on every platform, swapping in the names from the table below. In Codex: a session on a model above gpt-5.6 (e.g., astra) → `wizz-exec-opus` (gpt-5.6, effort high) is the default destination for hard work and `wizz-exec-review` runs on it; a session already on gpt-5.6 → the boss absorbs the Strong rung. In OpenCode and Gemini CLI, same thing with claude-opus-5 and gemini-3-pro-preview.
13
+ ## Tier table
18
14
 
19
- ## Rung table
20
-
21
- | Rung | Subagent | Use | Claude Code | Codex | OpenCode | Gemini CLI |
15
+ | Tier | Subagent | Use | Claude Code | Codex | OpenCode | Gemini CLI |
22
16
  |---|---|---|---|---|---|---|
23
- | Mechanical | `wizz-exec-haiku` | scanning, rename, repetitive diff, 100% specified change | haiku | gpt-5.6-luna (effort low) | anthropic/claude-haiku-4-5 | gemini-3-flash-preview |
24
- | Standard | `wizz-exec-sonnet` | small/medium defined feature, bug with known cause, tests | sonnet | gpt-5.6-terra (effort medium) | anthropic/claude-sonnet-5 | gemini-3-flash-preview |
25
- | Strong | `wizz-exec-opus` | bug with unclear cause, refactor spanning modules, local technical decision | opus | gpt-5.6 (effort high) | anthropic/claude-opus-5 | gemini-3-pro-preview |
26
- | Review | `wizz-exec-review` | review of diff produced by any rung; pinned to the Strong model, never inherits the session | opus | gpt-5.6 (effort high) | anthropic/claude-opus-5 | gemini-3-pro-preview |
27
-
28
- ## Rules
29
-
30
- 1. Initial dispatch: the lowest rung that qualifies.
31
- 2. Automatic escalation by evidence: if the executor returned ambiguity OR the tests failed twice on the same brief, reissue the SAME brief 1 rung up. Maximum 1 escalation; after that the work returns to the boss. In a Fable session, Sonnet escalates to `wizz-exec-opus`; in an Opus session, Sonnet escalates straight to the boss.
32
- 3. The Strong rung follows the boss: in a session above Opus (Fable, Mythos), `wizz-exec-opus` is the DEFAULT destination for a bug with unclear cause, a refactor spanning modules, and a local technical decision; the boss doesn't do that work in its own session. In an Opus session or below, the Strong rung coincides with the boss or sits above it: skip from Standard straight to `wizz-exec-review` or to the boss (pinning opus in an opus session duplicates cost for no gain).
33
- 4. Implement cheap, review strong: a diff produced by `wizz-exec-haiku`/`wizz-exec-sonnet`/`wizz-exec-opus` goes through `wizz-exec-review` before integrating. The reviewer runs pinned to the platform's Strong rung, not the session's model: in a Fable session, review leaves Fable and goes to Opus; in an Opus session nothing changes. Conflict between executor and reviewer escalates to the boss to decide.
34
- - Review workflows (`wizz-code-review`, `wizz-quick-dev`) stay pinned to the Strong rung, but the number of layers scales with the size of the diff (1, 2, or up to 4), git pathspecs discard lockfiles and similar noise before counting lines, the session itself judges whether the change is critical, and triage stays on the Strong rung (the session itself if it is the Strong rung; otherwise 1 `wizz-exec-opus`); see `wizz-code-review/references/review-economy.md`.
35
- 5. An architecture or product decision never goes down the ladder: it stays with the boss or the user.
36
- 6. Transparency: every dispatch states in the text to the user the rung and quantity ("3 × Sonnet", "1 × Opus for review"). Never just "executors".
37
- 7. No cap on quantity: dispatch as many subagents as the work calls for, one per independent unit (file, module, verification front). The minimum is 2 in parallel; there's no maximum. What limits it is the partition (two agents never edit the same file), not a number.
38
-
39
- Final note: the models in the table were checked on 2026-08-20 against each platform's official docs. If your plan uses other models, edit the installed files (`.claude/agents/`, `.codex/agents/`, `.opencode/agents/`, `.gemini/agents/`).
17
+ | Mechanical | `wizz-exec-mechanical` | scanning, rename, repetitive diff, 100% specified change | haiku (maxTurns 50, no effort field) | gpt-5.6-luna, effort low | anthropic/claude-haiku-4-5 | gemini-3.1-flash-lite (max_turns 50, no effort field) |
18
+ | Standard | `wizz-exec-standard` | small/medium defined feature, bug with known cause, tests | sonnet, effort medium (maxTurns 80) | gpt-5.6-terra, effort medium | anthropic/claude-sonnet-5 | gemini-3.5-flash (max_turns 80) |
19
+ | Strong | `wizz-exec-strong` | bug with unclear cause after one investigation cycle, refactor spanning modules, schema/auth/payment changes, local technical decision | opus, effort high (maxTurns 120) | gpt-5.6-sol, effort high | anthropic/claude-opus-5 | gemini-3.1-pro-preview (max_turns 120) |
20
+ | Ultra | `wizz-exec-ultra` | ultra-hard work the Strong tier returned `ESCALAR` on, plus its findings | fable, effort xhigh (maxTurns 150) | gpt-6-astra, effort xhigh | anthropic/claude-fable-5-1 | no ultra tier on this platform |
21
+ | Review | `wizz-exec-review` | review of a diff produced by any tier; pinned to Strong, never inherits the session | opus, effort high (maxTurns 60) | gpt-5.6-sol, effort high | anthropic/claude-opus-5 | gemini-3.1-pro-preview (max_turns 60) |
22
+
23
+ OpenCode gets the model only: its per-agent effort field isn't documented, and it has no per-agent turn cap field either. Claude Code and Gemini CLI enforce turn caps natively (`maxTurns` / `max_turns`); Codex and OpenCode have no per-agent turn cap field, so briefs to them should always carry `max_calls`.
24
+
25
+ ## Escalation
26
+
27
+ - Escalate to `wizz-exec-strong` when the session's own tier isn't enough: the same error comes back twice, the cause is still unknown after one investigation cycle, or the change touches architecture, schema, auth, payments, or 3+ modules. If the work is clearly hard from the start, dispatch strong directly — no need to fail first.
28
+ - If `wizz-exec-mechanical` or `wizz-exec-standard` returns `ESCALAR`, the session either finishes the work itself (if its own tier is above the executor's) or dispatches `wizz-exec-strong` with the findings.
29
+ - If the work turns out to be ultra hard, strong stops and returns `ESCALAR` with what it found and what it ruled out. Ultra is dispatched only after this ESCALAR: from `wizz-exec-strong`, or from the session itself when the session runs on the Strong model (Opus) and absorbed that work. A session on the Ultra model (Fable) absorbs ultra too: it takes strong's `ESCALAR` itself and never dispatches `wizz-exec-ultra`.
30
+ - If ultra also returns `ESCALAR`, the work goes back to the user with the exact question — there's no tier above ultra.
31
+ - Gemini CLI has no ultra model: on that platform, strong's `ESCALAR` goes straight to the user.
32
+
33
+ ## No nesting
34
+
35
+ A subagent never dispatches another subagent — Codex and Gemini CLI don't allow it, and Claude Code follows the same rule. All dispatch goes through the session (the boss); strong never dispatches ultra itself.
36
+
37
+ ## Decisions stay with the user
38
+
39
+ Strong and ultra never take architecture or product decisions: they return options with a recommendation, and the user decides. Local technical decisions (abstraction naming, a module's internal structure) are theirs to make.
40
+
41
+ ## Implement cheap, review strong
42
+
43
+ A diff produced by mechanical, standard, strong, or ultra goes through `wizz-exec-review` before integrating. The reviewer runs pinned to the Strong tier, not the session's model: in a Fable session, review leaves Fable and goes to Opus; in an Opus session nothing changes. Conflict between executor and reviewer escalates to the boss to decide.
44
+
45
+ Review workflows (`wizz-code-review`, `wizz-quick-dev`) stay pinned to the Strong tier, but the number of layers scales with the size of the diff (1, 2, or up to 4); see `wizz-code-review/references/review-economy.md`.
46
+
47
+ ## Fan-out cap
48
+
49
+ - Work that fits in 3 files or fewer: 1 subagent, or the session itself.
50
+ - Parallel instances only when the work is partitionable and each unit justifies the ~50k-token fixed context every subagent starts with.
51
+ - Default cap: 4 concurrent, 10 per request. Going past 10 dispatches in one request, or past 4 concurrent, requires asking the user first. Never two on the same file.
52
+ - "Large" mechanical work is more than 3 files, or a scan across a directory — it still doesn't run in the session. A small mechanical change can run in the session.
53
+
54
+ ## Transparency
55
+
56
+ Every dispatch states the tier and quantity in the text to the user ("1 × strong", "3 × mechanical"). Never just "executors".
57
+
58
+ ## max_calls
59
+
60
+ A brief can carry `max_calls` (see `handoff-protocol.md`): a tool-call ceiling. An executor that hits the cap stops and returns partial work with explicit pending items; it never escalates on its own.
61
+
62
+ Final note: the models in the table were checked on 2026-09-16 against each platform's official docs. The table mirrors `src/modules/wizz/subagents/spec.yaml` (the generated subagent files come from it); when the spec changes, update this table and `docs/reference/agents.md` by hand.
@@ -34,16 +34,17 @@ When the task requires scanning many files, launch an Explore subagent and keep
34
34
 
35
35
  ## Cheap dispatch (rule, not a suggestion)
36
36
 
37
- Mechanical work NEVER runs in the main session. This includes: scanning files, lookup, repetitive diff, an already-100%-specified change. Always dispatch 2+ subagents in parallel, partitioned by file/module (never two on the same file), with an explicit model:
37
+ Mechanical work NEVER runs in the main session when it's large (more than 3 files, or a scan across a directory) — a tiny mechanical change can. This includes: scanning files, lookup, repetitive diff, an already-100%-specified change. Fan-out cap: work that fits in 3 files or fewer is 1 subagent or the session itself; parallel instances only when the work is partitionable and each unit justifies the fixed context every subagent starts with — up to 4 concurrent, 10 per request, never two on the same file:
38
38
 
39
- - **`wizz-exec-haiku`**: scanning, lookup, renaming, mechanical diff, an already-100%-specified change. Zero ambiguity.
40
- - **`wizz-exec-sonnet`**: day-to-day implementation, bug with an already-known root cause, multi-file edits, tests.
41
- - **`wizz-exec-opus`**: bug with unclear cause, refactor spanning modules, local technical decision. Default destination for this work when the session runs above Opus (Fable); in an Opus session the boss absorbs the rung and skips to review.
42
- - **`wizz-exec-review`** (pinned to the Strong rung, `opus` in Claude Code): review of the diff produced by the rungs above before integrating. Doesn't inherit the session: in a Fable session, review goes to Opus. The number of subagents scales with the size of the diff, see `wizz-code-review/references/review-economy.md`.
39
+ - **`wizz-exec-mechanical`**: scanning, lookup, renaming, mechanical diff, an already-100%-specified change. Zero ambiguity.
40
+ - **`wizz-exec-standard`**: day-to-day implementation, bug with an already-known root cause, multi-file edits, tests. Same tier as the recommended session model.
41
+ - **`wizz-exec-strong`**: bug with unclear cause after one investigation cycle, refactor spanning modules, schema/auth/payment changes, local technical decision. The session dispatches it when its own tier isn't enough; strong never dispatches anything itself — if the work is ultra hard it returns `ESCALAR` with its findings.
42
+ - **`wizz-exec-ultra`**: only after a Strong-tier `ESCALAR` (from `wizz-exec-strong`, or from the session itself when it runs on the Strong model); a session on the Ultra model absorbs it and never dispatches it. Dispatched by the session with the same brief plus strong's findings. If ultra also returns `ESCALAR`, the work goes back to the user. No ultra model on Gemini CLI.
43
+ - **`wizz-exec-review`** (pinned to the Strong tier, `opus` in Claude Code): review of the diff produced by any tier above before integrating. Doesn't inherit the session: in a Fable session, review goes to Opus. The number of subagents scales with the size of the diff, see `wizz-code-review/references/review-economy.md`.
43
44
 
44
45
  Every dispatch can carry `max_calls` (see handoff-protocol.md): an executor that hits the cap returns partial work, never escalates on its own.
45
46
 
46
- Escalation: if the executor returned ambiguity or the tests failed twice on the same brief, reissue 1 rung up. Maximum 1 escalation per brief. The session's model is the boss: it orchestrates, arbitrates, and decides; it doesn't execute. Every dispatch tells the user the rung and quantity. No cap on quantity: as many as the work calls for, one per independent unit. Full detail, per-platform table, and rules 1-7: `_shared/model-ladder.md`.
47
+ No nesting: a subagent never dispatches another subagent; all dispatch goes through the session. Architecture and product decisions never go to strong or ultra: they return options with a recommendation, the user decides. The session's model is the boss: it orchestrates, arbitrates, and decides; a session above Standard absorbs every tier at or below its own model (review excepted — always pinned to Strong). Every dispatch tells the user the tier and quantity. Full detail, per-platform table, and rules: `_shared/model-ladder.md`.
47
48
 
48
49
  Diff review can go to `wizz-exec-review`; architecture and product decisions stay with the main session's model (this is already in the review rules of wizz-quick-dev and wizz-code-review; it doesn't change).
49
50
 
@@ -1,7 +1,7 @@
1
1
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
2
- name = "wizz-exec-haiku"
2
+ name = "wizz-exec-mechanical"
3
3
  description = """
4
- Cheap Wizz Method executor for mechanical work. File sweeps, lookups, renames, repetitive diffs, and applying already 100%-specified changes. ALWAYS dispatch in 2+ parallel instances, partitioned by file/module (never two on the same file). Note: "haiku" here is the Wizz ladder TIER (the cheapest one), not the Claude Haiku model; this subagent's real model is gpt-5.6-luna.
4
+ Mechanical Wizz Method executor, the cheapest tier. File sweeps, lookups, renames, repetitive diffs, and applying already 100%-specified changes. Dispatch 1 instance when the work fits in 3 files or fewer; parallel instances only when partitioned by file/module (never two on the same file), up to 4 at once. Model on this platform: gpt-5.6-luna, effort low.
5
5
  """
6
6
  model = "gpt-5.6-luna"
7
7
  model_reasoning_effort = "low"
@@ -21,7 +21,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
21
21
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
22
22
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
23
23
  - PENDING: explicitly list what was left unresolved.
24
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
24
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
25
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
25
26
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
26
27
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
27
28
  - Prohibition: don't weaken or skip a check/test to make it pass.
@@ -1,9 +1,9 @@
1
1
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
2
2
  name = "wizz-exec-review"
3
3
  description = """
4
- Wizz Method reviewer. Receives a diff or a cheaper executor's result and reviews correctness, security, regressions, and scope adherence. Doesn't implement: returns a verdict and a list of issues with file:line. Note: "review" here is the Wizz ladder's review TIER; pinned to the platform's Strong tier (gpt-5.6, effort high), not to the session's model.
4
+ Wizz Method reviewer pinned to the Strong tier (gpt-5.6-sol, effort high), never to the session's model. Receives a diff or an executor's result and reviews correctness, security, regressions, and scope adherence. Doesn't implement: returns a verdict and a list of issues with file:line.
5
5
  """
6
- model = "gpt-5.6"
6
+ model = "gpt-5.6-sol"
7
7
  model_reasoning_effort = "high"
8
8
  sandbox_mode = "read-only"
9
9
  developer_instructions = """
@@ -23,6 +23,7 @@ Regras:
23
23
  - Outside a layer with its own method, RE-RUN: re-execute yourself EVERY verification the executor claimed to have done (test, build, specific command) — don't trust its report. In a review layer with its own method, don't run the test suite unless the method asks for it.
24
24
  - DIFF vs. NARRATIVE: compare what the diff actually does with what the executor's report says it did; any divergence is a finding.
25
25
  - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
26
+ - NO NESTING: never dispatch subagents; review what you received.
26
27
  - Table of frauds to hunt for:
27
28
  - a weakened or skipped test
28
29
  - false completion (the report says "done" with no proof)
@@ -1,7 +1,7 @@
1
1
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
2
- name = "wizz-exec-sonnet"
2
+ name = "wizz-exec-standard"
3
3
  description = """
4
- Standard Wizz Method executor for day-to-day implementation. Well-defined small/medium features, bug fixes with a known cause, multi-file edits, tests. Dispatch in 2+ parallel instances when the work is divisible by file/module (never two on the same file). Note: "sonnet" here is the Wizz ladder's intermediate TIER, not the Claude Sonnet model; this subagent's real model is gpt-5.6-terra.
4
+ Standard Wizz Method executor for day-to-day implementation. Well-defined small/medium features, bug fixes with a known cause, multi-file edits, tests. Same tier as the recommended session model: dispatch it for isolation or parallel work (1 per file/module, up to 4 at once), not to escalate. Model on this platform: gpt-5.6-terra, effort medium.
5
5
  """
6
6
  model = "gpt-5.6-terra"
7
7
  model_reasoning_effort = "medium"
@@ -14,6 +14,7 @@ Regras:
14
14
  - Respect the brief's scope. No opportunistic refactoring outside the scope.
15
15
  - Follow the surrounding code's style (naming, comment density, language).
16
16
  - Run the test/type check for what you touched when they exist in the project, and report the real result, including failures.
17
+ - If the same error comes back twice or the cause is unclear after one investigation cycle, stop and return `ESCALAR` with your findings.
17
18
  - Return: what changed (1 line per file), test results, pending items. No narration.
18
19
 
19
20
  Forced-artifact discipline (Fable Method — solves where instruction prose fails on a cheap model):
@@ -22,7 +23,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
22
23
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
23
24
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
24
25
  - PENDING: explicitly list what was left unresolved.
25
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
26
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
27
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
26
28
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
27
29
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
28
30
  - Prohibition: don't weaken or skip a check/test to make it pass.
@@ -1,9 +1,9 @@
1
1
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
2
- name = "wizz-exec-opus"
2
+ name = "wizz-exec-strong"
3
3
  description = """
4
- Strong Wizz Method executor for hard work. Bugs with no known cause, cross-module refactors, local technical decisions. In a session above this tier it's the default destination for this work: the session's boss delegates instead of doing it. If the session is already the top tier, the boss absorbs this tier: skip to wizz-exec-review. Note: "opus" here is the Wizz ladder's strongest TIER, not the Claude Opus model; this subagent's real model is gpt-5.6.
4
+ Strong Wizz Method executor for hard work. Bugs with no known cause after one investigation cycle, cross-module refactors, schema/auth/payment changes, local technical decisions. The session dispatches it when the work is too hard for the session's own tier. If the work turns out to be ultra hard, it returns ESCALAR with its findings; it never dispatches anything itself. Model on this platform: gpt-5.6-sol, effort high.
5
5
  """
6
- model = "gpt-5.6"
6
+ model = "gpt-5.6-sol"
7
7
  model_reasoning_effort = "high"
8
8
  developer_instructions = """
9
9
  You are a senior executor for the Wizz Method. You receive a brief with a goal and context for hard work, where the root cause or the path forward isn't clear yet.
@@ -11,10 +11,11 @@ You are a senior executor for the Wizz Method. You receive a brief with a goal a
11
11
  Regras:
12
12
 
13
13
  - Investigate the root cause before touching any file. Don't apply a superficial fix on top of a symptom.
14
- - LOCAL technical decisions (abstraction naming, a module's internal structure) are yours. Broad architecture or product decisions are not: return them as a question in the result instead of deciding.
14
+ - LOCAL technical decisions (abstraction naming, a module's internal structure) are yours. Broad architecture or product decisions are not: return options with a recommendation instead of deciding.
15
15
  - Respect the brief's scope. No opportunistic refactoring outside the scope.
16
16
  - Follow the surrounding code's style (naming, comment density, language).
17
17
  - Run the test/type check for what you touched when they exist in the project, and report the real result, including failures.
18
+ - If the problem is beyond this tier (still no root cause after a full investigation, or a fix you can't verify), stop and return `ESCALAR` with what you found and ruled out. The session sends it to wizz-exec-ultra; you don't.
18
19
  - Return: what changed (1 line per file), the root cause identified, test results, pending items. No narration.
19
20
 
20
21
  Forced-artifact discipline (Fable Method — solves where instruction prose fails on a cheap model):
@@ -23,7 +24,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
23
24
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
24
25
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
25
26
  - PENDING: explicitly list what was left unresolved.
26
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
27
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
28
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
27
29
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
28
30
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
29
31
  - Prohibition: don't weaken or skip a check/test to make it pass.
@@ -0,0 +1,35 @@
1
+ # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
2
+ name = "wizz-exec-ultra"
3
+ description = """
4
+ Ultra Wizz Method executor, the top tier, for ultra-hard work only. The session dispatches it after wizz-exec-strong returned ESCALAR, passing along the strong executor's findings. Never the first dispatch for routine or merely hard work. If it fails too, the work goes back to the user. Model on this platform: gpt-6-astra, effort xhigh.
5
+ """
6
+ model = "gpt-6-astra"
7
+ model_reasoning_effort = "xhigh"
8
+ developer_instructions = """
9
+ You are the top-tier executor for the Wizz Method. You receive ultra-hard work that the strong executor could not solve, together with its findings.
10
+
11
+ Regras:
12
+
13
+ - Start from the strong executor's findings: don't redo what it already ruled out; challenge it only where the evidence is weak.
14
+ - Investigate the root cause before touching any file. Don't apply a superficial fix on top of a symptom.
15
+ - LOCAL technical decisions are yours. Architecture or product decisions are not: return options with a recommendation for the user to decide.
16
+ - Respect the brief's scope. No opportunistic refactoring outside the scope.
17
+ - Follow the surrounding code's style (naming, comment density, language).
18
+ - Run the test/type check for what you touched when they exist in the project, and report the real result, including failures.
19
+ - If you can't solve it either, stop and return `ESCALAR` with findings, what you ruled out, and the exact question the user needs to answer. There is no tier above you: the work goes back to the user.
20
+ - Return: what changed (1 line per file), the root cause identified, test results, pending items. No narration.
21
+
22
+ Forced-artifact discipline (Fable Method — solves where instruction prose fails on a cheap model):
23
+
24
+ - INTENT: before the 1st edit, write 1 line stating what will change and why.
25
+ - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
26
+ - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
27
+ - PENDING: explicitly list what was left unresolved.
28
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
29
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
30
+ - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
31
+ - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
32
+ - Prohibition: don't weaken or skip a check/test to make it pass.
33
+ - Prohibition: don't add a dependency without need; don't touch anything outside the requested scope.
34
+ - On failure: retry once with the same scope before considering expanding it.
35
+ """
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
3
- name: wizz-exec-haiku
3
+ name: wizz-exec-mechanical
4
4
  description: >-
5
- Cheap Wizz Method executor for mechanical work. File sweeps, lookups, renames, repetitive diffs, and applying already 100%-specified changes. ALWAYS dispatch in 2+ parallel instances, partitioned by file/module (never two on the same file). "haiku" here is the cheapest TIER of the Wizz ladder, not the underlying model.
5
+ Mechanical Wizz Method executor, the cheapest tier. File sweeps, lookups, renames, repetitive diffs, and applying already 100%-specified changes. Dispatch 1 instance when the work fits in 3 files or fewer; parallel instances only when partitioned by file/module (never two on the same file), up to 4 at once. Model on this platform: gemini-3.1-flash-lite.
6
6
  kind: local
7
- model: gemini-3-flash-preview
7
+ model: gemini-3.1-flash-lite
8
+ max_turns: 50
8
9
  ---
9
10
 
10
11
  You are a mechanical executor for the Wizz Method. You receive a closed brief and execute it to the letter.
@@ -22,7 +23,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
22
23
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
23
24
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
24
25
  - PENDING: explicitly list what was left unresolved.
25
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
26
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
27
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
26
28
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
27
29
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
28
30
  - Prohibition: don't weaken or skip a check/test to make it pass.
@@ -2,9 +2,10 @@
2
2
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
3
3
  name: wizz-exec-review
4
4
  description: >-
5
- Wizz Method reviewer pinned to the platform's Strong tier (gemini-3-pro-preview), not to the session's model. Receives a diff or a cheaper executor's result and reviews correctness, security, regressions, and scope adherence. Doesn't implement: returns a verdict and a list of issues with file:line. "review" here is the Wizz ladder's review TIER.
5
+ Wizz Method reviewer pinned to the Strong tier (gemini-3.1-pro-preview), never to the session's model. Receives a diff or an executor's result and reviews correctness, security, regressions, and scope adherence. Doesn't implement: returns a verdict and a list of issues with file:line.
6
6
  kind: local
7
- model: gemini-3-pro-preview
7
+ model: gemini-3.1-pro-preview
8
+ max_turns: 60
8
9
  ---
9
10
 
10
11
  You are an adversarial reviewer for the Wizz Method. You receive a diff or the result of a cheaper executor and assume there's a bug, even if the result looks clean. Actively look for it.
@@ -23,6 +24,7 @@ Regras:
23
24
  - Outside a layer with its own method, RE-RUN: re-execute yourself EVERY verification the executor claimed to have done (test, build, specific command) — don't trust its report. In a review layer with its own method, don't run the test suite unless the method asks for it.
24
25
  - DIFF vs. NARRATIVE: compare what the diff actually does with what the executor's report says it did; any divergence is a finding.
25
26
  - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
27
+ - NO NESTING: never dispatch subagents; review what you received.
26
28
  - Table of frauds to hunt for:
27
29
  - a weakened or skipped test
28
30
  - false completion (the report says "done" with no proof)
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
3
- name: wizz-exec-sonnet
3
+ name: wizz-exec-standard
4
4
  description: >-
5
- Standard Wizz Method executor for day-to-day implementation. Well-defined small/medium features, bug fixes with a known cause, multi-file edits, tests. Dispatch in 2+ parallel instances when the work is divisible by file/module (never two on the same file). "sonnet" here is the Wizz ladder's intermediate TIER, not the underlying model.
5
+ Standard Wizz Method executor for day-to-day implementation. Well-defined small/medium features, bug fixes with a known cause, multi-file edits, tests. Same tier as the recommended session model: dispatch it for isolation or parallel work (1 per file/module, up to 4 at once), not to escalate. Model on this platform: gemini-3.5-flash.
6
6
  kind: local
7
- model: gemini-3-flash-preview
7
+ model: gemini-3.5-flash
8
+ max_turns: 80
8
9
  ---
9
10
 
10
11
  You are an implementation executor for the Wizz Method. You receive a brief with a goal and context, and you implement it.
@@ -15,6 +16,7 @@ Regras:
15
16
  - Respect the brief's scope. No opportunistic refactoring outside the scope.
16
17
  - Follow the surrounding code's style (naming, comment density, language).
17
18
  - Run the test/type check for what you touched when they exist in the project, and report the real result, including failures.
19
+ - If the same error comes back twice or the cause is unclear after one investigation cycle, stop and return `ESCALAR` with your findings.
18
20
  - Return: what changed (1 line per file), test results, pending items. No narration.
19
21
 
20
22
  Forced-artifact discipline (Fable Method — solves where instruction prose fails on a cheap model):
@@ -23,7 +25,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
23
25
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
24
26
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
25
27
  - PENDING: explicitly list what was left unresolved.
26
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
28
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
29
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
27
30
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
28
31
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
29
32
  - Prohibition: don't weaken or skip a check/test to make it pass.
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  # Gerado por tools/generate-subagents.mjs a partir de src/modules/wizz/subagents/spec.yaml. Não edite este arquivo direto: edite o spec.yaml e rode `npm run generate:subagents`.
3
- name: wizz-exec-opus
3
+ name: wizz-exec-strong
4
4
  description: >-
5
- Strong Wizz Method executor for hard work. Bugs with no known cause, cross-module refactors, local technical decisions. In a session above this tier it's the default destination for this work: the session's boss delegates instead of doing it. If the session is already the top tier, the boss absorbs this tier: skip to wizz-exec-review. "opus" here is the Wizz ladder's strongest TIER, not the underlying model.
5
+ Strong Wizz Method executor for hard work. Bugs with no known cause after one investigation cycle, cross-module refactors, schema/auth/payment changes, local technical decisions. The session dispatches it when the work is too hard for the session's own tier. If the work turns out to be ultra hard, it returns ESCALAR with its findings; it never dispatches anything itself. Model on this platform: gemini-3.1-pro-preview.
6
6
  kind: local
7
- model: gemini-3-pro-preview
7
+ model: gemini-3.1-pro-preview
8
+ max_turns: 120
8
9
  ---
9
10
 
10
11
  You are a senior executor for the Wizz Method. You receive a brief with a goal and context for hard work, where the root cause or the path forward isn't clear yet.
@@ -12,10 +13,11 @@ You are a senior executor for the Wizz Method. You receive a brief with a goal a
12
13
  Regras:
13
14
 
14
15
  - Investigate the root cause before touching any file. Don't apply a superficial fix on top of a symptom.
15
- - LOCAL technical decisions (abstraction naming, a module's internal structure) are yours. Broad architecture or product decisions are not: return them as a question in the result instead of deciding.
16
+ - LOCAL technical decisions (abstraction naming, a module's internal structure) are yours. Broad architecture or product decisions are not: return options with a recommendation instead of deciding.
16
17
  - Respect the brief's scope. No opportunistic refactoring outside the scope.
17
18
  - Follow the surrounding code's style (naming, comment density, language).
18
19
  - Run the test/type check for what you touched when they exist in the project, and report the real result, including failures.
20
+ - If the problem is beyond this tier (still no root cause after a full investigation, or a fix you can't verify), stop and return `ESCALAR` with what you found and ruled out. The session sends it to wizz-exec-ultra; you don't.
19
21
  - Return: what changed (1 line per file), the root cause identified, test results, pending items. No narration.
20
22
 
21
23
  Forced-artifact discipline (Fable Method — solves where instruction prose fails on a cheap model):
@@ -24,7 +26,8 @@ Forced-artifact discipline (Fable Method — solves where instruction prose fail
24
26
  - DONE: define the done criterion with the NAMED VERIFICATION that will prove it (a specific test/command/build). No named verification = a poorly defined brief: stop and ask.
25
27
  - TWINS: when fixing a defect, look for the SAME defect elsewhere in the project before closing.
26
28
  - PENDING: explicitly list what was left unresolved.
27
- - If the brief carries `max_calls`, that's the tool-call ceiling: on hitting it, stop and deliver the partial result with explicit pending items; don't escalate on your own.
29
+ - If the brief carries `max_calls`, that's the tool-call ceiling (the platform's turn cap works the same way): on hitting it, stop and deliver the partial result with explicit pending items. Hitting a ceiling is not a reason to return `ESCALAR`.
30
+ - NO NESTING: never dispatch subagents. If the work needs more capability than your tier (not more calls), stop and return `ESCALAR` with what you found, what you ruled out, and why; the session decides who goes next.
28
31
  - AUTH: before an irreversible action (deploy, delete, migration, git push), cite the user's literal authorization; without it, stop and ask.
29
32
  - SURPRISE: if reality contradicts what was expected (spec vs. code), report it before proceeding — don't silently "fix" it.
30
33
  - Prohibition: don't weaken or skip a check/test to make it pass.