merge: main (wave 4 order A) into order B before B goes into main
Conflicts on the union lines only: CHANGELOG Unreleased (both orders' entries kept), CLAUDE.md (/trekexecute row from A, /trekreview row from B), tests/fixtures/jsonl-schemas.md (trekplan line_ref from B, trekexecute line_ref from A). Suite on the merged tree 2682 (2680/0/2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
45eaedc6b4
24 changed files with 274 additions and 45 deletions
|
|
@ -225,14 +225,18 @@ changes introduced by commits that are not ancestors of the previously
|
|||
reverted merge." Revert the revert commit instead, and release it as a new
|
||||
version.
|
||||
|
||||
## Not built yet: the eval gate (P10)
|
||||
## Exempted: the eval gate (P10)
|
||||
|
||||
The local gate before a release that reads the date and score of the last run
|
||||
of the fixed test set and compares it with the last change in the
|
||||
configuration paths (commands, agents, skills, hooks, and a changed model alias
|
||||
counts as a change). It waits for the test set to run again; a gate that can
|
||||
never fire is not built. When it comes, it is one more check in
|
||||
`scripts/release-check.mjs`, before the door check, and one more step in § 1.
|
||||
counts as a change). It is exempted from the release, with a reason: it waits
|
||||
for the fixed test set to run again, and a gate that can never fire is not
|
||||
built. P10's model-free part is in place: every case in `evals/` names the
|
||||
event it came from (`from=`), and the routing test (`lib/skills/routing.mjs`,
|
||||
run by `npm test`) fails a case without it. When the gate comes, it is one more
|
||||
check in `scripts/release-check.mjs`, before the door check, and one more step
|
||||
in § 1.
|
||||
|
||||
## Credits
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,10 @@ the 7 commands and the 21 spawnable agents, with no model:
|
|||
- Each skill has at least 3 prompts where it should fire, 2 where it should not, and 1 effect
|
||||
case. A firing prompt must rank the skill in the top 3; every one currently ranks it first, and
|
||||
that floor is held. A prompt where the skill should stay quiet names the command, agent or skill
|
||||
that owns it, and that owner must rank higher.
|
||||
that owns it, and that owner must rank higher. The owner may also be one of Claude Code's own
|
||||
skills on a short fixed list in `routing.mjs` (`BUILTIN_OWNERS`, only `run` for now). Such an
|
||||
owner is outside the corpus, so only "not taken" is checked: the skill must not rank first, and
|
||||
the report says so for each such case.
|
||||
- The thresholds are pinned in `tests/lib/skill-routing.test.mjs` and never lowered. A failing case
|
||||
is fixed in a description, never in a number. You do not change another component's
|
||||
description to make room for yours.
|
||||
|
|
@ -72,6 +75,10 @@ tags: [skill-effect, skill=test-first, from=baseline-tfd-crash-red]
|
|||
```
|
||||
|
||||
`from=` names the event the case came from: a measured failure, a review finding, an analysis.
|
||||
It is required on every case in `evals/`, not only the skill cases: a case of the fixed test set
|
||||
(`tags: [proevesett, from=proevesett-eval-suite]`) has no skill tag, so it is not routed, but the
|
||||
routing test still fails it without `from=`. Its report gives both counts, cases checked for
|
||||
`from=` and cases routed.
|
||||
|
||||
- A **skill-trigger** case has one grader: `type: tool_used`, `tool: Skill`, with an `input_match`
|
||||
that accepts `voyage:<name>` and the bare name.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue