Repository navigation
perf(evals): move the plugin-eval iteration loop to a reference file - #12875
Conversation
The plugin-eval hub loaded the judge-calibration procedure, the iteration loop and the CLI boundary notes on every invocation, though only a calibration or a tuning loop needs them. They move verbatim to reference/calibrating-a-judge.md, reference/iterating.md and reference/boundary.md; the hub keeps the "Calibrating a judge" heading with a pointer and gains a read-when index row per reference file. Citations of the moved text in case-authoring.md and the addyosmani upstream record are repointed. Body bytes (SKILL.md with frontmatter stripped): 41,783 to 38,238. Refs: #12661 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The calibration procedure is Run step 2, so the hub's promise that it holds every rule the actions use no longer held once that section moved; the meaning diff called it a loss. It returns verbatim, with case-authoring.md's pointer to it. Iterating and Boundary stay in reference files, which no action runs, and the intro says when to read each, answered from its own file, and defines <skill-dir> for their script path. Body bytes (SKILL.md with frontmatter stripped): 41,783 on main, 39,662 here. Refs: #12661 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The native-overlap registry (docs/native-surfaces/records.json, row for plugin eval) marks this skill's boundary section as baked into SKILL.md, and its self-check fails when the hub has no `## Boundary` section. The section returns verbatim; only Iterating stays in reference/iterating.md. Body bytes (SKILL.md with frontmatter stripped): 41,783 on main, 40,550 here. Refs: #12661 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. |
|
claude-security-review reviewed Security review: no security issues foundI read every hunk of all 4 changed files in
Instruction-surface lens. The diff removes text from a skill body, so I read it under this lens before applying any skip. I compared the removed steps 1–5 with the new file line by line. They are identical except for one relative link, which changes from Other checks.
Prior findings: none. Round 1 of a cap of 3, not past the cap. The diff itself spends nothing. The PR description reports paired critical-findings: 0 |
|
claude-review reviewed Code review: PR #12875, moving plugin-eval's "Iterating" section to
|
Closes #12661
Summary
The
/evals:plugin-evalhub loaded its iteration loop on every invocation, though no action runs it. This PR moves that section word for word intoreference/iterating.md, and the hub says to answer tuning and confirm questions from it. It is the third progressive-disclosure cut under #12243 and follows the #12387 and #12704 recipe. The cut is small because two existing contracts pin the rest of the body to the hub (see Fix).Fix
reference/iterating.md. Only its relative link changes, to../../methodology/....docs/upstream/addyosmani-agent-skills.mdcited two Iterating steps by line. Those citations now point atreference/iterating.md:5and:17.plugin evalcommand" is pinned by the native-overlap registry. Itsplugin evalrow setsbaked.boundary_section, andvalidate-pluginsfails when the hub has no## Boundarysection.Verification
awkfrontmatter strip piped towc -cprinted 41783 on main's copy and 40550 on this branch./docs-hygiene:compress compareran with two independentcompare-labeleragents per version (rewrite-a-plugin.mdstep 6). On the final head both returned VERDICT: PASS with no SEMANTIC LOSS and no AMBIGUITY rows. Earlier versions drew one SEMANTIC LOSS (the Calibrating move) and three AMBIGUITY rows, each fixed before the counted round.scripts/validate-plugins.sh --only evalspassed. markdownlint passed on every changed file.Paired eval on the 7 cases whose
case.yamlnames this skill:pe-ci-pin-full-ids,pe-estimate-under-ceiling,pe-invalid-no-number,pe-rules-target,pe-windows-sandbox-refusal,pe-worktree-guard-stopandva-unknown-timeout-key.claude plugin eval <copy> --runs 2 --ablation none --scaffold -j 2 --keep-temp --model claude-opus-5-5, Claude Code 2.1.317.skills/plugin-evalswapped in. Every case fired the skill on main, so no prompt needed the skill named.Negative control, preregistered on perf(evals): cut the plugin-eval skill body through progressive disclosure #12661 before the counted control round: main's copy with the hub body cut to its H1 and
## Next.noise-reportrun-validity.py --runs 2 --scaffoldedpe-rules-target,pe-windows-sandbox-refusal,pe-worktree-guard-stop)--own-copy-search-warns)|
iterate-then-confirm(r7) | before vs after | 1.00 vs 1.00 (3 of 3 runs each) | n too small to call (1 case) | judges unanimous, 9 of 9 votes per grader | VALID both ||
iterate-then-confirmcontrol (r8) | before vs main minus## Iterating| 1.00 vs 1.00 | n too small to call | no fall | VALID both |iterate-then-confirmhas nocase.yaml, so the first selection missed it. claude-review flagged it as the one case that exercises the moved text. r7 and r8 ran with--runs 3 --judge-model opus, and the r8 control was posted on the review thread before either round ran.reference/iterating.mdin all 3 runs, so the hub's pointer is followed.SKILL.md:215) already says "--runs 1for iteration with a confirm at 3". This case therefore cannot isolate the Iterating section.rewrite-a-plugin.md:61-63defines the body-cut control as deleting the skill's procedure steps, which is r3, and r3 detects a loss.Related
🤖 Generated with Claude Code