Skip to content

docs(ui): retire the CI/CD guide page and repoint its readers at the root workflows - #27071

Merged
os-zhuang merged 4 commits into
mainfrom
claude/issue-26944-retire-ui-ci-cd-page
Oct 28, 2026
Merged

os-zhuang merged 4 commits into
mainfrom
claude/issue-26944-retire-ui-ci-cd-page

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #26944

Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么:删除 ui/content/docs/guide/ci-cd-pipeline.md(3,243 行,描述 objectui 已删除的 28 个 workflow)及其导航条目;deployment.md 与根 CONTRIBUTING.md 的 UI 节改为指向根 .github/workflows/;读这一页的测试、台账行与注释指针逐一改指向或随页删除。
  • 为什么改:这一页的作业名、触发条件和必需检查在 monorepo 下全部不成立,贡献者照它理解 ui/ 的 PR 检查会得到错误答案;维护者选定 F14 走「整页退役」(shape A)。
  • 风险与回滚:只动文档、测试与注释,不动产品代码、不动 .github/**;变更行数 4,023 主要来自删页,超过 3,000 行人合线。回滚即整 PR revert。
  • 先看:ui/scripts/markdown-test-inputs.mjs(台账删 11 行)、ui/scripts/__tests__/doc-version-claims.test.ts(删两条清单项、两个下限 3→2)、ui/scripts/__tests__/merge-queue-reporting.test.ts(整文件删除,理由见下)。
  • 两分钟验证:git grep -n ci-cd-pipeline 只剩 packages/console/CHANGELOG.md 的两行历史;node ui/scripts/markdown-test-inputs.mjs --audit 退出 0。
  • 需要你做的:变更行数超 3,000,需要你合并或入队(也可由授权批准后席位落地)。

What changes

Shape A, as the seat picked it on the claim: the page is retired, not rewritten.

  • Deleted ui/content/docs/guide/ci-cd-pipeline.md and its ui/content/docs/guide/meta.json entry.
  • Pointers. ui/content/docs/guide/deployment.md's Next Steps link now points at the root .github/workflows/ on GitHub. The root CONTRIBUTING.md UI Workspace section (where docs: fold the ui/ top-level docs into the root README, ROADMAP and CONTRIBUTING (#26080 slice 1) #27001 folded ui/CONTRIBUTING.md) gains a short ### UI CI subsection: GitHub runs only the root workflows, and ci.yml's Lint UI, Type Check UI, Test UI and Build & E2E UI jobs check a ui/ change. No CI doc was written.
  • Readers. 31 files named ci-cd-pipeline on origin/main cb8988ee1. Each one, classified:
File Class Disposition
ui/content/docs/guide/ci-cd-pipeline.md the page deleted
ui/content/docs/guide/meta.json reader (nav) entry dropped
ui/content/docs/guide/deployment.md reader (link) repointed to the root workflows
check-control-bytes.test.ts, check-doc-fence-languages.test.ts, check-docs-route-eager-closure.test.ts pin, path used as a glob PROBE (does a docs-only change under ui/ start Lint UI?) retargeted to the live content/docs/guide/deployment.md; the pin still guards the ui filter globs
check-doc-example-shared-reader.test.ts, check-handler-key-read-sites.test.ts, check-doc-json-fences.test.ts pin, page half of a mixed it page half removed; the package.json / root ci.yml halves stay
check-doc-example-types.test.ts, check-doc-expression-carriage.test.ts, check-doc-snippet-emitted-census.test.ts, check-skill-eval-tokens.test.ts, check-skill-examples.test.ts pin asserting the page's content it removed with the page, a one-line retirement note left in place
check-new-cross-file-line-citations.test.ts two pins asserting the page's content both its removed; the classifier pin stays
check-required-check-set.test.ts the page as one of the REPAIRED carriers page dropped from REPAIRED; scripts/dependabot-merge-gate.mjs stays and is still asserted
lint-workflow.test.ts the page as one of three SURFACES page surface removed with its markdown-section helper; the root lint-ui job and check-lint-coverage.mjs surfaces stay
merge-queue-reporting.test.ts its last describe asserted the page's ## Merge Queue section whole file removed, see Acceptance notes
doc-version-claims.test.ts two KNOWN_CLAIMS entries on the page, plus header history entries removed (the ratchet's stale-entry test requires it); two vacuity floors 3 → 2; history re-worded
ui/scripts/markdown-test-inputs.mjs ledger rows three notRead rows retargeted with their probes; ten rows removed because --audit reports those tests as no longer candidates; the merge-queue-reporting row removed with its file
markdown-test-inputs.test.ts vacuity floors fed by the removed rows 35 → 27 and 4 → 3, each with its reason
backend.env, saved-view-filter.spec.ts, reserved-auth-features.test.ts, ci-setup-pnpm-wiring.test.ts, coverage-shard-reporter-readability.test.ts, check-lockfile-integrity.mjs, check-new-cross-file-line-citations.mjs, check-required-check-set.mjs, cross-file-line-citation-census.mjs, dependabot-merge-gate.mjs comment pointer re-worded to name the page or its pin test as retired (#26058 deleted the pin test, this PR the page)
packages/console/CHANGELOG.md history untouched

Comment pointers to merge-queue-reporting.test.ts (seven, in check-governed-queue-guard.test.ts, check-shell-escape-residue.test.ts, check-skill-examples.test.ts, check-changeset-presence.mjs, dependabot-merge-gate.mjs, select-affected-tests.mjs, select-type-check-scope.mjs) now say it is retired, so none points at a live file that is not there.

No .github/**, .claude/** or product code is touched. No published file changes: the one file under a public package, ui/packages/auth/src/__tests__/reserved-auth-features.test.ts, is excluded from that package's emitting tsc program (tsc --listFilesOnly: 0 hits for it, control src/index 1 hit), so this carries skip-changeset.

Tests

Head 11fce5c7e.

  • The 24 touched or affected suites, under scripts/pm/os-verify-lock.sh: Test Files 24 passed (24), Tests 842 passed (842), VERDICT command-exit 0 (at 7b575a165; the last commit rewraps two comments, and those two files re-ran green: 2/2, 14/14).
  • pnpm --dir ui exec vitest run scripts/ (the card's acceptance command): 173 passed | 2 failed | 2 skipped of 177 files. Neither failure is in a touched file, and both are local build state, not this diff:
    • date-only-zone-pins-10183.test.ts failed with "ran no case at all". It passed after pnpm --filter '@objectstack/formula...' build (re-run: 1 of 2 files passed).
    • unit-registry-absence-collision.test.ts failed because 30 workspace modules could not be imported (Failed to resolve entry for package "@objectstack/client", an unbuilt dist). It is NOT MEASURED locally; CI builds the closure.
  • node ui/scripts/markdown-test-inputs.mjs --audit: exit 0. Output: 96 candidate test files, all adjudicated; 70 declared entries, all present.

Acceptance notes

  • merge-queue-reporting.test.ts was deleted as a whole. After tooling(ui-merge): governance in-repo — liveness evidence and spec tests stop citing objectui by commit, one sdui-parser, AGENTS.md / pm scripts drop objectui#, ui/AGENTS.md nests, 18 governance workflows merged or retired (parent #25677, 4b/6) #25712, its only assertions were the four in ci-cd-pipeline.md does not keep its own copy of the subscriber list. Each one read the page's ## Merge Queue section, or (keeps the dated exemption honest) a list that exists only to exempt one paragraph of that page. Its MUST_SUBSCRIBE_MERGE_GROUP map names objectui's workflows, which run nowhere, and no other assertion reads it. With the page gone, the file had nothing live to pin, and an empty suite fails vitest. The root gates its header names (check:required-contexts, check:workflow-status-functions) still carry both chore(deps)(deps): bump better-auth from 1.7.0-rc.1 to 1.7.0-rc.2 #3523 holes.
  • The floors were lowered, not removed. doc-version-claims keeps >= 2 workflow-anchored lines (building-crud-app.md, quick-start.md). markdown-test-inputs keeps >= 27 scripts candidates and >= 3 AGENTS.md readers. Each new number is the measured count after the page left, recorded beside the floor.
  • Ledger rows removed, not set to reads: []. --audit fails on a ledger row whose test is no longer a scanner candidate (stale-test). The ten tests named the page as their only candidate literal, so their rows had to go. check-doc-json-fences and check-doc-snippet-emitted-census still walk markdown through imported helpers. The ledger's header says that route is invisible to the scanner.
  • Size. 4,023 changed lines (+138 / −3,886), almost all of it the page deletion. That is over the 3,000-line human-merge threshold, so this lands by the maintainer's merge or enqueue.

Verification

dispatch-gates --commands (26 families) + --ran reconciliation

Derived at 7b575a165 against merge base cb8988ee1. Exit codes were captured before any pipe.

  • node scripts/check-adr-links.mjs :: exit 0
  • node scripts/check-adr-links.mjs --self-test :: exit 0
  • node scripts/check-closing-keyword-parity.mjs :: exit 0
  • node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
  • node scripts/check-comment-mask-corpus.mjs :: exit 0
  • node scripts/check-sdui-manifest.mjs :: exit 0
  • node scripts/check-sdui-manifest.mjs --self-test :: exit 0
  • pnpm --filter @objectstack/spec run check:duration-unit-keys :: exit 0
  • pnpm check:cross-package-test-inputs :: exit 0
  • pnpm check:dispatcher-error-vocabulary :: exit 0
  • pnpm check:driver-memory-census :: exit 0
  • pnpm check:engine-double-contract :: exit 0
  • pnpm check:gitlink-declared :: exit 0
  • pnpm check:nul-bytes :: exit 0
  • pnpm check:published-files :: exit 0
  • pnpm check:query-options-erasure :: exit 0
  • pnpm check:refd-timer-probe :: exit 0
  • pnpm check:skill-identifier-liveness :: exit 0
  • pnpm check:test-source-alias :: exit 0
  • pnpm check:tier-file-adoption :: exit 0
  • pnpm check:type-check-coverage :: exit 0
  • pnpm check:type-check-debt :: exit 0 (re-measure: 0 raw tsc errors, none above the recorded number)
  • pnpm check:undeclared-dep-imports :: exit 0
  • pnpm check:watch-hint-literal :: exit 0
  • pnpm check:where-matcher :: exit 0
  • pnpm --dir ui exec vitest run scripts/ :: exit 1 (the two build-state failures above)

--ran result: 26 derived, 26 run, 0 NOT-MEASURED, 0 UNRUN.

Other local checks
  • cd ui && pnpm run docs:check-links: exit 0, output Links are valid across 13 scan roots.
  • cd ui && pnpm run check:new-line-citations: VERDICT new-cross-file-line-citations: 0 new citation(s), enforcement report-only -> exit 0.
  • eslint --no-inline-config over the 31 touched ui/ .ts/.mjs files: exit 0, 0 warnings.
  • git grep -n 'ci-cd-pipeline' on the head: only two history lines in packages/console/CHANGELOG.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QSeKYoVqdPtw3tbJG1vCDH

…and keep the UI CI pointer inside the section's path rule

Claude-Session: https://claude.ai/code/session_01QSeKYoVqdPtw3tbJG1vCDH
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 28, 2026
@github-actions github-actions Bot added size/xl documentation Improvements or additions to documentation tests labels Oct 28, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT · domain:devx#2 · head 11fce5c7e3 · 2026-10-28T05:22Z

维护者速读

  • 改了什么:删除 ui/content/docs/guide/ci-cd-pipeline.md(3,243 行,描述的是 objectui 已不再运行的 workflow)和它的导航条目;deployment.md 与根 CONTRIBUTING.md 的 UI 节改为指向根 .github/workflows/;读这一页的测试、台账行和注释指针逐一改指或随页删除。
  • 为什么改:这一页写的作业名、触发条件和必需检查在 monorepo 下全部不成立,贡献者照它理解 ui/ 的 PR 检查会得到错误答案。卡片推荐「整页退役」(shape A),席位认领时选定 A。
  • 风险与回滚:只动文档、测试和注释,不动产品代码,不动 .github/**;回滚即 revert 本 PR。变更 4,024 行(+138/−3,886),基本都是删页,超过 3,000 行人工合并线。
  • 先看:ui/scripts/markdown-test-inputs.mjs(台账删 11 行)、ui/scripts/__tests__/doc-version-claims.test.ts(删两条清单项、两个下限 3→2)、ui/scripts/__tests__/merge-queue-reporting.test.ts(整文件删除:它剩下的断言全部读这一页)。
  • 两分钟验证:git grep -n ci-cd-pipeline 只剩 packages/console/CHANGELOG.md 的两行历史;CI 在本 head 上 44 绿、15 按路径跳过、0 红。
  • 需要你做的:变更超 3,000 行,需要 GOVERNED_APPROVERS(os-zhuang 或 hotlong)批准后由本席入队,或你直接合并/入队。已请审。

席位意见:合入。删页加改指,读者清单 31 个文件逐个有去向;被删的测试只断言这一页的内容,没有丢掉任何对活代码的守护。

Shape: draft → main, Fixes #26944 on the first line, and the body carries no other closing keyword. Label skip-changeset: docs, tests and comments only, and no published package is touched. Assignee os-justin. Report: os-dev-report 6460227618.

Seat's own read of the non-test diff: each sentence checked against origin/main.

  • CONTRIBUTING.md ### UI CI: ci.yml has jobs named Lint UI, Type Check UI, Test UI and Build & E2E UI (L3365/3830/3895/4216 on main). Each one is gated on the filter job's ui_tree/ui outputs, so "they run when a pull request changes ui/" holds.
  • deployment.md: the link now points at the root workflow directory.
  • meta.json: the entry is dropped.
  • The comment rewordings in ui/scripts/*.mjs change tense only, plus one NOT_A_GATE reason string in dependabot-merge-gate.mjs. That string drops "ci-cd-pipeline.md says…" and keeps the live claim about live-e2e.yml's own header.

Seat's read of the deleted test: on main, merge-queue-reporting.test.ts opens with const DOC = 'content/docs/guide/ci-cd-pipeline.md'. Its only describe is ci-cd-pipeline.md does not keep its own copy of the subscriber list (#4154), and all four of its cases read the page. Nothing live is left to pin.

Gates: at head 11fce5c7e3, 59 check-runs: 44 success, 15 skipped, 0 failure. check-expected-skips --pr 27071: OK, every one of the 15 skips is in main's roster. check-governed-merges --pr 27071: 0 of 37 paths are governed; size 4,024 > 3,000, so the human-merge terminal applies.

Open questions:

  1. A. Delete merge-queue-reporting.test.ts whole. Its map duplicates check:required-contexts.
  2. A. Keep the lowered vacuity floors with their inline reasons. These are floors, not membership counts.
  3. Landing follows AGENTS.md §7 class (c): an authorized APPROVED review and then this seat, or the maintainer's merge or enqueue.

Out of scope: the two notes in the report (present-tense test name in check-shell-escape-residue.test.ts; whether a root gate still owns the single-spec-version invariant) are observations with no measured defect. Not filed. The second goes to the filing gate after landing, if a reading shows a gap.

Landing: the PR stays draft. needs-user-decision goes on the PR and review is requested from GOVERNED_APPROVERS in this act. After an APPROVED review, this seat flips it ready and enqueues it.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Decision-box note · director seat · 2026-10-28T05:26Z

needs-user-decision removed from this PR under objectstack#26671 (the director seat no longer presents PRs to the maintainer; the PR's own 维护者速读 and the GitHub review request are the digest). The four pieces are present on head 11fce5c7e3: seat record ACCEPT (6461375655), 维护者速读 in the body, review requested from hotlong + os-zhuang through the relay, 64 check-runs green, mergeable. The >3,000-line floor (SKILL.md 「路径分叉」, +138/−3,886) makes the landing the maintainer's act on GitHub: approve and enqueue, or approve and let the domain:devx seat enqueue. No pm:* state is changed by this note.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xl skip-changeset PR has no user-facing published change; bypasses the changeset gate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(ui): the CI/CD guide page describes objectui's 28 deleted workflows; retire it and repoint its ~28 readers (F14, parent #25677)

3 participants