Repository navigation
ci: delete the spec-main-shape-gate copy, the spec shape gate runs in objectstack (objectui#12352) - #12596
Merged
Conversation
… objectstack Executes ruling B on objectstack-ai/objectstack#23238 (comment 6145029395), the objectui half: the spec shape gate moved to objectstack (`.github/workflows/spec-shape-gate.yml` there, hourly, read by its release gate), and objectui drops its copy now that the two gates agree. - delete `.github/workflows/spec-main-shape-gate.yml`, `scripts/spec-main-shape-gate.mjs` and its pin test; - `scripts/dependabot-merge-gate.mjs`: drop the `NOT_A_GATE` entry and the `REQUIRED_CONTEXTS` note for a context no workflow produces any more (the partition test refuses a classified name nothing produces), and the objectui#12240 describe block that pinned it; - `scripts/check-required-check-set.mjs`: the tombstone now says the workflow is gone, so the name must not come back to the ruleset; - `.github/workflows/repo-gates.yml`: header comment brought up to date; - `content/docs/guide/ci-cd-pipeline.md`: inventory row and section replaced by a short section naming the successor and the retirement registry, and why `turbo.json` keeps the injection marker in `globalDependencies`; - `scripts/__tests__/ci-cd-pipeline-doc.test.ts`: the two declared non-run commands of the deleted section removed. Claude-Session: https://claude.ai/code/session_016PVjjuVPte5XEJvaQx1E4t Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
维护者速读 · objectui#12596 ·
|
os-zhuang
approved these changes
Oct 16, 2026
os-zhuang
marked this pull request as ready for review
October 16, 2026 01:57
os-zhuang
enabled auto-merge
October 16, 2026 01:57
Contributor
Author
席位核对 · approval recorded · objectui#12596 ·
|
| reading | value |
|---|---|
| approval | os-zhuang APPROVED, review 5542095139, 2026-10-16T01:57:37Z. os-zhuang is in GOVERNED_APPROVERS |
| new head | d6c39af00: os-zhuang merged main (f5eec6383) into the branch at 2026-10-16T01:57:42Z, then readied the PR and armed auto-merge |
| PR diff after the merge | unchanged. Against its new merge base f5eec63836 it is the same 9 files, +50 / −2807, and the git patch-id --stable value equals the reviewed head's diff (7025fc1df9a2 both) |
- State change:
needs-user-decisionis removed in this act; the approval it waited for is on record. - Landing: auto-merge is armed by the maintainer, so the seat does not re-arm it. Once it merges, the seat confirms on objectui
mainby a content probe (the three gate files absent,turbo.json's marker present) and closes out ci: delete the spec-main-shape-gate copy — four consecutive hourly runs agree with objectstack's Spec Shape Gate, which the release gate reads (ruling B on objectstack#23238, the objectui half) #12352. - CI on
d6c39af00, read at this act: 15 success, 3 skipped, 14Testshards in progress, 0 failed.
Generated by Claude Code
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.
Fixes #12352
Clause-②: no
Executes ruling B on objectstack-ai/objectstack#23238 (comment 6145029395, batch 336 item 3, maintainer 「其他同意」 2026-10-13), the objectui half: "the spec shape gate moves to objectstack … objectui drops its copy" once the objectstack side agrees for two consecutive hourly runs. The objectstack half landed as objectstack-ai/objectstack#23283 (
18cd410dc4); the card shows four agreeing pairs.The successor
.github/workflows/spec-shape-gate.yml(Spec Shape Gate), hourly on objectstackmainat:52. It clones objectuimain, injects the spec built from the objectstack commit with objectstack's ownscripts/ci/spec-shape-gate.mjs inject, and runs this repository'sTURBO_FORCE=true pnpm type-check --continue. It is registered in objectstack'sRELEASE_GATE_WORKFLOWS(scripts/ci/scheduled-full-run.mjs), so its scheduled run is read by the release gate, and a red is attributed to the objectstack lane that moved the shape.scripts/ci/spec-shape-retirements.json, one entry per retirement naming the objectui card that removes the downstream use; the gate reads a matching diagnostic as known, not new.injectandreportare objectstack's own port (read on objectstackorigin/mainat6362c66ca).What changed
.github/workflows/spec-main-shape-gate.ymlscripts/spec-main-shape-gate.mjsscripts/__tests__/spec-main-shape-gate.test.tsscripts/dependabot-merge-gate.mjsNOT_A_GATEentry and theREQUIRED_CONTEXTSnote removedthe gate names checks that no pull-request workflow produces) refuses a classified name nothing produces, and the note said "the reason is written there" about the entry being removedscripts/__tests__/dependabot-merge-gate.test.tsNOT_A_GATEentry above; the general partition test now holds the absencescripts/check-required-check-set.mjsWATCHED_CONTEXTStombstone rewritten.github/workflows/repo-gates.ymlmain"content/docs/guide/ci-cd-pipeline.mdSpec Main Shape Gatesection replaced by a shortSpec Shape Gate — moved to objectstacksectionturbo.jsonkeeps the markerscripts/__tests__/ci-cd-pipeline-doc.test.tsSWEEP_DECLARED_NON_RUN_COMMANDSentries keyed on the deleted workflow removedKept on purpose
turbo.jsonglobalDependencieskeepsnode_modules/@objectstack/spec/.spec-main-shape-gate.json. Who writes the marker: before this change, objectui'sinjectand objectstack'sinject; after it, objectstack'sinjectstill writes the same-named marker into every spec copy it replaces in an objectui install (MARKER_FILEin objectstack'sscripts/ci/spec-shape-gate.mjs, whose header says the spelling "stays objectui's … for as long as objectui's turbo config names it"). Who reads it: turbo, through this entry, and nothing else in this tree (git grepfor the marker name outside the deleted files hits onlyturbo.json;scripts/select-type-check-scope.mjsreadsglobalDependenciesgenerically as root-change globs). The function still holds: a local reproduction of the successor gate in a linked worktree shares.turbo/cachewith its siblings, and the marker keeps a forced injected run from leaving a verdict an installed tree replays (objectui#12114). Removing it would leave objectstack's header describing a coupling that no longer exists. Its in-tree pin lived in the deleted test, so the entry is now unpinned here; the new docs section carries the reason.scripts/__tests__/select-type-check-scope.test.tsstill feeds the two deleted paths as input strings to the selector: that case reproduces PR ci(spec-main-shape-gate): drop the merge_group trigger now the context is out of the required set (objectui#12252) #12262's diff, turbo's answer is stubbed to an empty list, and nothing reads those paths from disk. The case stays true.scripts/__tests__/check-required-check-set.test.tsandfixtures/required-check-set/live-2026-10-12.jsonare a dated reading of the objectui#12240 window and a pin that the name is neither pinned nor watched; both stay true. The seven ruled names are unchanged.check-required-check-set.mjsheader is history and stays true.packages/**,CHANGELOG.mdand landed.changeset/*mentions are other lanes' history and are not touched (listed in the report).Safety readings (2026-10-16, before the first push)
GET /repos/objectstack-ai/objectui/rules/branches/main, evaluated bynode scripts/check-required-check-set.mjs --fixtureon the saved answer:INTACT, seven required contexts,Spec Main Shape Gatenot among them. So deleting the workflow cannot leave a required context unreported. (The script's own live read answered 401 in this container for want of a token, exit 2, a reading not taken; the same endpoint read throughgh apianswered.)scheduleruns onmainof both gates all concludedsuccess(objectui38833480846,38826070331,38819949451,38813070302; objectstack38833492264,38826210209,38820098793,38813219037). objectui#12325 is closed.Changeset
None.
node scripts/check-changeset-presence.mjson this diff: "No source or published contract of a released package changed in this range, so no changeset is owed" (exit 0). The diff touches workflows, scripts and docs only.Governed surface
node scripts/check-governed-queue-guard.mjs --teston all nine changed paths:GOVERNED, 2 of 9 paths on.github/workflows/**(exit 3). This PR stays a draft; it is a dispatched PR, so the claiming seat requests the review and lands it after an authorised approval.Verification at
3e9675e20node ../objectstack/scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectuirefuses by design (the script derives only objectstack's families), so the local set was hand-derived from this repository's own workflows and tests:pnpm exec vitest run --maxWorkers=2over 89 test files: every test underscripts/__tests__/that namesrepo-gates.yml, the deleted workflow,dependabot-merge-gate,check-required-check-set,ci-cd-pipeline.mdorworkflow-checks, plus every test that reads.github/workflows/:Test Files 89 passed (89),Tests 3340 passed (3340), lock verdictcommand-exit 0.pnpm type-check:scripts(tsc overscripts/, the pin tests included): exit 0.pnpm exec eslinton the four changed script and test files: exit 0.check-control-bytes,check-action-ref-convention,check-pre-install-import-graph(self-test and run),check-shell-escape-residue,check-doc-links,check-doc-fence-languages(self-test and run),check-doc-example-ids,check-doc-component-types; pluscheck-new-cross-file-line-citations(0 new),check-required-check-set --self-test,check-changeset-presence.pnpm test,pnpm lint, the turbo type-check,Build Docs,Build & E2E, and the Repo Gates steps that need a build (doc snippet and skill example compiles). The new docs section adds no fenced block.Acceptance notes
scripts/ci/spec-shape-retirements.jsonstill carries the entry registered to objectui#12325, although that card closed on 2026-10-14 and the file's$commentsays an entry is "deleted when that card closes". The objectui runs have been green since, so the entry matches nothing today; a later break of the same pattern would read as known. An observation about the objectstack side, not acted on here.turbo.jsonmarker entry has no in-tree pin after this change (see "Kept on purpose").packages/**comments describe the gate in the present tense ("compiled … by the Spec Main Shape Gate againstmain"). The compile they describe still happens, now as objectstack'sSpec Shape Gate; only the name is stale. Other lanes' files, left alone.维护者速读(草稿)
main) — on every objectui PR, or on an objectstack schedule and before each release? objectstack#23238 裁决 B):形状门搬到上游 objectstack,objectui 的副本在两边连续一致后删除;卡上记了四对一致的小时运行。两份同时在跑只会让人读错哪份是权威。turbo.json标记理由,批准后由认领席落地。Generated by Claude Code