Repository navigation
chore(ci): retire redundant *_row_count cross-checks (merge-skew liability) - #4959
Merged
Merged
Conversation
…ility) The claim-witness-corpus and affected-set node-frontier/testgen gates each cross-checked a projected row count against a hand-maintained *_row_count datum. That datum is a parallel ledger for a fact the typed shard List already carries: the gate projects rows directly from the list, so a dropped row simply is not enrolled and its witness is not run — the count datum cannot detect that and only DRIFTS under concurrent merges (a hand-count vs a hand-list is the merge-skew axis that reddened main on #4947: two PRs each list-consistent, the squash-merge re-resolve combined their list edits while the count stayed stale). Delete the cross-checks and the now-unused datums (CLAUDE.md ledger principle): - scripts/v4-claim-witness-corpus-gate.sh: drop count_data + expected_count fetch + the projected-vs-modeled comparison; keep row_count for the notice. - scripts/v4-affected-set-node-frontier-gate.sh: drop both expected_count fetches + both comparisons (node-frontier + testgen). - claim_witness_corpus_ci_runner.dag: delete claim_run_row_count (dead, 0 readers, and stale at "54" vs 55 real) + shard_a_row_count + shard_b_row_count. - affected_set_ci_runner.dag: delete ci_runner_node_frontier_claim_run_row_count. - affected_testgen_ci_runner.dag: delete affected_testgen_claim_run_row_count. Teeth retained: per-row pass + per-row perturb-RED + ExpectFail-drift + empty-roster fail-closed guards are all untouched. A real witness regression still trips RED. (Pass-by-omission on list-row deletion is restored properly by glob-discovery; this only removes the drift-prone parallel ledger.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jun 15, 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.
Retire redundant
*_row_countcross-checks (merge-skew liability)Urgent, operator-directive bar (via zesty/bold-crane): delete the parallel-ledger row-count
cross-checks that reddened
mainon #4947, ahead of the glob-discovery re-scope.Why
The claim-witness-corpus and affected-set node-frontier/testgen gates each cross-checked a
projected row count against a hand-maintained
*_row_countdatum. That datum is a parallelledger (CLAUDE.md ledger principle) for a fact the typed shard
Listalready carries: the gateprojects rows directly from the list, so a dropped row simply isn't enrolled and its witness isn't
run — the count datum can't detect that and only drifts under concurrent merges. That's exactly
what reddened
mainon #4947: two PRs each list-consistent, the squash-merge re-resolve combinedtheir list edits while the hand-count stayed stale (
claim_run_row_countwas even left at"54"vs the real 55).
What
scripts/v4-claim-witness-corpus-gate.sh— dropcount_data+expected_countfetch + theprojected-vs-modeled comparison; keep
row_countfor the notice.scripts/v4-affected-set-node-frontier-gate.sh— drop bothexpected_countfetches + bothcomparisons (node-frontier + testgen); header docs de-stated.
claim_witness_corpus_ci_runner.dag— deleteclaim_run_row_count(dead, 0 readers, stale"54")shard_a_row_count+shard_b_row_count.affected_set_ci_runner.dag— deleteci_runner_node_frontier_claim_run_row_count.affected_testgen_ci_runner.dag— deleteaffected_testgen_claim_run_row_count.Deletion-safety: grepped all
.rs/.sh/.py/.dag/.yml— each datum is read only by its gate.sh(corpus via the dynamicclaim_witness_corpus_shard_${shard}_row_count); the full-list counthad zero readers.
Teeth retained (the +/- proof)
Per-row pass + per-row perturb-RED + ExpectFail-drift + empty-roster fail-closed guards are all
untouched (diff removes only the count blocks) — a real witness regression still trips RED, and an
empty roster still fails closed. The only behavior removed is pass-by-omission detection on a
list-row deletion, which is the drift-prone bit; it is restored properly by glob-discovery in the
follow-up re-scope.
🤖 Generated with Claude Code