First measured run after #390 (snapshot run 34264517316): gate_ready 37 (right), but gated 90 of 90 and gate-absent 0. That is not evidence about CI: required-baseline requires pr-claim / pr-claim on every default branch, so "at least one required context" is true everywhere by construction. Meanwhile arming-lane-absent fired on 53 repos, including ~40 with no caller at all — repos where nothing about CI is required, so "green waits for a person" is the wrong sentence; "green decides nothing" is the right one.
Fix, in classifyRepo:
gated = at least one required context other than pr-claim / pr-claim. The claim is the passkey's rung, not a CI check (.github-private#913 keeps it deliberately outside the CI gate).
gate-absent = caller present and not gated — the standard runs and nothing requires it (the fail-open set). Expected ≈ 13 callers outside the 37 that lack their own gate.
arming-lane-absent = gated and no arming lane. Expected: the six repos with their own gate/schema aggregator (.github, .github-private, infra, keycard, claude-box, front-desk-scheduler) — true findings: their green waits for a person.
required_checks keeps listing every context, the claim included; gate_ready unchanged.
Tests: a rules fixture with only the claim required is gate-absent for a caller and nothing for a bare repo; RULES_37 still ready; totals in the summary test recomputed.
First measured run after #390 (snapshot run 34264517316):
gate_ready37 (right), butgated90 of 90 andgate-absent0. That is not evidence about CI:required-baselinerequirespr-claim / pr-claimon every default branch, so "at least one required context" is true everywhere by construction. Meanwhilearming-lane-absentfired on 53 repos, including ~40 with no caller at all — repos where nothing about CI is required, so "green waits for a person" is the wrong sentence; "green decides nothing" is the right one.Fix, in
classifyRepo:gated= at least one required context other thanpr-claim / pr-claim. The claim is the passkey's rung, not a CI check (.github-private#913 keeps it deliberately outside the CI gate).gate-absent= caller present and notgated— the standard runs and nothing requires it (the fail-open set). Expected ≈ 13 callers outside the 37 that lack their own gate.arming-lane-absent=gatedand no arming lane. Expected: the six repos with their owngate/schemaaggregator (.github,.github-private,infra,keycard,claude-box,front-desk-scheduler) — true findings: their green waits for a person.required_checkskeeps listing every context, the claim included;gate_readyunchanged.Tests: a rules fixture with only the claim required is
gate-absentfor a caller and nothing for a bare repo;RULES_37still ready; totals in the summary test recomputed.