Skip to content

ci: catch a specification branch moving under a mid-flight SPEC_REF - #23

Merged
aleskiontherun merged 1 commit into
mainfrom
claude/musing-tharp-79c15d
Sep 20, 2026
Merged

aleskiontherun merged 1 commit into
mainfrom
claude/musing-tharp-79c15d

Conversation

@aleskiontherun

Copy link
Copy Markdown
Member

While SPEC_REF sits at a specification branch's head — the first order — neither existing check can see that branch move: the byte check compares this tree against whatever commit the pin names, so it stays green against a superseded one, and the ancestor check is red throughout that window by design. A commit added to the branch afterwards leaves a vendored file behind with both repositories green, until the pin moves to the merged commit and the byte check fails on a file nobody was expecting. .github/scripts/spec_pin.py is a third step: it finds the branches holding the pin and fails when a file under schema/, fixtures/ or docs/ differs between the pin and one of their heads, naming the files to re-vendor. The signal is a file rather than a moved ref, because a specification branch may gain commits touching only its own prose or its own CI; the step sits before the ancestor check, because a step after a failing one never runs and that one fails for the whole of the window this covers; and it is a no-op once the pin is an ancestor of the specification's main, which is the resting state.

Verified with pytest — 1052 pass, 16 of them new — and against the specification itself, by cloning it with the branch this was found on put back at the head it reached: the check exits 1 there naming docs/uddf-mapping.md and nothing else, exits 0 pinned at the commit whose only successor touches nothing vendored, and exits 0 on the commit SPEC_REF names today.

🤖 Generated with Claude Code

During the first order the pin sits at a specification branch's head, where
the byte check compares against whatever commit it names and the ancestor
check is red throughout — so a commit added to that branch afterwards leaves
a vendored file behind with both repositories green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@aleskiontherun
aleskiontherun merged commit 18237ca into main Sep 20, 2026
6 checks passed
@aleskiontherun
aleskiontherun deleted the claude/musing-tharp-79c15d branch September 20, 2026 18:08
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.

1 participant