fix(route): close the record's drift surface and the confounded smoke test
Six follow-ups on 0d11838, three of which mattered.
The model-alias gate passed for the wrong reason: after the quoted-alias grep
it fell back to an unanchored grep for the bare word, which matches "opus"
anywhere in `claude --help` and would have reported success even if --model
stopped accepting the alias. A gate that cannot fail is worse than no gate.
Only the quoted form is matched now, and the failing aliases are named.
--last-model and --last-effort were unvalidated free text while the other two
record fields were gated. The next session READS the record back to decide
--opus-xhigh-failed, so a drifted spelling there rebuilds the exact
reader-versus-writer drift this script exists to remove, one field over. Both
are closed sets now: the row table's three model names and the verified effort
levels. That also makes the record's sanitizing dead code, so it is gone.
The skill told future sessions to write the record "every session" while
STATE documented that the effort level is not observable from inside a running
session. A session following both would have fabricated the value, and a
fabricated effort reads back later as a measurement. The skill now says: ask
the operator, and omit the record rather than guess -- explicitly including
that reading it off the previous board line measures what was PRESCRIBED, not
what was RUN.
Also: README said "seven bash scripts" (nine files, six user-facing) and its
skills badge still said 2; selftest counts updated to 50.
Verified, not assumed: the installed plugin cache at 0.9.0 contains only
board and coord-send, so route is not discoverable until a release bumps it --
the smoke test STATE had queued before release would have failed with 127 for
a reason unrelated to the skill. STATE reordered to release-then-test. The
manifest is auto_discover, so no skills array needs an entry.
check-versions.mjs is green (11 OK, 0 ERROR) with the new skill at 0.9.0.
Selftests: coord 136, board 30, route 50, node 7.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017peNgsxVt1BR4BTuMwiPoX
This commit is contained in:
parent
0d1183800e
commit
a435a031db
5 changed files with 70 additions and 16 deletions
|
|
@ -97,15 +97,28 @@ scoring `partial` to keep things moving.
|
|||
## The last-session record
|
||||
|
||||
Rows 5 and 6 (Fable) are history-dependent, so without a record they are dead
|
||||
policy. Write it every session, from what actually happened in the session that
|
||||
is ending:
|
||||
policy. Write it whenever all four fields are actually known, from what happened
|
||||
in the session that is ending — never from what STATE.md prescribed:
|
||||
|
||||
- `--last-model` / `--last-effort` — what this session actually ran with.
|
||||
- `--last-model` / `--last-effort` — what this session actually ran with. Both
|
||||
are closed sets (`Sonnet 5|Opus 5|Fable 5`, and the verified effort levels),
|
||||
because the next session compares these values rather than just displaying
|
||||
them.
|
||||
- `--last-completed yes|no` — did this session finish the next step the previous
|
||||
STATE.md set out? Answer about that step, not about the session in general.
|
||||
- `--last-corrections <n>` — how many rounds of rework it took. This is the
|
||||
cheap proxy for whether the routing was right.
|
||||
|
||||
**Effort is not observable from inside a running session.** The model is
|
||||
readable from the environment; the effort level the operator launched with is
|
||||
not. So do not infer it, and in particular do not read it back from the previous
|
||||
board line — that measures what was *prescribed*, not what was *run*, and the
|
||||
two come apart exactly when the record would be most interesting. Ask the
|
||||
operator for the effort level when closing the session. If they are not there to
|
||||
ask, **omit the record entirely** — it is all four fields or none. A guessed
|
||||
effort is worse than a missing one, because it reads back later as a
|
||||
measurement.
|
||||
|
||||
Read the previous `route-last` line out of STATE.md before overwriting it.
|
||||
Pass `--opus-xhigh-failed` **only** when it says an `Opus 5`/`xhigh` session ran
|
||||
at this same next step and did not complete it. A session that ran out of
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue