Repository navigation
test(code-tidying): install the comment tooling in eval runs so body rules are measurable - #12927
Conversation
The eval sandbox hides the operator's home, so its python3 falls back to a system interpreter with no tree-sitter, and it has no network to install one. change-shape.py then cannot certify a deletion and every remove-comments case could only propose deletions. seed.sh now installs the hash-pinned pygments and tree-sitter wheels into the run's user site, which the scaffold shares with the agent; probe-environment runs the same install and checks the import. Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]>
…seed Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]>
… pins comment-tooling-pins.test.sh compares every requirement in the eval seed's comment-tooling.requirements.txt with the same package in .github/requirements-ci.txt, version and hash set, and declares both files in its test-scope so a change to either selects it. Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]>
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: ad3d217175
ℹ️ 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: PR #12927, changes since
|
|
claude-review reviewed Code review (incremental): PR #12927,
|
…the sandbox may run pip --user writes to the invoking interpreter's own user site, so a host whose /usr/bin/python3 (the sandbox's fallback) differs in minor version from the scaffold's python3 got wheels the agent never imports. The seed now installs and checks the import for each distinct minor version of the two. Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_015te8CoSUhxDqvddaTSwBz8
The fallback /usr/bin/python3 can be a minor the pinned wheels do not cover (the Xcode 3.9 shim, Ubuntu's 3.12), and failing on it failed every seeded case on hosts where the agent never runs it. It is now best-effort with a warning that names the supported minors; probe-environment still catches a fallback that never got the tooling. Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_015te8CoSUhxDqvddaTSwBz8
The version probe on /usr/bin/python3 ran under set -e, so the macOS xcrun stub (executable, exits 1 without the Command Line Tools) still failed the seed. A fallback that does not run now warns and is skipped. Refs: #12703 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_015te8CoSUhxDqvddaTSwBz8
Closes #12703
Summary
The code-tidying eval suites could not detect a loss in the
remove-commentsand audit body rules that #12549 shipped. tree-sitter never reached the eval sandbox, so every arm only proposed deletions. This change installs the comment tooling inside each run, preregisters negative controls that detect a loss, and measures #12549's rules against them.Fix
evals/fixtures/comment-tooling-seed.shinstalls pygments and tree-sitter withpip install --user --require-hashes --only-binary=:all:into the run's ownHOME, fromcomment-tooling.requirements.txt, and fails the scaffold if the import still fails.seed.shcalls it, andprobe-environmentgets a scaffold that runs it.python3falls back to/usr/bin/python3because the user's uv-managed interpreter is unreadable, and the run has no network to install from.scripts/comment-tooling-pins.test.shfails when those pins drift from.github/requirements-ci.txt(version or hash set). Its# test-scope:header selects it when either file changes.Verification
Claude Code 2.1.317, Sonnet under test, Opus judge,
--runs 1. Every arm is VALID perrun-validity.py. Thresholds were preregistered: a case drop, or a mean fall of 0.15 or more.probe-environmentpassesimports-42in the sandbox. The remove-family before arm rose to about 0.97 mean, from feat(code-tidying): rename dissolve-comments to remove-comments with a comment-reviewer agent #12549's 0.79, because deletions now apply.audit-comment-residuebody fell 0.75, with 7 of 7 case drops.aggressivecases, scored 0.94 vs 0.66, a fall of 0.28 (95% interval -0.37 to -0.18), with 4 case drops. Posture graders failed (design-history-deleted,fork-cost-deleted,code-intact), not onlyproof-ran.## Workflow) moved the remove suite 0.04, so it cannot be the control.acr-dir-batch-skipsread 1.00 before and 0.96 after, within the rule.batch-totalfailed 1 of 4 after and 0 of 4 before.validate-cases.py plugins/code-tidying/evals: 0 FAIL. The pins test passes on the real files and fails on 4 altered copies (version bump, hash replaced, hash dropped, unpinned package).scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.td-seed.sh, which does not call the tooling seed yet (test(code-tidying): give the tidy-diff comment-triage eval case the comment tooling #12924).Related
🤖 Generated with Claude Code
https://claude.ai/code/session_015te8CoSUhxDqvddaTSwBz8