Skip to content

Sync required-checks.txt to the ruleset: 10 → 12 (scry#130) - #170

Merged
avrabe merged 2 commits into
mainfrom
sync-required-checks-file
Aug 27, 2026
Merged

Sync required-checks.txt to the ruleset: 10 → 12 (scry#130)#170
avrabe merged 2 commits into
mainfrom
sync-required-checks-file

Conversation

@avrabe

@avrabe avrabe commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

#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 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-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 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.yml records 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.yml note.

rivet=0 claim-check=0 drift-self-test=0

🤖 Generated with Claude Code

https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc

avrabe and others added 2 commits August 27, 2026 07:46
#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>
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