feat(route): give the advisor a writer, on a need and per row
route.sh now emits `--advisor opus` into the startup command it prints.
The flag existed and worked, but nothing generated it, so it went unused:
the only mechanism that ever set an advisor here was `/advisor`, which
writes the global advisorModel setting -- every session, every repo -- and
was abandoned for burning quota. Nothing replaced it.
Two independent triggers, almost disjoint by construction:
rows 1-2 always. Sonnet main model, so opus is a capability LIFT rather
than a peer. Load-bearing: every fallback is one row cheaper and
the cheap rows are Sonnet, so this makes the quota fallback safe.
rows 3-4 only at reversibility=costly|one-way. Opus main model, so the
advisor buys peer review where a mistake is not cheap to undo.
rows 5-6 never. The CLI rejects every advisor for a Fable main model.
costly forces row 3 and one-way forces row 4, so a Sonnet row always has
reversibility=cheap and neither rule reaches the other's rows.
verification=none is deliberately not a third trigger: beyond the stakes
rule it adds only cheap-to-reverse mistakes, docs sessions among them.
Applied per ROW, so fallback-command carries its own correct answer.
route-selftest.sh 56 -> 73. Section 14 gates the three CLI facts the rule
rests on against the installed claude without spending a token: advisor
validation runs before the empty-prompt check, so `-p ""` reaches the
validator and stops. --help cannot gate this -- it short-circuits before
option validation, so an unknown flag would pass the gate untested.
Three pre-existing checks updated rather than worked around: two asserted
whole command strings that now carry the advisor, and section 11's effort
extraction swallowed the tail of the command line.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X8N8hQEJSWWtieWUx37txT
This commit is contained in:
parent
6ffe089b68
commit
9cb405c2cd
10 changed files with 272 additions and 13 deletions
|
|
@ -14,7 +14,7 @@ description: >-
|
|||
user names no repo and no tool — choosing *between* repos is this skill. Not for
|
||||
"where were we" inside the current repo: that is this repo's own STATE.md,
|
||||
already injected at session start.
|
||||
version: "0.12.1"
|
||||
version: "0.13.0"
|
||||
---
|
||||
|
||||
# board — which repo deserves the next session
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ description: >-
|
|||
covers retiring a broadcast that has become wrong or obsolete: "retract that
|
||||
broadcast", "that announcement is outdated, pull it", "trekk tilbake kringkastingen",
|
||||
"den broadcasten er utdatert".
|
||||
version: "0.12.1"
|
||||
version: "0.13.0"
|
||||
---
|
||||
|
||||
# coord-send — natural-language front door for inter-repo messages
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ description: >-
|
|||
the operator names no model and no tool — choosing the model for the next
|
||||
session IS this skill. Not for choosing which REPO gets the next session:
|
||||
that is the `board` skill.
|
||||
version: "0.12.1"
|
||||
version: "0.13.0"
|
||||
---
|
||||
|
||||
# route — what the next session should run with
|
||||
|
|
@ -181,9 +181,24 @@ Give the operator the two closing-line items and nothing more:
|
|||
the working directory is already right. If the next step belongs in a
|
||||
different repo, say so in plain words — that is a different tab, not a `cd`.
|
||||
|
||||
**Paste `command` verbatim, `--advisor opus` included.** The calculator decides
|
||||
the advisor per row, and it is not decoration: on a Sonnet row it is what lifts
|
||||
the session to Opus judgement at Sonnet cost, which is what makes the cheaper
|
||||
`fallback-command` safe to take under quota pressure. Dropping it because it
|
||||
looks like noise silently removes that. Equally, never *add* it to a command
|
||||
that came back without one — an unconditional advisor is the global
|
||||
`advisorModel` setting, which costs quota in every session in every repo and is
|
||||
the failure mode this rule replaces. `route.sh --help` carries the full rule.
|
||||
|
||||
If `command` and `fallback-command` are the same as the current session's model,
|
||||
say `/clear` is enough instead — but only if no newly installed plugin or skill
|
||||
needs a fresh process to be picked up.
|
||||
|
||||
**`--advisor` is part of that comparison, not an afterthought.** It is a launch
|
||||
flag, so `/clear` reuses the process and keeps whatever advisor the session
|
||||
started with. If `command` carries `--advisor opus` and this session was not
|
||||
launched with it, `/clear` is *not* enough — the operator needs `/exit` and the
|
||||
full command, or the advisor silently never appears.
|
||||
|
||||
Do not paste the whole output block. One row, the rule that produced it, the
|
||||
command.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue