Problem
bin/fm-spawn.sh launches every crewmate as plain claude --dangerously-skip-permissions with no --model flag, so all crewmates inherit the CLI default (Opus). Trivial, mechanical tasks (em-dash sweeps, file gathering, simple find-and-replace) run on the most expensive model with no way to downshift.
Proposal
Add per-task model selection to fm-spawn:
- Accept an optional
--model <name> (e.g. haiku|sonnet|opus, or any value the harness accepts).
- For the claude harness, thread it into the launch as
--model <name>; keep other harnesses working (default/ignore if no per-harness flag yet).
- Record
model= in state/<id>.meta; omitting --model preserves today's exact behavior (inherit CLI default).
- Document a tier policy in AGENTS.md: Haiku = trivial mechanical work; Sonnet = straightforward edits/scouts/integration; Opus = complex/judgment-heavy/integrator.
Why
Lets firstmate route work to the cheapest capable model per dispatch, cutting cost on the long tail of simple tasks while reserving Opus for hard work.
Problem
bin/fm-spawn.shlaunches every crewmate as plainclaude --dangerously-skip-permissionswith no--modelflag, so all crewmates inherit the CLI default (Opus). Trivial, mechanical tasks (em-dash sweeps, file gathering, simple find-and-replace) run on the most expensive model with no way to downshift.Proposal
Add per-task model selection to
fm-spawn:--model <name>(e.g. haiku|sonnet|opus, or any value the harness accepts).--model <name>; keep other harnesses working (default/ignore if no per-harness flag yet).model=instate/<id>.meta; omitting--modelpreserves today's exact behavior (inherit CLI default).Why
Lets firstmate route work to the cheapest capable model per dispatch, cutting cost on the long tail of simple tasks while reserving Opus for hard work.