Repository navigation
docs(ui): the CI/CD guide page describes objectui's 28 deleted workflows; retire it and repoint its ~28 readers (F14, parent #25677) #26944
Description
Filing gate ③ (maintainer-directed). On 2026-10-27 at 22:23Z, Tesla answered the F14 decision card in the cleanup project thread by choosing 「New card for F14, close the epic」. This card is that new card. It carries F14 from #25712's closing record (6432294556), which moved it onto #25753, and it inherits epic #25677 (now closing). Part of #25677. ⛔ Not a claim.
维护者速读
ui/content/docs/guide/ci-cd-pipeline.md 有 3,243 行,写的是 objectui 独立仓的 28 个 workflow。这些 workflow 已随 #26058 删除,页面上的每个作业名、触发条件和必需检查都不再成立。建议整页删除,只留一句指向根仓 .github/workflows/ 的说明,而不是重写:根仓的 CI 在 workflow 文件和 AGENTS.md 里已有一份说明,再写第二份只会再次过时。约 28 个文件引用这一页(测试、markdown-test-inputs 台账、导航 meta.json、CONTRIBUTING.md、deployment.md),它们要随页面一起改指向或删掉。
What is wrong
The page documents CI that no longer exists:
- the objectui
ci.ymljob table; lint.yml's steps;labeler.yml(deleted by chore(ui): delete the inert objectui labeler config (F12, #25753) #26943, F12);live-e2e,performance-budget, the action-ref convention;- the required-check set of a repository that is now archived.
Any contributor who reads it to learn how a ui/ PR is checked gets wrong answers. The test that kept it honest, ci-cd-pipeline-doc.test.ts, was deleted in 2d-3 (#26013). Its 15 describes are listed in #26058's body under "Follow-up rows", and they are the checklist for any rewrite.
Who acts
A domain:devx card thread. The edits are in ui/content/docs/guide/, ui/scripts/** and ui/CONTRIBUTING.md, all Tier S or ungoverned. There are two shapes, and the seat picks one:
- A (recommended): retire the page. Delete it. Drop its
meta.jsonentry. PointCONTRIBUTING.mdanddeployment.mdat the root.github/workflows/. Then update each reader so that no reader is left pointing at a missing file: themarkdown-test-inputs.mjsrows (reads/notReadat:751,:779,:785,:858), the tests that read or cite the page, and the comment pointers ci(ui-merge): delete objectui's nested workflows and Dependabot config; retire the action-ref scan and the CI page pin test with them #26058 listed. Those pointers are incheck-lockfile-integrity.mjs,check-skill-eval-tokens.test.ts,check-skill-examples.test.ts,check-doc-example-types.test.ts,doc-version-claims.test.ts,ci-setup-pnpm-wiring.test.ts,ui/e2e/live/ci/backend.env,saved-view-filter.spec.tsandreserved-auth-features.test.ts. - B: rewrite it for the root workflows. Re-establish or drop each of the 15 describes listed in ci(ui-merge): delete objectui's nested workflows and Dependabot config; retire the action-ref scan and the CI page pin test with them #26058, against root
ci.yml,lint.ymlandui-coverage-nightly.yml.
Acceptance
git grep -n 'ci-cd-pipeline'lists only CHANGELOG history (shape A), or only live readers of the rewritten page (shape B).pnpm --dir ui exec vitest run scripts/passes, andnode ui/scripts/markdown-test-inputs.mjs --auditexits 0.- The ui docs site build (
Build & E2E UI, plus the docs-route closure gate inLint UI) stays green.
Duplicate search. objectstack-ai/objectstack, "ci-cd-pipeline docs page objectui workflows rewrite retire": #25712 (closed, listed F14 as a residual), #25753 (open, carries it), #26058 (merged, widened F14). No card exists for the page. New.
Size: S (shape A) or M (shape B). Clause-②: no. Metadata-protocol: none.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 27, 2026
Triage:
domain:devx, p2,area:devpath· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-27T22:57Z⛔ Not a claim.
ui/workspace:D1 裁定(A+)的执行父单 — 一个 PR 同时改 spec 与渲染器,删除两仓互钉,@object-ui 保留包名并与 @objectstack 同一版本组,objectui 仓归档为迁移说明 #25677 / aftercare(ui-merge): the first joint 18.x release from the merged repo — both scopes at one version, @object-ui published, docs site deployed — then close #25556 as superseded and the epic (parent #25677, 6/6) #25753).ui/content/docs/guide/ci-cd-pipeline.mddocuments objectui's 28 deleted workflows. Contributors get wrong answers, and nothing breaks, so it is p2.domain:devxas filed: docs and test-input ledgers. The seat picks A (retire it and repoint its readers, as the card recommends) or B (rewrite it).documentation,pm:queue.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Claim: PM loop round 2 · shape A · 2026-10-28T03:09Z
Session:
session_01QSeKYmTYfaPbLQD4BJfomW(dispatching seat; the cloud session is named in the dispatch note under this claim)Account:
os-justin(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-26944-retire-ui-ci-cd-pageWorktree: the cloud session's own container
Domain:
domain:devxSeat:
domain:devx#2File surface: shape A (the card's recommendation; the seat picks A). Delete
ui/content/docs/guide/ci-cd-pipeline.mdand drop itsmeta.jsonentry. Pointuicontributor docs (the rootCONTRIBUTING.mdUI Workspace section, since #27001 foldedui/CONTRIBUTING.mdthere) anddeployment.mdat the root.github/workflows/. Update every reader so none points at a missing file: theui/scripts/markdown-test-inputs.mjsrows, the tests that read or cite the page, and the comment pointers the card lists. ⛔ No.github/**or.claude/**edit, no product code, no new CI doc. PRFixes #26944(stop on breach; explain in the report)Container & model: M,
mode:cloud,model: TIER_DEFAULT(dispatch-gates --tier: "no path-derived mandate"),effort: highClause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6455652984
Premise: holds at
origin/maincb8988ee14. The page exists, andgit grep -l ci-cd-pipelinelists 31 files. The card'sui/CONTRIBUTING.mdtarget no longer exists (#27001 folded it into the rootCONTRIBUTING.md), so that pointer lands in the root file.Serial constraints cleared: open PRs #27042 and #26365 touch
ui/scripts/markdown-test-inputs.mjson other rows, and #26365 also touches docs underui/. Whichever lands second mergesmain.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Dispatch note · devx seat 2 · 2026-10-28T03:11Z
Claim 6459628069 (shape A) dispatched to cloud session
session_01QSeKYoVqdPtw3tbJG1vCDH, outcome branchclaude/issue-26944-retire-ui-ci-cd-page.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
os-dev-report
{ "issue": 26944, "status": "done", "branch": "claude/issue-26944-retire-ui-ci-cd-page", "pr": "https://github.com/objectstack-ai/objectstack/pull/27071", "session": "session_01QSeKYoVqdPtw3tbJG1vCDH", "premise_still_valid": true, "summary": "Shape A. Deleted ui/content/docs/guide/ci-cd-pipeline.md and its meta.json entry. Repointed deployment.md at the root .github/workflows, and added a short UI CI subsection to the root CONTRIBUTING.md UI Workspace section. No CI doc was written. All 31 files that named the page at cb8988ee1 were classified and handled. Glob-probe pins (3) were retargeted to the live deployment.md. Pins asserting the page's content were removed with it, keeping the live package.json/ci.yml halves of mixed its. merge-queue-reporting.test.ts was deleted as a whole: its last describe pinned the page. Ledger rows, two KNOWN_CLAIMS entries and four vacuity floors were updated. Comment pointers were reworded, including seven pointers to the deleted merge-queue-reporting file. Acceptance holds: `git grep -n ci-cd-pipeline` lists only the two packages/console/CHANGELOG.md history lines. The claim (comment 6459628069) names this branch. Card assignee os-justin was untouched; the PR assignee is os-justin. The worktree was created after the PreToolUse hook blocked edits on the primary checkout; the primary is detached at cb8988ee1.", "tests": "Head 11fce5c7e. 24 touched/affected suites under os-verify-lock (pnpm --dir ui exec vitest run --maxWorkers=2, 24 files): Test Files 24 passed (24), Tests 842 passed (842), VERDICT command-exit 0 at 7b575a165. The final commit only rewraps comments in 2 files, re-run 2/2 files, 14/14 tests. The acceptance command pnpm --dir ui exec vitest run scripts/ gave 173 passed, 2 failed, 2 skipped of 177 files, VERDICT command-exit 1. Neither failure is a touched file. date-only-zone-pins-10183.test.ts ('ran no case at all') went green after pnpm --filter '@objectstack/formula...' build. unit-registry-absence-collision.test.ts reports 30 modules unimportable (unbuilt @objectstack/client dist): NOT MEASURED locally, reason: local build state, CI builds the closure. node ui/scripts/markdown-test-inputs.mjs --audit: exit 0, '96 candidate test files, all adjudicated; 70 declared entries, all present.' No ablation: no runtime behaviour changed (docs, test pins, comments only).", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack at 7b575a165: 26 families. 25 exited 0, with exit codes captured to file before any pipe; check:type-check-debt was re-run without a timeout wrapper: exit 0, 0 raw tsc errors. pnpm --dir ui exec vitest run scripts/ exited 1, see tests. --ran reconciliation: '26 derived, 26 run, 0 NOT-MEASURED, 0 UNRUN' (a derived zero: every line carries an exit code). Also: cd ui && pnpm run docs:check-links exit 0 ('Links are valid across 13 scan roots.'); check:new-line-citations '0 new citation(s) ... exit 0'; eslint --no-inline-config over the 31 touched ui .ts/.mjs files exit 0, 0 warnings; check:nul-bytes exit 0 on the final head. CI check-runs on PR #27071: in_progress at report time, not awaited per contract. The 5 type-check-program lanes are NOT MEASURED locally and declared to CI: the diff touches no compiled package source, and @object-ui/auth's tsc --listFilesOnly does not include the touched test file.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2 — (1) POST /repos/objectstack-ai/objectstack/dispatches, the fleet-write relay stroke fw-20261028T035138Z-834461, run 40629064131: pr_create draft #27071 + its assignees leg (os-justin) + labels leg (skip-changeset), read back byte-identical (10554 bytes); (2) POST /repos/objectstack-ai/objectstack/issues/26944/comments via scripts/pm/post-stamped.mjs, this report. git push is not counted.", "open_questions": [ { "question": "merge-queue-reporting.test.ts was deleted as a whole. After #25712 its only assertions read the page's ## Merge Queue section, or a list that exists only to exempt one paragraph of that page. Accept the deletion, or keep a reduced file?", "options": ["A accept: the page is gone and the map names objectui workflows that run nowhere, so nothing live remains to pin; an empty suite fails vitest", "B keep the MUST_SUBSCRIBE_MERGE_GROUP map with a retargeted pin against the root ci.yml merge_group trigger, which check:required-contexts already holds"], "recommendation": "A, because B would duplicate check:required-contexts and check:workflow-status-functions, which the file's own header names as the root carriers of both #3523 holes." }, { "question": "Four vacuity floors moved down to the counts measured after the page left: doc-version-claims workflow-anchored lines 3 to 2 (two floors), markdown-test-inputs scripts candidates 35 to 27, and AGENTS.md readers 4 to 3. Is that the right disposition?", "options": ["A keep the lowered floors, each with its reason inline", "B replace them with exact counts"], "recommendation": "A, because the floors guard against vacuity, not exact membership, and the existing comments already record each prior step down the same way." }, { "question": "The PR's changed lines total 4023 (+138/-3886), almost all of it the 3,243-line page deletion. That is over the 3,000-line human-merge threshold. Who lands it?", "options": ["A maintainer merge or enqueue", "B authorized APPROVED review, then the owning seat lands it"], "recommendation": "A or B per AGENTS.md section 7 class (c); the seat cannot arm it on green alone." } ], "out_of_scope_findings": [ "carrier: none · noted, not filed: comment pointers in ui/scripts already described merge-queue-reporting.test.ts as deriving a floor that #25712 had retired. They are reworded here only because this PR deleted that file, with no wider sweep. The test name 'is classified as a required context — the merge_group floor DERIVES from that list' in check-shell-escape-residue.test.ts still uses present tense.", "carrier: none · noted, not filed: check-lockfile-integrity.mjs says its absolute single-spec-version invariant 'was owned elsewhere'. Since the import retired that comparison (objectstack#25803) and #26058 deleted the pin test, this PR did not verify whether any root gate owns it now. Observation only, not measured." ] }Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
ACCEPT → PR #27071 comment 6461375655 · 2026-10-28T05:25Z · head
11fce5c7e3.The PR changes 4,024 lines (+138/−3,886, almost all of it the deleted page). That is over the 3,000-line human-merge line, so it lands like a Tier H diff. It stays draft, with
needs-user-decisionon the PR and review requested fromGOVERNED_APPROVERS. Once an APPROVED review arrives, this seat flips it ready and enqueues it; the maintainer may also merge or enqueue it directly.pm:dispatchedstays until the merge closes this card viaFixes.Generated by Claude Code
objectstack-fleet commentedon Oct 28, 2026
Landed: PR #27071, merged as
5193634d4fbyos-zhuang(GOVERNED_APPROVERS, APPROVED on11fce5c7e3) · 2026-10-28T06:40ZThe merged diff matches the reviewed head
11fce5c7e3: the sorted +/− lines of merge-base..head and merge^1..merge are hash-identical (37 files, +138/−3886). ACCEPT → PR #27071 comment 6461375655.Fixesclosed this card;pm:dispatchedis removed in this act.ui/content/docs/guide/ci-cd-pipeline.mdis gone frommain, andgit grep ci-cd-pipelinenow matches only the two history lines inpackages/console/CHANGELOG.md.Generated by Claude Code