diff --git a/docs/plans/2026-10-22-cut-model-cost.md b/docs/plans/2026-10-22-cut-model-cost.md new file mode 100644 index 0000000..c69c1f2 --- /dev/null +++ b/docs/plans/2026-10-22-cut-model-cost.md @@ -0,0 +1,28 @@ +--- +canonical: relais:docs/plans/2026-10-22-cut-model-cost.md +phases: [A] +status: active +--- +# Cut model cost where the money is (pointer) + +The plan lives in relais, which owns ADR-0001 (the session router) and +ADR-0006 (typed research routing). This repository carries Part A: an Opus +advisor behind the routed session (`advisorModel`), with the reviewer agents +pinned to Opus first so the router never lowers them. + +## Verification + +- Probe: `claude -p --model sonnet --advisor opus` → advisor ran: + `~/.claude/projects/-private-tmp-claude-501-advisor-probe/5992a938-81bb-4e8a-b5ff-812c65d64eb4.jsonl:29` + holds `"type":"server_tool_use",…,"name":"advisor"`; Opus 26,185 input tokens, $0.116 per consult, + uncached. `--model haiku --advisor opus` → Opus $0.115. Both through the local proxy. +- `grep -L '^model:' dot_claude/agents/*.md` → empty (13 pinned). +- Deviation from Part A step 4: no full `chezmoi apply`. The live `~/.claude/settings.json` holds keys the + source lacks (apiKeyHelper, ANTHROPIC_BASE_URL, amont-agent hooks, relais paths; `chezmoi status`: MM), + so only the 13 agent targets are applied, and the same `advisorModel` line goes into the live file by + hand. holds-until: the live-only keys are reconciled into the source. + +## Implementation review + +approve-with-changes. Both findings fixed here: the targeted-apply deviation and the probe record above. +29.8k tokens, 38 s. diff --git a/dot_claude/agents/implementation-review.md b/dot_claude/agents/implementation-review.md index 0237cf1..5493f51 100644 --- a/dot_claude/agents/implementation-review.md +++ b/dot_claude/agents/implementation-review.md @@ -2,6 +2,7 @@ name: implementation-review description: The one independent reviewer of an implementation before its push (ADR-0022, work.implementation-review). Reads the diff against the landed plan and the repository's active rules, reports findings only, never edits or waives anything. Launched by worktree-task F4b with a `<<>>` block; the amont-agent implementation-review hook checks at `git push` that it ran for the tree being pushed. tools: Read, Grep, Glob, LSP +model: opus --- Catches: a change about to be pushed that departs from its approved plan, records a check it cannot have run, breaks an active rule, or adds a test that cannot fail. diff --git a/dot_claude/agents/interface-review.md b/dot_claude/agents/interface-review.md index 865e62b..b2cf98f 100644 --- a/dot_claude/agents/interface-review.md +++ b/dot_claude/agents/interface-review.md @@ -2,6 +2,7 @@ name: interface-review description: Independent interface reviewer of a change before its push, launched by worktree-task F4b step 2b. Follows ~/.claude/skills/interface-review/SKILL.md on the diff in its brief, reports findings only, never edits. tools: Read, Grep, Glob, LSP, mcp__duro-ds__duro_ds_lookup +model: opus --- Catches: an interface change that breaks accessibility, layout, copy or the design system's rules before the person sees it. diff --git a/dot_claude/agents/plan-review-architect.md b/dot_claude/agents/plan-review-architect.md index 03ed775..b95948b 100644 --- a/dot_claude/agents/plan-review-architect.md +++ b/dot_claude/agents/plan-review-architect.md @@ -2,6 +2,7 @@ name: plan-review-architect description: Architect on a plan's review panel (ADR-0022, work.plan-review-panel), for large or long-lived repositories. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, LSP +model: opus --- Catches: a plan that puts a concept in the wrong module or tool, couples parts that should stay apart, or contradicts an active decision. diff --git a/dot_claude/agents/plan-review-backend.md b/dot_claude/agents/plan-review-backend.md index c03f1da..d6f5b25 100644 --- a/dot_claude/agents/plan-review-backend.md +++ b/dot_claude/agents/plan-review-backend.md @@ -2,6 +2,7 @@ name: plan-review-backend description: Staff backend engineer on a plan's review panel (ADR-0022, work.plan-review-panel). Always part of the panel, and always re-runs on the final body and on every delta. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, LSP +model: opus --- Catches: a plan whose data flow, failure handling, concurrency or verification would not hold under real use. diff --git a/dot_claude/agents/plan-review-game-ux.md b/dot_claude/agents/plan-review-game-ux.md index 35f2373..a71d224 100644 --- a/dot_claude/agents/plan-review-game-ux.md +++ b/dot_claude/agents/plan-review-game-ux.md @@ -2,6 +2,7 @@ name: plan-review-game-ux description: Game developer and UX designer from the video game industry on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories with an interface. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob +model: opus --- Catches: a plan whose interaction lacks the feedback, onboarding, flow or discoverability a player would expect. diff --git a/dot_claude/agents/plan-review-language.md b/dot_claude/agents/plan-review-language.md index 6054141..0bebb1d 100644 --- a/dot_claude/agents/plan-review-language.md +++ b/dot_claude/agents/plan-review-language.md @@ -2,6 +2,7 @@ name: plan-review-language description: Language expert on a plan's review panel (ADR-0022, work.plan-review-panel). Launched by /plan-review with a review block naming the language (lang=rust, lang=typescript, …). Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, LSP +model: opus --- Catches: a plan that fights the language's idioms, type system or toolchain, or claims behaviour no test would catch. diff --git a/dot_claude/agents/plan-review-platform.md b/dot_claude/agents/plan-review-platform.md index 2d23970..0f4a466 100644 --- a/dot_claude/agents/plan-review-platform.md +++ b/dot_claude/agents/plan-review-platform.md @@ -2,6 +2,7 @@ name: plan-review-platform description: Staff platform engineer on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories with Kubernetes, Flux, Helm or Terraform. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob +model: opus --- Catches: a plan that would break deployment, GitOps reconciliation, cluster resources or rollback. diff --git a/dot_claude/agents/plan-review-po.md b/dot_claude/agents/plan-review-po.md index aa1c819..303ca10 100644 --- a/dot_claude/agents/plan-review-po.md +++ b/dot_claude/agents/plan-review-po.md @@ -2,6 +2,7 @@ name: plan-review-po description: Product owner on a plan's review panel (ADR-0022, work.plan-review-panel), for large or long-lived repositories. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob +model: opus --- Catches: a plan that solves the wrong problem, misses the person's goal, or has no outcome anyone can observe. diff --git a/dot_claude/agents/plan-review-react.md b/dot_claude/agents/plan-review-react.md index 65c8742..1911833 100644 --- a/dot_claude/agents/plan-review-react.md +++ b/dot_claude/agents/plan-review-react.md @@ -2,6 +2,7 @@ name: plan-review-react description: React staff engineer on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories with an interface. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, mcp__duro-ds__duro_ds_lookup +model: opus --- Catches: a plan whose React state, effects, rendering or component boundaries would misbehave. diff --git a/dot_claude/agents/plan-review-tui.md b/dot_claude/agents/plan-review-tui.md index 3a1dd2d..b5e0e72 100644 --- a/dot_claude/agents/plan-review-tui.md +++ b/dot_claude/agents/plan-review-tui.md @@ -2,6 +2,7 @@ name: plan-review-tui description: TUI expert on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories that ship a command line: what a person sees and types. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob +model: opus --- Catches: a plan whose command-line output, prompts or terminal behaviour would confuse the person reading it. diff --git a/dot_claude/agents/plan-review-ui-design.md b/dot_claude/agents/plan-review-ui-design.md index 7ff583c..5705b7c 100644 --- a/dot_claude/agents/plan-review-ui-design.md +++ b/dot_claude/agents/plan-review-ui-design.md @@ -2,6 +2,7 @@ name: plan-review-ui-design description: UI designer on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories with an interface. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, mcp__duro-ds__duro_ds_lookup +model: opus --- Catches: a plan whose hierarchy, spacing, states or consistency departs from the design system. diff --git a/dot_claude/agents/plan-review-unix.md b/dot_claude/agents/plan-review-unix.md index 74a5e36..6dbee86 100644 --- a/dot_claude/agents/plan-review-unix.md +++ b/dot_claude/agents/plan-review-unix.md @@ -2,6 +2,7 @@ name: plan-review-unix description: Unix expert on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories that ship a command line. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob +model: opus --- Catches: a plan whose command line breaks Unix conventions: exit codes, streams, signals, flags or pipes. diff --git a/dot_claude/agents/plan-review-ux-research.md b/dot_claude/agents/plan-review-ux-research.md index 2eb3557..dcec3cd 100644 --- a/dot_claude/agents/plan-review-ux-research.md +++ b/dot_claude/agents/plan-review-ux-research.md @@ -2,6 +2,7 @@ name: plan-review-ux-research description: UX researcher on a plan's review panel (ADR-0022, work.plan-review-panel), for repositories with an interface: backs each UX choice with cited research or flags it as unbacked. Reviews a plan before it is presented; never edits anything. tools: Read, Grep, Glob, WebSearch, WebFetch +model: opus --- Catches: a plan that makes a UX choice no cited research backs. diff --git a/dot_claude/settings.json b/dot_claude/settings.json index 8e9d13b..23e4902 100644 --- a/dot_claude/settings.json +++ b/dot_claude/settings.json @@ -1,4 +1,5 @@ { + "advisorModel": "opus", "env": { "RUST_BACKTRACE": "1" },