You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Path: none | tooling | maintainer-directed (ruling #208 on #19491) — dispatched at filing, never queued
Filed and dispatched by the director seat, summon #25 (session_012GcsUbuqFGBibkEDMRC1eE), under the maintainer's verbatim direct-dispatch instruction: Ruling #208 on #19491 — maintainer 「19491 接受你的建议,并立刻派发处理相关任务。」 (2026-09-21, chat, on the director seat's 档 2 package R1–R7). Direct-dispatch channel (SKILL.md 〈多仓协调〉规则 4 「维护者直派通道」): the audit quote above is the authorization; ⛔ not a triage grading, ⛔ never queued. The full analysis and measured table are the ruling record on #19491.
scripts/pm/check-half-states.mjs is 36,717 lines / 2.48 MB with 68 H rows, changed 52 times in 14 days (8 times on 2026-09-20, every one a misread repair). It blocks no branch, but the charter made its anchor rows a dispatch precondition, so a row that misreads a now-legal state costs every executive seat a handling step, four times a day, until a dev repairs the row — the loop the maintainer asked to stop (「留着却不继续开发,会不会反而不停的报错误的信息」 — yes, and this card is the answer). Ruled: retire the schedule, keep the script runnable on demand, delete no line of it; the charter half (the anchor is no longer a precondition) is the sibling charter card filed with this one.
The change (.github/** — not on the governed register: Tier S, the director seat lands it after an at-tier read)
.github/workflows/half-state-patrol.yml: remove the schedule: block (today cron: '37 1,7,13,19 * * *'); keep workflow_dispatch: {} exactly. Rewrite the header prose that explains the four-times-a-day cadence and the :37 offset so it describes on-demand use, citing this ruling (objectstack#19491, ruling 🔗 Broken links detected in documentation #208) — the file's own comments must not promise a schedule that no longer exists.
Census every other scheduled path into the patrol: git grep -n 'half-state-patrol' .github (PR ci(pm): make the half-state patrol callable instead of copied #19225 made the patrol a callable action, .github/actions/half-state-patrol/action.yml; board-snapshot.yml, checklist-status.yml, merged-branch-reaper.yml were hits on a wider grep). Any workflow that runs the patrol action on a schedule loses that call or that schedule in this PR (say which, per file); a workflow that calls it only on workflow_dispatch or as part of a maintainer-run job stays. ⛔ Do not touch the action file or the script.
The anchor issue (vars.HALF_STATE_ANCHOR_ISSUE) keeps its last body; the triage seat may run the workflow by hand for its daily full reconciliation. Row H57 (「the workflow's latest scheduled run is green and fresh」) will read the retired schedule as stale on every on-demand run: state this in the PR body as a known, unread reading; ⛔ do not edit check-half-states.mjs for it — if a one-line fix exists, put it in out_of_scope_findings.
Acceptance
git grep -n 'cron' .github/workflows/half-state-patrol.yml = 0 with control git grep -n 'workflow_dispatch' .github/workflows/half-state-patrol.yml = 1; the census of item 2 listed file by file with the verdict per file.
Every family node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derives for a .github/workflows/** diff (workflow lint / self-test-wired / gate-population families), exit codes captured before any pipe; bash scripts/ci/select-gate-families.selftest.sh still passes (it reads lint.yml, untouched here).
PR body: the ruling quote, the census, the H57 note; skip-changeset (nothing under packages/**).
Out of scope
The charter's anchor-precondition lines (sibling card); the self-test scoping in lint.yml (sibling card); any trimming of the 68 rows (⛔ ruled not now — a PR on a 36,717-line file is its own risk; if the script stays unused for a month it is deleted whole, on its own card).
Path: none | tooling | maintainer-directed (ruling #208 on #19491) — dispatched at filing, never queued
Filed and dispatched by the director seat, summon #25 (
session_012GcsUbuqFGBibkEDMRC1eE), under the maintainer's verbatim direct-dispatch instruction: Ruling #208 on #19491 — maintainer 「19491 接受你的建议,并立刻派发处理相关任务。」 (2026-09-21, chat, on the director seat's 档 2 package R1–R7). Direct-dispatch channel (SKILL.md 〈多仓协调〉规则 4 「维护者直派通道」): the audit quote above is the authorization; ⛔ not a triage grading, ⛔ never queued. The full analysis and measured table are the ruling record on #19491.Why (measured, 2026-09-21T03:43Z,
origin/main4045781)scripts/pm/check-half-states.mjsis 36,717 lines / 2.48 MB with 68Hrows, changed 52 times in 14 days (8 times on 2026-09-20, every one a misread repair). It blocks no branch, but the charter made its anchor rows a dispatch precondition, so a row that misreads a now-legal state costs every executive seat a handling step, four times a day, until a dev repairs the row — the loop the maintainer asked to stop (「留着却不继续开发,会不会反而不停的报错误的信息」 — yes, and this card is the answer). Ruled: retire the schedule, keep the script runnable on demand, delete no line of it; the charter half (the anchor is no longer a precondition) is the sibling charter card filed with this one.The change (
.github/**— not on the governed register: Tier S, the director seat lands it after an at-tier read).github/workflows/half-state-patrol.yml: remove theschedule:block (todaycron: '37 1,7,13,19 * * *'); keepworkflow_dispatch: {}exactly. Rewrite the header prose that explains the four-times-a-day cadence and the:37offset so it describes on-demand use, citing this ruling (objectstack#19491, ruling 🔗 Broken links detected in documentation #208) — the file's own comments must not promise a schedule that no longer exists.git grep -n 'half-state-patrol' .github(PR ci(pm): make the half-state patrol callable instead of copied #19225 made the patrol a callable action,.github/actions/half-state-patrol/action.yml;board-snapshot.yml,checklist-status.yml,merged-branch-reaper.ymlwere hits on a wider grep). Any workflow that runs the patrol action on a schedule loses that call or that schedule in this PR (say which, per file); a workflow that calls it only onworkflow_dispatchor as part of a maintainer-run job stays. ⛔ Do not touch the action file or the script.vars.HALF_STATE_ANCHOR_ISSUE) keeps its last body; the triage seat may run the workflow by hand for its daily full reconciliation. Row H57 (「the workflow's latest scheduled run is green and fresh」) will read the retired schedule as stale on every on-demand run: state this in the PR body as a known, unread reading; ⛔ do not editcheck-half-states.mjsfor it — if a one-line fix exists, put it inout_of_scope_findings.Acceptance
git grep -n 'cron' .github/workflows/half-state-patrol.yml= 0 with controlgit grep -n 'workflow_dispatch' .github/workflows/half-state-patrol.yml= 1; the census of item 2 listed file by file with the verdict per file.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderives for a.github/workflows/**diff (workflow lint / self-test-wired / gate-population families), exit codes captured before any pipe;bash scripts/ci/select-gate-families.selftest.shstill passes (it reads lint.yml, untouched here).skip-changeset(nothing underpackages/**).Out of scope
The charter's anchor-precondition lines (sibling card); the self-test scoping in
lint.yml(sibling card); any trimming of the 68 rows (⛔ ruled not now — a PR on a 36,717-line file is its own risk; if the script stays unused for a month it is deleted whole, on its own card).Generated by Claude Code