gate(gc): make the root-dominance corpus floor a two-sided ratchet - #7706
Merged
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe corpus script replaces the fixed compiled-source floor with source-count and compilation-skip ratchets. It reports corpus shrinkage, excessive skips, and stale skip budgets separately. Version metadata is updated to 0.5.1406. ChangesCorpus ratchet validation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
added 2 commits
August 9, 2026 16:37
…vered corpus MIN_COMPILED=90 against a 131-source corpus tolerated 41 sources failing to compile. A source that fails to compile emits no IR, and absent IR reads to the checker exactly like clean IR. Claude-Session: https://claude.ai/code/session_01Y1QZ5wUP9gRSwpiweT4Wix
proggeramlug
force-pushed
the
gate/corpus-skip-ratchet
branch
from
August 9, 2026 14:37
29b160f to
3bde0d5
Compare
This was referenced Aug 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
gc_root_dominance_corpus.shtolerated 41 sources failing to compile and still exited 0. The compile floor was the constantMIN_COMPILED=90, hand-synced to thePATTERNSlist by a comment reading "Keep this list in sync with MIN_COMPILED below when you add a prefix." The comment drifted:PATTERNSgrew to discover 131 sources while the floor stayed at 90. A run in which 41 sources failed to compile printed the failures to a log and exited 0.That is CLAUDE.md's hazard 4 — "the gate runs but its subject never did" — with a twist that makes it worse than a skipped test: a source that fails to compile emits no IR, and IR that was never emitted reads to the dominance checker exactly like IR with no violations in it. The absence is indistinguishable from a pass at every downstream floor in the script.
A floor expressed as an absolute count cannot track a corpus that grows. Both numbers are now ratchets against the corpus as discovered, and both are checked in both directions:
MIN_SOURCES(131) — how many filesPATTERNSmust still match. Falls only when sources are deleted or renamed. That is the "corpus shrank" finding, which the old single floor conflated with "sources failed to compile" — two different failures with two different fixes, now reported separately.MAX_SKIPPED(0) — how many discovered sources may fail to compile. Zero is the measured truth on both lowerings, not an aspiration: shadow and native each report131/131 sources compiled, 0 skippedas of v0.5.1402. Over budget is a regression; under budget also fails, naming the number to write down, so the budget can never drift above reality the wayMIN_COMPILEDdid.The derived compile floor (
MIN_SOURCES - MAX_SKIPPED) removes the hand-sync entirely — there is nothing left to keep in step withPATTERNS.All three arms are sabotage-verified rather than assumed: planting an uncompilable
test_gap_gc_*.tsgives1 of 132 sources failed to compile (budget: 0), exit 1;MAX_SKIPPED=3against a reality of 0 gives "the budget is stale and would absorb the next real failure silently", exit 1;MIN_SOURCES=999gives "PATTERNS matched only 131 sources", exit 1.Summary by CodeRabbit
Bug Fixes
Documentation