Sync required-checks.txt to the ruleset: 10 → 12 (scry#130) - #170
Merged
Conversation
#167 landed FEAT-091 and FEAT-093, so `Commit traceability (rivet)` and `Required checks track CI jobs (scry#130)` now exist on main and run on every PR. The drift gate immediately moved them from PENDING to FAIL -- which is the transition it was built to make: a requirable job that is not required is scry#130 recurring one job at a time. Both were added to ruleset 16891064 (10 -> 12 contexts), and this syncs the checked-in file so the two agree. Order matters: the RULESET was updated first and the file second, because CI gates on the file -- a file listing checks the ruleset does not require would mean CI gating on a fiction, which the live-mode cross-check reports in exactly those words. Briefly red on main is the honest state during that window. Verified: file mode PASS, live mode PASS with `file agrees: True`. rivet=0 claim-check=0 drift-self-test=0. Claude-Session: https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
ci.yml recorded the rule: require a job only once its name exists on every PR, i.e. after it merges to main. Correct, and incomplete -- a PR opened BEFORE the job existed still does not have it, so it can never report and is blocked forever. Observed rather than theorised. When #167 added two jobs and both were required, PRs #168 and #169 each showed 11 checks with 0 of the 2 new ones. Both would have deadlocked on a check that could never run. Both were rebased and now register 13. The complete procedure is now in ci.yml: 1. merge the PR that adds the job 2. add the context to the ruleset AND to required-checks.txt, ruleset FIRST (CI gates on the file, so a file ahead of the ruleset means CI is gating on a fiction -- the live-mode cross-check says exactly that) 3. REBASE EVERY OPEN PR drift-gate=0 gate-coverage=0 claim-check=0 rivet=0. Claude-Session: https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 27, 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.
#167 landed FEAT-091 and FEAT-093, so
Commit traceability (rivet)andRequired checks track CI jobs (scry#130)now exist on main and run on every PR. The drift gateimmediately moved them PENDING → FAIL — which is precisely the transition it was
built to make: a requirable job that isn't required is #130 recurring one job at a time.
Both were added to ruleset
16891064(10 → 12 contexts); this syncs the checked-infile so the two agree.
Order matters. The ruleset was updated first and the file second, because CI
gates on the file — a file listing checks the ruleset doesn't require would mean CI
gating on a fiction, which is what the live-mode cross-check says in those words. Being
briefly red on main is the honest state during that window, rather than making CI green
against a claim that wasn't yet true.
Verified: file mode PASS, live mode PASS with
file agrees: True.A refinement this exposed
ci.ymlrecords the rule "require a job only after its name exists on every PR, i.e.after it merges to main." That turns out to be necessary but not sufficient: PRs
opened before the check was added still don't have the job, so they can never report
it. #168 and #169 both showed 11 checks with 0 of the 2 new ones — they would have
deadlocked. Both have been rebased.
The complete rule is: add the required check, then rebase every open PR. I'll fold
that into the
ci.ymlnote.rivet=0 claim-check=0 drift-self-test=0🤖 Generated with Claude Code
https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc