Repository navigation
gate-dispatch: the dispatch model is the project's resolved one, not the supervisor's pick (run 20 → run 21: $2.79 → $0.66) - #33
Merged
Conversation
…the supervisor's pick Live e2e run 20 (12/12, 10m47s, 1 block, 0 re-plans) cost $2.79 instead of $0.99: the supervisor dispatched the planning roles on opus and the workers on sonnet although defaults.md said haiku for both and its own `aloop models resolve` call had printed `haiku`. The gate now refuses a dispatch of any aloop role whose `model` is not `aloop models resolve <role>` (matched by model family) or that passes no model. Test-first: scripts/test/dispatch.test.py (12 checks); layout.test.py's dispatch payloads name a model. ROADMAP §0 records run 20; CHANGELOG, bin/README, SKILL.md and TRACKING updated. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
….66, 8m17s, 12/12) Run 21 is the first run under the dispatch model gate: every dispatch went on haiku and the cost fell from $2.79 (run 20) to $0.66 with 3 blocks, 1 wake and 0 plugin-source reads. ROADMAP M0.8 carries runs 20 and 21; the evidence ledger gets both rows (run-summary's output). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Before: the model per role was advice in SKILL.md ("pass
aloop models resolveas the Agent call'smodel"). Live e2e run 20, the first run with the planner stuck release and the dependent-task RED rule, was the cleanest yet (12/12, 10m47s, 1 block, 0 re-plans, 0 stuck, planner verdicts logged) and the most expensive: $2.79 against $0.99 for run 19. The supervisor dispatched the planning roles on opus and the workers on sonnet although defaults.md said haiku for both and its ownaloop models resolvecall had printedhaiku.After:
gate-dispatchrefuses a dispatch of any aloop role whosemodelis not the role's resolved one (aloop models resolve <role>, matched by model family sohaikuandclaude-haiku-5-5agree), or that passes no model (which would fall back to the agent file's default, opus for the planning roles). An empty resolution (Codex) checks nothing. The block names the model to pass and where the setting lives. Live run 21 with the gate: 12/12, 8m17s, $0.66, 1 wake, 0 plugin-source reads, 3 blocks (two planner self-checks and one structural-review finding, each fixed on the first retry), every dispatch on haiku (haiku $0.10, supervisor sonnet $0.56).How:
gate-dispatchreadsmodelfrom the Agent payload, widens its role list to the planning roles for this check only, and compares againstmodels resolve <role>before the existing contract checks. Master (#32, #34, #35, #37) is merged in; the ROADMAP and CHANGELOG conflicts kept both threads' entries. ROADMAP M0.8 records runs 20 and 21; the evidence ledger (docs/evidence/README.md) gets both rows fromrun-summary.Evidence:
dispatch.test.py12/12 (5 new cases written first, red before the change);layout.test.py7/7 (its dispatch payloads now name a model);evidence.test.py4/4;planner-stuck5/5;make conformance60/60;make test-hosts pycheck json shellcheck version-checkOK;check-tracking44 requirements. Run 21 log and run dir:make e2e-live YES=1 INTENT=semveron this branch at 1ad94e2.🤖 Generated with Claude Code
https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV