fix(gate): drop the spelled step count — the one shared cell concurrent guard PRs collide on - #1887
Open
macanderson wants to merge 1 commit into
Open
fix(gate): drop the spelled step count — the one shared cell concurrent guard PRs collide on#1887macanderson wants to merge 1 commit into
macanderson wants to merge 1 commit into
Conversation
…nt guard PRs collide on check-gate-parity.sh held AGENTS.md and CONTRIBUTING.md to a spelled-out gate-step total. The per-step name checks merge cleanly — each name is its own line — but the total is a single shared cell that any two concurrent guard-adding PRs must both rewrite, so the second merge leaves GATE_STEPS one ahead of the prose and turns main red for every open PR. It happened twice on 2026-08-06 (module-reachability + self-driving-test), and main is red on it again right now: GATE_STEPS is 25 and both documents say twenty-four. Remove the count from both documents' prose and delete the count-check branches and number_word() from the guard. The name-by-name checks and the ghost check — the halves that caught the two real drifts (#1437) — are untouched. Witness (the two-branch merge experiment is impractical in CI): with a fake step appended to GATE_STEPS and both documents updated by name only (no count edit), the old guard fails on the count discipline ('26 gate steps is outside the range number_word() spells') while the new guard passes; and on unmodified origin/main the old guard fails with "does not spell the gate's step count as 'twenty-five'" — the live collision — while this branch is green. shellcheck clean; sigpipe-safe piped invocation ('| head -1') verified. Closes #1883 Refs #1437
Contributor
There was a problem hiding this comment.
Sorry @macanderson, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR removes the spelled-out gate step count from documentation and from the gate parity script, keeping only per-step name and ghost checks so concurrent guard-adding PRs no longer collide on a shared count cell, while preserving existing verification behavior otherwise. Flow diagram for updated check-gate-parity.sh gate parity guardflowchart TD
A[Run check-gate-parity.sh] --> B[Invoke make gate-steps]
B --> C[Compute count from GATE_STEPS]
C --> D{count == 0?}
D -- yes --> E[Fail: no gate steps]
D -- no --> F[Per-step name checks in AGENTS.md]
F --> G[Per-step name checks in CONTRIBUTING.md]
G --> H[Ghost checks in CONTRIBUTING.md fence]
H --> I{Any failures?}
I -- yes --> J[Exit 1 with failure messages]
I -- no --> K[Print OK with count and docs]
style E fill:#fdd
style J fill:#fdd
style K fill:#dfd
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
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.
Problem
check-gate-parity.shheld AGENTS.md and CONTRIBUTING.md to a spelled-out gate-step total on top of its per-step name checks. The name checks merge cleanly — each step is grepped independently, so two PRs adding different guards produce diffs with no overlap. The total is the one shared cell both branches must rewrite: each updates it correctly against its own base, and the second to merge leavesGATE_STEPSone ahead of the prose. That turneddocs guardsred onmaintwice on 2026-08-06 (module-reachability#1750 vsself-driving-test), failing every open PR — andmainis red on exactly this again at the base of this branch:GATE_STEPShas 25 steps, both documents said twenty-four.Decision
Issue #1883's option (1): drop the total from the prose entirely.
make gate, which is the twenty-four of them in order." → "Or justmake gate, which runs them in order."number_word()and bothdoes not spell the gate's step countbranches; record the rationale in the header's "deliberately does NOT check" paragraph. The name-by-name checks and the ghost check — the halves that caught the two real drifts (docs: gate step lists are hand-restated in AGENTS.md and CONTRIBUTING.md with no drift guard #1437) — are untouched.The number told a reader nothing actionable (the list is right there, derived and checked name-by-name), and it was the only part of the prose that could go stale by merge skew alone. This also un-reds
main's current gate-parity failure as a side effect.Verification
The issue's Verify is a two-branch merge experiment — impractical in CI — so the witness is the equivalent single-tree experiment:
origin/main(the live collision): old guard fails —FAIL — AGENTS.md does not spell the gate's step count as 'twenty-five'. The gate runs 25 steps.(both docs). This branch:OK — 25 gate steps, named in AGENTS.md and CONTRIBUTING.md.fake-steptoGATE_STEPSand named it in both documents without touching any count — the shape a merged pair of guard PRs produces. Old guard:FAIL — 26 gate steps is outside the range number_word() spells(the count discipline fires). New guard:OK — 26 gate steps…. Scaffolding reverted after the run.shellcheck scripts/check-gate-parity.shclean; sigpipe-safe piped invocation./scripts/check-gate-parity.sh | head -1prints the OK line.check-command-docs,check-brand-case,check-left-behind,check-doc-linksall green. Shell/docs-only change — no cargo surface touched.Closes #1883
Refs #1437, #1750, #1645
Summary by Sourcery
Remove gate step count spelling checks to avoid merge conflicts and keep documentation resilient to concurrent guard changes.
Enhancements:
Documentation: