Repository navigation
fix(evals): make plugin-eval, methodology and design fire on the jobs their cases miss - #11808
Conversation
… their cases miss Run 3 of the evals suite left four should-trigger cases unfired, which makes the suite INVALID. Each description now names the missed job, with "load this before answering" where the model answered from memory in one turn; methodology leads with its main use. Targeted with-arm checks (--runs 3, Opus 5.5, Claude Code 2.1.316): headless-stay-attached, pe-invalid-no-number, me-rewrite-criterion and de-criteria-first each fired 3 of 3. Refs: #9155 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ription Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 857f30cba2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-security-review reviewed Security review (incremental, 857f30c → 852f810)I found no security issues. I read every hunk of both in-scope files in the incremental diff:
Instruction-surface lens: the change reorders and rewords a skill's routing text. It deletes, narrows or softens no standing guardrail, and no rule from a protected class is touched. The skill-body section still says "Knowledge, not a runner" and still routes scaffolding and running to No trust control, plugin manifest, workflow or trusted-path file is in this increment. The PR context file has no embedded directives aimed at the lane. The PR's own verification runs (described in the PR context) spend subscription usage only. That is not a hold. critical-findings: 0 |
|
claude-review reviewed Code review (incremental, 857f30c → 852f810)No findings. I read every hunk in both files in scope.
Observation (not counted as a finding): the PR body's "Fix" bullet for Verification: the per-case numbers on 852f810 ( No manifest changed, the PR closes no issues (it only refs #9155), and no settled-threads file was provided. |
…odology The native-references description phrase must come first and name both halves of the routing split. Put the gate clause back at the start, add "this skill before that suite or its criteria exist", and shorten the closing pointers so the description stays under the 1024-character cap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Non-inferiority result for the description rewrites (head 852f810): no loss. This addresses the non-inferiority thread. Both arms ran at the same time on 2026-11-01 (05:24-06:28Z): Claude Code 2.1.316, subject claude-opus-5-5, judge opus, Invocation probes (73 cases × 3 runs, train, val and held-out):
No case moved. The val false-trigger is Each removed or changed description line has a probe that tempts it, and none moved:
The four outcome cases the PR targets: the after arm is VALID. Its skill fired in 12 of 12 runs, and the traces show 12 of 12 launches with no denials.
The before arm of this suite is INVALID because the skill did not fire in 10 of its 12 runs, which is the gap this PR closes. Every other check passed, including no denials. Because it is INVALID, no before score is quoted. This suite shows that the skills now fire. It is not a validated with-before score delta. No case grants Bash, so no Bash was needed. Every Skill call in the traces was followed by a launch of the same skill. |
Refs: #9155
Summary
The
/evals:plugin-eval,/evals:methodologyand/evals:designdescriptions now name the jobs their eval cases showed the model answering without loading the skill. In run 3 on #9155 these cases missed the skill in 11 of 108 with-arm runs.Fix
plugin-eval: names planning headlessclaude -peval runs, and judging whether a delta, arm score or validity verdict can be shared.methodology: leads with writing or rewriting a success criterion; the claude-api presence note moves to the end and is kept.design: names writing test cases for an LLM feature, with criteria before any case.plugin-eval/SKILL.md.Verification
Claude Code 2.1.316, subscription login, Opus 5.5 subject,
opusjudge, out-of-repo copy ofplugins/evalsat 4753936,--allow-tools Write Edit --scaffold --keep-temp -j 2.Per-case check, with-arm only (
--ablation none --runs 3): the skill fired in 12 of 12 runs acrossheadless-stay-attached,pe-invalid-no-number,me-rewrite-criterionandde-criteria-first. Run 3 had 11 misses in these four cases.Full suite, 43 cases, both arms, 3 runs (258 runs):
run-validity.py --runs 3 --scaffoldedreturns INVALID for two reasons:interval-setting-scope3 of 3 runs, pluswrap-bare-skill1 run. No description affects these.de-skill-target-suiterun 2. Run 3 had 11 misses.scripts/check-affected.sh --testsis green on the merged head.push-branch.shthen merged main again (857f30c), and that merge brought a 37-lineplugin-eval/SKILL.mdbody change and arun-validity.pychange from main. The runs above measured 4753936, so they do not cover that later main content.852f810 puts the
methodologyclaude-api routing clause back at the front, with both halves of its split (review thread). On that head, with-arm only at 3 runs,me-rewrite-criterion,measurable-criterionandroute-hillclimb-existing-suiteeach scored 3 of 3, and the skill fired 6 of 6 times in the two cases that have a fired grader.Remaining on #9155
do-not-merge): the non-inferiority comparison thatplugins/playbooks/skills/skill-authoring/reference/skill-criteria.md"Rewriting an existing skill" asks for has not run. It needs:/evals:plugin-evaljudges VALID;interval-setting-scope3 of 3 runs, plus single runs inwrap-bare-skillanddefault-judge-same-model.de-skill-target-suiterun 2. A rerun should show whether that is noise.plugin-eval/SKILL.mdbody change from main (merged in 857f30c) was not covered by these runs.Related
🤖 Generated with Claude Code