Repository navigation
fix(pm): the workflows split stops reading .github/actions as in use, and tracks four more gate spellings - #31713
Merged
Conversation
…ks four more gate spellings The in-use inventory no longer lists `.github/actions/**`: it is no register row, so an action used there alone no longer lets a workflow adopt it at Tier S. WORKFLOW_INVOCATIONS gains `git diff --exit-code` / `--quiet` (arguments kept), `npx X` (version dropped) and `node` / `bash` / `sh` on any file path, so the per-job loss rule sees a gate written that way moved out of its job. The header names the spellings still untracked beside the run-text limit. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jSxQuMCd6U7w4Rj8jd
…s out The queue guard pins the inventory listing as read once per run by its exact argv, so the reader keeps listing both directories and drops every path outside `.github/workflows/` before it reads one. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsR2jSxQuMCd6U7w4Rj8jd
Contributor
Author
|
domain:skills#2 · zhuangjianguo · session_01QsR2jT34CXs5fCn3BDirZw 维护者速读
席位核对Head-sha:
|
objectstack-fleet
Bot
requested review from
hotlong and
os-zhuang
as code owners
November 8, 2026 23:07
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.
Requested by Steedos · project thread
Fixes #31689
Clause-②: no
Metadata-protocol: none
维护者速读
.github/workflows/**,不再认不受管的.github/actions/**;二是门禁写法多认四种(git diff --exit-code/--quiet、npx X、node/bash/sh跑任意路径的脚本),这类门禁被挪出原 job 时判 H。.github/actions/**里引入第三方 action、再让工作流采用它,会被判成 Tier S;以那几种写法写的门禁被挪走也认不出。今天都没被利用。scripts/pm/check-governed-merges.mjs的WORKFLOW_INVOCATIONS(新增三条模式)与readWorkflowDiff里清单那一行,再看 self-test 里 N3 / N5 两组新 pin。node scripts/pm/check-governed-merges.mjs --self-test,预期618 assertions且退出 0。What changes
readWorkflowDiffbuilds the "already in use" inventory from.github/workflows/**files only..github/actions/**is not a register row, so an action used there alone no longer lets a workflow adopt it at Tier S. The listing argv is unchanged, becausecheck-governed-queue-guard.mjspins it as read once per run by its exact argv; the reader drops every path outside.github/workflows/before reading one..github/actions/**is not made a register row (that is a ruling).WORKFLOW_INVOCATIONSgains three spellings, so the per-job loss rule tracks them:git diff ... --exit-code/--quiet, with its arguments kept in the token, since a narrowed pathspec is a narrowed gate;npx X, with the package's version dropped, since a version bump is not a lost gate;node/bash/shon the first file path after them, with any path prefix, not onlyscripts/..github/actions/**vouches for nothing. The run-text known limit now lists the tracked spellings and names the ones still untracked (python3 -c,/bin/bash x.sh, an inlinetest, a bin thatpnpm execnames)..claude/**or AGENTS.md text. A grep found no line there that says the inventory includes.github/actions.Tests
node scripts/pm/check-governed-merges.mjs --self-test: 609 assertions before, 618 after, exit 0. The workflows split battery floor rises from 66 to 75. Floor 76 reds with "registered 75 case(s), below its pinned floor of 76".⛔ N3-a-workflow-adopting-an-action-used-only-under-github-actions-on-the-base-is-HN3-control-an-action-a-base-workflow-already-uses-is-S⛔ N5-a-gate-spelled-TOKEN-moved-out-of-its-job-is-Hcases:git diff --exit-code -- packages/spec/json-schema,git diff --quiet -- sdui.manifest.json,npx publint,npx @arethetypeswrong/cli,node ui/e2e/check-gate.mjs,bash tools/verify.shN5-near-miss-an-npx-version-bump-and-a-dropped-dot-slash-are-Snear-miss-a-new-job-with-a-fresh-name-and-its-own-if-is-S) stays S.git ls-treenow honours its pathspecs, as git does, so the inventory's directory reading is under test.check-governed-queue-guard.mjs --self-testexits 0 (433 cases).check-governed-prose,check-owed-reviews,check-half-states,check-skill-line-ratchet,ci-failureandpost-stamped--self-testeach exit 0.Acceptance notes
e81636ce) against new reader (this head), with each merge read against its first parent asreadWorkflowDiffdoes:.github/workflowsbefore1a20cbc846: 16 S before and 16 S after, 0 verdicts or reasons changed. That window has 4 newer S merges (ci(test): check out Test Core and Test UI at depth 1 and fetch only the history they read #31429, ci(glue): narrow the Merge Queue Triage and Scheduled Full Run Card workflow_run triggers by branch #31544, ci(lint): say the ADR index step reds on a dropped header field #31282, ci(lint): raise the full-history checkout budget from 20 to 25 minutes #31329) and misses ci(test-core): build declarations on one CLI slice only — pin the CLI's declaration readers into slice 1/n #27018, which is older..github/actionsfrom thels-treeargv. That broke the queue guard's read-once pin (the-inventory-of-the-merge-base-is-read-ONCE-per-run), which sits outside this card's file surface. The second commit keeps the argv and filters in the reader instead. Dropping the directory from the argv as well is a one-line pin edit incheck-governed-queue-guard.mjsfor whoever owns that file.dispatch-gatesdoes not derive that self-test for this diff.Verification
e60354d1a(main merged at204cc46e8).node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 33 commands, and all 33 exited 0.--ranreconciled 33 derived, 33 run, 0 NOT-MEASURED, 0 UNRUN.eslint scripts/pm/check-governed-merges.mjsis clean.Generated by Claude Code