@@ -230,3 +230,92 @@ From `CONTRIBUTING.md` and observed history
230230- ` rustfmt.toml ` references nightly‑only options; CI runs `cargo fmt
231231 --check` on stable, which warns about (but does not fail on) those
232232 options.
233+
234+ ## Model selection & cost discipline
235+
236+ Premium models (Opus, GPT-5 family, "high"/"xhigh" reasoning variants)
237+ cost an order of magnitude more than standard models (Sonnet, Haiku,
238+ mini). Most steps in a typical task do not need premium reasoning,
239+ and over-using premium models wastes credits without improving
240+ outcomes. The rules below apply to * all* model selection: your own
241+ session, sub-agents launched via the ` task ` tool, and parallel work
242+ launched via ` /fleet ` .
243+
244+ ### Default posture
245+
246+ - ** Default to the cheapest model that can do the job.** Reach for a
247+ premium model only when one of the escalation triggers below is hit.
248+ - ** Plan with premium, execute with cheap.** Spend at most one or two
249+ premium turns on design / planning, then downshift to a cheaper
250+ model for mechanical execution of the plan.
251+ - ** Never bump the model "just in case."** If you cannot articulate
252+ * why* a cheaper model would fail, use the cheaper model.
253+
254+ ### Escalation triggers (use a premium model)
255+
256+ Reach for a premium model when * any* of these are true:
257+
258+ - Cross-module refactor, architectural design, or API design from
259+ scratch.
260+ - Subtle correctness reasoning: concurrency, lifetimes, ` unsafe ` ,
261+ FFI ABI, cryptography, safety-critical control paths.
262+ - Debugging a failure that survived one prior cheap-model attempt.
263+ - Reviewing code on a safety-, security-, or money-critical path.
264+ - The diff cannot be predicted in advance — i.e. there is genuine
265+ creative or design work to do, not just typing.
266+
267+ ### De-escalation triggers (use a cheap model)
268+
269+ Use the cheapest available model when * any* of these are true:
270+
271+ - Searching, reading, summarising files or docs.
272+ - Single-file mechanical edits: rename, format, lint fix, dependency
273+ bump, boilerplate, scaffolding from a known template.
274+ - Generating tests for code that already works.
275+ - Running builds, tests, linters, or other commands where the model
276+ only needs to report success/failure.
277+ - Routine commits, PR descriptions, changelog entries.
278+ - The diff is essentially predictable before generation.
279+
280+ ### Sub-agent routing (the ` task ` tool)
281+
282+ When delegating with the ` task ` tool, set ` model: ` explicitly. Do not
283+ let sub-agents inherit a premium default for cheap work.
284+
285+ | Sub-agent type | Default model | Override to |
286+ | -------------------| ---------------------------| -------------------------------------------------|
287+ | ` explore ` | cheap | keep cheap (` claude-haiku-4.5 ` or ` gpt-5-mini ` ) |
288+ | ` task ` (run cmd) | cheap | keep cheap |
289+ | ` research ` | cheap for breadth | premium only for the final synthesis |
290+ | ` general-purpose ` | match task | cheap for mechanical work; premium for design |
291+ | ` rubber-duck ` | premium | keep premium — this is where reasoning pays off |
292+ | ` code-review ` | premium on critical paths | cheap on cosmetic / mechanical diffs |
293+
294+ ### ` /fleet ` (parallel sub-agents) rules
295+
296+ - Fleet mode multiplies cost by the fleet width. Apply the rules
297+ above * per worker* , not in aggregate.
298+ - Split a fleet job along complexity lines: route the cheap,
299+ parallelisable workers (file edits, test runs, doc updates) to a
300+ cheap model; reserve premium models for the small number of
301+ workers that need real reasoning.
302+ - If every worker in a fleet would need a premium model, the work is
303+ probably not a good fit for fleet mode — reconsider the
304+ decomposition before paying N× premium.
305+
306+ ### Session hygiene
307+
308+ - Keep sessions short and focused. Long premium sessions are the
309+ single largest source of waste because every turn re-processes the
310+ full history.
311+ - Use ` /compact ` when the conversation grows long, and ` /new ` for
312+ unrelated work.
313+ - Prefer ` /ask ` for one-off side questions so they don't extend the
314+ main session.
315+
316+ ### When in doubt
317+
318+ Ask: * "If a cheaper model produced the wrong answer here, would I
319+ catch it in seconds (compiler, tests, my own review) or in
320+ weeks (production incident)?"* If the former, use the cheap model
321+ and let the feedback loop do its job.
0 commit comments