chore(#649): the required check's name stops being a prose string - #653
Merged
Conversation
`gate-scripts` is becoming a required status check on `refactor/**`. The context a required-status-check rule matches is the check-run name, which GitHub takes from the job's `name:` when it has one and from the job id otherwise. `name: gate scripts (static, no build)` reads like a comment. Reworded for clarity by anyone, the ruleset would keep pointing at the old string, the check would quietly stop being required, and the PR UI would look identical to a working gate — the #618 failure class (a detector reporting all-clear because it is blind, indistinguishable from one reporting all-clear because the tree is clean) reproduced one level up, in the enforcement rather than the detector. Dropping the key makes the required context the job id, which nobody edits for readability. The cost is a less readable label in the checks list. CLAUDE.md records the requirement, why the key is absent, and the ordering constraint: the check cannot be required on `main` until `ci.yml` carrying this job lands there, because a required check that never reports blocks a PR permanently with no way to clear it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Part of #649 — the rename that must land before the ruleset is applied.
Why
gate-scriptsis becoming a required status check onrefactor/**. The context such a rule matches is the check-run name, which GitHub takes from the job'sname:when it has one and from the job id otherwise.Today that name is the prose string
gate scripts (static, no build). It reads like a comment. If anyone rewords it for clarity, the ruleset keeps pointing at the old string, the check quietly stops being required, and the PR UI looks identical to a working gate.That is the #618 failure class — a detector reporting all clear because it is blind, indistinguishable from one reporting all clear because the tree is clean — reproduced one level up, in the enforcement rather than the detector. Three gate scripts on this branch already shipped confidently wrong; this makes the thing that enforces them harder to disarm by accident.
Dropping the key makes the required context the job id, which nobody edits for readability. Cost: a less readable label in the checks list.
Ordering
This must merge before the ruleset is created. Applying a rule that requires
gate-scriptswhile the job still publishesgate scripts (static, no build)would block every PR intorefactor/**with an unclearable "Expected, waiting for status to be reported" — including this one.Also recorded in CLAUDE.md
name:key is deliberately absent.main, and must not be untilci.ymlcarrying this job lands there. For apull_requestthe workflow is read from the merge ref, so once the base has the job every PR gets it regardless of how stale the head is — but until then a required check would never report.build-and-testis deliberately not required onrefactor/**(0-for-21 under CI never validates a kernel-patch PR against the patched kernel it claims to fix #585). It is ~9/10 green onmain, so the requirable set inverts per branch. CI never validates a kernel-patch PR against the patched kernel it claims to fix #585 is confined to this branch and its descendants, not repo-wide — a correction to how it has been described.Verification
YAML parses; jobs unchanged at
gate-scripts,build-and-test,ios-simulator-build;gate-scriptsnow has noname:key. All four gates pass locally (exit 0). The check-run name this PR's own CI run publishes is the confirmation that matters, and it is read from the API rather than the PR UI before the ruleset goes anywhere near the repo.build-and-testis expected red (#585, signatureIssue570HealingApproxTests (fitted.uDegree → 1) > 1).