fix(docs): no doc claims an opus orchestrator any more; research spawns use the resolved model
D-07 had been closed on CLAUDE.md alone. The same false claim lived on elsewhere:
- README.md's "Switch the planning model" said four commands default to opus.
- The same README section offered a sed recipe for `model: opus` frontmatter lines, which
0 of 7 command files have.
- commands/trekresearch.md said "the orchestrator runs on Opus".
Since v5.9.0 no command pins model:, so the orchestrator follows the session model.
- README: the section now says how it actually works. You pick the orchestrator's model with
the session model (`claude --model sonnet` or `/model`). Sub-agent models are resolved at
the spawn sites: brief phase_signals, then profile phase_models, then the agents/*.md pins
as fallback. `--profile economy` still moves the sub-agents to Sonnet.
- trekresearch Launch rules: "Use model: "opus" for all sub-agents" contradicted the same
file's own three-layer resolution, which v5.9.0 wired into the spawn sites and the file
documents in Phase 1 and Hard rules -> Cost. The rule now injects
`phase_signal_result.model` with agent frontmatter as the fallback, and says the
orchestrator follows the session model. Nothing changes under the default premium
profile: it still resolves to opus. The engine=swarm note now names the resolved-model
injection as the anchor, instead of the removed literal.
- Two doc-consistency pins were written first and failed before this change:
- no opus-orchestrator claim in README/CLAUDE.md/trekresearch, and no `^model: opus$`
recipe;
- the Launch rules name `phase_signal_result.model` and carry no blanket opus rule.
- Not touched: the follow-up agent in the default-off STORM phase still says model: "opus".
That is part of an experiment whose fate is an operator decision.
End-state gate D-07: open -> closed. Defects 3 -> 2 of 7 (D-03, D-04 remain, by design);
registry integrity intact. Suite 1081 (1079/0/2), run on a clean export of the index.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
09feb415b3
commit
e1d4425053
3 changed files with 42 additions and 18 deletions
|
|
@ -1800,3 +1800,32 @@ test('S95: gemini_used survives as a vestigial stats field (export schema unbrok
|
|||
'gemini_used stays in the trekresearch export allowlist — the agent is dropped, the field is pinned false, and removing it would break existing consumers',
|
||||
);
|
||||
});
|
||||
|
||||
// End-state defect D-07: since v5.9.0 no command pins `model:`, so the orchestrator follows
|
||||
// the session model, and sub-agent models are resolved at the spawn sites (brief signal >
|
||||
// profile > agent frontmatter). No user-facing doc may claim otherwise. Fix the SOURCE.
|
||||
test('D-07: no doc claims an opus orchestrator or ships a recipe for model: lines no command has', () => {
|
||||
const readme = read('README.md');
|
||||
assert.ok(
|
||||
!/\^model: opus\$/.test(readme),
|
||||
'README.md must not ship a sed recipe for `model: opus` frontmatter lines — 0 of 7 command files have one',
|
||||
);
|
||||
assert.ok(
|
||||
!/default for `\/trekbrief`[\s\S]{0,80}?is `opus`/.test(readme),
|
||||
'README.md must not claim the command orchestrators default to opus — they follow the session model',
|
||||
);
|
||||
for (const f of ['README.md', 'CLAUDE.md', 'commands/trekresearch.md']) {
|
||||
assert.ok(!/orchestrator runs on Opus/i.test(read(f)), `${f}: the orchestrator follows the session model`);
|
||||
}
|
||||
});
|
||||
|
||||
test('D-07: trekresearch launch rules inject the resolved model instead of a blanket opus', () => {
|
||||
const t = read('commands/trekresearch.md');
|
||||
const rules = (t.split('\n### Launch rules\n')[1] || '').split('\n## ')[0];
|
||||
assert.ok(rules.length > 0, 'trekresearch.md must still carry the Launch rules sub-section');
|
||||
assert.ok(
|
||||
!/model: "opus" for all sub-agents/i.test(rules),
|
||||
'a blanket opus rule contradicts the file\'s own resolution (brief > profile > agent frontmatter, wired in v5.9.0)',
|
||||
);
|
||||
assert.match(rules, /phase_signal_result\.model/, 'the launch rules must name the resolved model the spawn sites inject');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue