Skip to content

feat(benchmark): mutation-validity lint — flag inert (no-defect) mutations#49

Merged
jobordu merged 1 commit into
mainfrom
feat/mutation-validity-lint
Jul 5, 2026
Merged

feat(benchmark): mutation-validity lint — flag inert (no-defect) mutations#49
jobordu merged 1 commit into
mainfrom
feat/mutation-validity-lint

Conversation

@jobordu

@jobordu jobordu commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Deep-research biggest-lever item. ~100 challenges have a file-modify mutation that only bare-appends // modified by benchmark — pure file churn creating no detectable defect. 95 are correctly tagged infeasible/fictional (excluded from the capability metric), but 5 are tagged feasible — miscategorised: they claim to be detectable yet can never pass, silently dragging the capability score.

bin/mutation-validity.cjs classifies inert mutations and surfaces the miscategorised class (exit 1 if any feasible inert remain), so they get a real mutation or an honest re-tag — and future inert padding is caught.

Mutation validity — 100 inert (no-defect) mutations:
  infeasible  63  (excluded — ok)
  feasible    5   ← MISCATEGORISED (BENCH-026/029/040/044/079)
  fictional   32  (excluded — ok)

npm run mutation-validity; 3 tests. Converting the 5 (and reviewing the 95) to real anchored mutations is the tracked follow-on this lint makes visible and gate-able.

🤖 Generated with Claude Code

…tions

Deep-research biggest-lever item: ~100 challenges have a file-modify mutation that only
bare-appends `// modified by benchmark` — pure file churn that creates no detectable
defect. 95 are (correctly) tagged infeasible/fictional and excluded from the capability
metric, but 5 are tagged FEASIBLE — miscategorised: they claim to be detectable yet can
never pass (the seeded "defect" is a no-op), silently dragging the capability score.

bin/mutation-validity.cjs classifies inert mutations and surfaces the miscategorised
class (exit 1 if any FEASIBLE inert remain), so they get a real mutation or an honest
re-tag — and future inert padding of the corpus is caught. `npm run mutation-validity`.
3 tests.

Current: 100 inert (63 infeasible, 32 fictional — ok; 5 feasible — MISCATEGORISED:
BENCH-026/029/040/044/079). Converting those 5 (and reviewing the 95) to real anchored
mutations is the tracked follow-on this lint now makes visible and gate-able.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jobordu, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 50 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2d94f30f-864e-4d95-a928-bab85f37cad8

📥 Commits

Reviewing files that changed from the base of the PR and between 6a37821 and 9173780.

📒 Files selected for processing (3)
  • bin/mutation-validity.cjs
  • package.json
  • test/mutation-validity.test.cjs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/mutation-validity-lint

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@jobordu jobordu merged commit b43b4aa into main Jul 5, 2026
8 checks passed
@jobordu jobordu deleted the feat/mutation-validity-lint branch July 5, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants