ci: move the GitHub-state gates out of the test suite into issue-triage (#1275) - #1284
Merged
Merged
Conversation
…ge (#1275) tools/issue_labels_check.sh and tools/roadmap_check.sh read live repository state, so as suite section [99zd] their verdict changed without any commit: an unrelated issue filed without labels turned PR #1273 red (#1279) and ejected #1282 from the merge queue for two hours (#1168). They now run only in .github/workflows/issue-triage.yml, which already ran both daily with its own pinned copies of each contract. It gains a path-filtered pull_request trigger (the gates, gh_probe.sh, ROADMAP.md, the workflow), so a PR that edits a gate still runs it, as an advisory check that is never required. [99zd] keeps the one part that reads only the tree, workflow_yaml_check.sh (-450 runner lines). With no GitHub caller left in CI's suite lanes, the Linux jobs drop their issues: read token and the dev image drops its pinned gh tarball. docs/CI.md's section is rewritten around where the gates run now (-194 lines of suite-caller history); the tools' headers name the one remaining caller. Floors lowered deliberately: child_exit_check 126 -> 122 (the section's six child invocations became two), docs-claims PATHS|docs/CI.md 68 -> 65. Seven section_plan skip waivers for deleted lines are removed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… fail (#1275) /code-review on #1284 found two holes. The new [99zd] accepted any workflow_yaml_check selftest that exited 0, so a gutted selftest or a loader skip on a lane that has PyYAML passed; it now pins the exact SELFTEST: line with the skip count taken from its own PyYAML probe (planted: a gutted --selftest and a dropped case are both red). And in issue-triage the roadmap step ran after the labels step with no guard, so an unrelated unlabelled issue skipped the roadmap gate on the very PRs the new trigger exists for; it now runs under !cancelled(). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… pointers (#1275) Blind critic (Astra) on #1284: nothing reads workflow_yaml_check --contract since its suite caller pins the OK and SELFTEST lines directly, so the mode and its SELFTEST_CASES constant go. gh_probe.sh pointed at a CI.md paragraph this PR removed, and a changelog 'see below' pointed at an entry above it. Co-Authored-By: Claude Opus 5.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 #1275 (gate consolidation). Implements the DoD item "housekeeping out of CI".
Why:
tools/issue_labels_check.shandtools/roadmap_check.shread LIVE repository state, so as suite section[99zd]their verdict changed without any commit. On 2026-09-23 alone: an unrelated unlabeled issue turned #1273 red (#1279), and #1168 ejected #1282 from the merge queue for ~2h.What:
.github/workflows/issue-triage.yml, which already ran both daily with its own pinned copies of each contract. It gains a path-filteredpull_requesttrigger (the two gates,gh_probe.sh,ROADMAP.md, the workflow itself), so a PR that edits a gate still runs it. That run is advisory and never a required check.[99zd]keeps the one part that reads only the tree:tools/workflow_yaml_check.sh+ selftest (−450 runner lines). Standalone check: green clean; red with the gate gutted toexit 0.issues: read+GH_TOKEN, and the dev image drops its pinnedghtarball.docs/CI.md's labels/roadmap section is rewritten around where the gates run now (−194 lines of suite-caller history). The tools' headers name the one remaining caller. The Unreleased changelog is corrected, plus a new entry.Floors lowered deliberately:
child_exit_check126 → 122 (the section's six child-invocation lines became two)PATHS|docs/CI.md68 → 65section_planskip waivers for deleted lines removed; the skip audit readsunaccounted=0Net: +83 / −736.
Local verification:
make precheck: 19/19 passedRESULTS: 5341/5341 passed, 0 failed, 11 skipped🤖 Generated with Claude Code