feat(agents): pin explicit model on every agent and workflow call
Agents and workflows previously carried no model field, so every dispatch inherited the session model — including fable, which is banned for all plugin agents and workflows by owner decree. Every dispatch now pins opus or sonnet explicitly. - opus (low-volume judgment gates whose misses silently poison downstream work): architect, bencher, debugger, fieldtester, grounding-check, plan-recon, quality-reviewer, spec-skeptic, tdd-author - sonnet (mechanical scope, in-loop or fanned out): docwriter, glossary-extractor, implementer, spec-reviewer, synthetic-user, tester - workflows: all 13 agent() call sites pin a model — sonnet everywhere except the quality-reviewer gate in implement-loop, the loop's last correctness check (spec-reviewer only gates task-text correspondence; real-bug finding is the documented opus strength) - docs/agent-template.md: model is now a mandatory frontmatter field, with the assignment rule and the fable ban recorded
This commit is contained in:
@@ -12,6 +12,7 @@ specific identifiers.
|
||||
name: <agent-slug>
|
||||
description: <third-person, "Use when…" or role description>
|
||||
tools: <comma-separated tool list>
|
||||
model: <opus | sonnet>
|
||||
---
|
||||
|
||||
> Violating the letter of these rules is violating the spirit.
|
||||
@@ -105,6 +106,37 @@ dispatch still carry no `Agent` tool — the no-nested-dispatch rule is
|
||||
unchanged; the workflow simply does the orchestration the retired
|
||||
`implement-orchestrator` agent used to fake with inline role-switches.
|
||||
|
||||
### `model`
|
||||
|
||||
Mandatory. Every agent pins an explicit model — `opus` or `sonnet`,
|
||||
nothing else. An omitted field means the agent inherits the *session*
|
||||
model, which routes the dispatch to whatever the user happens to be
|
||||
chatting on (possibly `fable` — banned for all plugin agents and
|
||||
workflows, by owner decree). Pinning removes that coupling.
|
||||
|
||||
Assignment rule, in priority order:
|
||||
|
||||
1. **Consequence of a miss** — agents whose errors silently poison
|
||||
downstream work (adversarial gates, root-cause diagnosis,
|
||||
architecture judgment) run `opus`. Opus is the documented
|
||||
strength for code review, debugging, and deep reasoning.
|
||||
2. **Mechanical scope** — tightly-scoped execution of a pre-made
|
||||
plan, recon, extraction, compliance-diffing run `sonnet`
|
||||
(near-opus coding quality at lower latency and cost).
|
||||
3. **Volume × wall-clock** — agents dispatched per-task inside
|
||||
loops or fanned out in parallel swarms multiply their model's
|
||||
latency; they run `sonnet` unless rule 1 overrides (currently
|
||||
only `quality-reviewer`, the loop's last correctness gate).
|
||||
|
||||
Current distribution: `opus` — architect, bencher, debugger,
|
||||
fieldtester, grounding-check, plan-recon, quality-reviewer,
|
||||
spec-skeptic, tdd-author. `sonnet` — docwriter, glossary-extractor,
|
||||
implementer, spec-reviewer, synthetic-user, tester.
|
||||
|
||||
The same rule binds Workflow scripts: every `agent()` call passes an
|
||||
explicit `model:` option (see the model-policy header comments in
|
||||
`implement/workflows/*.js`).
|
||||
|
||||
## Sections in detail
|
||||
|
||||
### Spirit-letter lead-in
|
||||
|
||||
Reference in New Issue
Block a user