Repository navigation
docs(pm-dispatch): objectui keeps two lanes, domain:ui and domain:skills; its domain:spec, domain:devx and domain:tooling retire - #25213
Conversation
…lls; its domain:spec, domain:devx and domain:tooling retire The maintainer ruled 甲 on 2026-10-22: objectui has no spec of its own and its devx work merges into ui, so objectui cards go to exactly two lanes — domain:ui (all objectui code) and domain:skills (the published skills/**). The objectui domain:spec / domain:devx / domain:tooling streams retire in objectui only; objectstack's lanes are untouched. The protocol stays objectstack domain:spec's, and a cross-layer feature's objectui child is a domain:ui card. - cross-repo-coordination.md: the three-stream lines become the two-lane routing, the retirement, and the protocol-stays-spec rule (51 → 51 lines). - lanes/ui.md: the seat's scope is the whole objectui code face, with the protocol line folded in from the former packages/spec line (38 → 38). - lanes/devx.md, lanes/spec.md: the objectui scope lines are deleted. - ensure-pm-labels.sh: the objectui domain:devx / domain:spec rows are gone, domain:ui's description names the whole scope, and the block and the header record the retirement with the ruling's words and date. - check-half-states.mjs: the H38 sibling-board fixture is re-spelled to domain:ui so no retired lane name survives as a canonical example. Claude-Session: https://claude.ai/code/session_01FRiDG7bG4jkZL2tQKpJgGv Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Inputs: card #25191 (body with the maintainer's verbatim ruling 甲, the Claim 6340134773, the os-dev report 6340752952); PR #25213 body, file list (6 files, +52/−32) and the diff at the head; the head's check-runs (44: 25 success, 13 skipped, 6 in progress at this write); ① Derived judgments
② Semver level
③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
席位核对ACCEPT ·
Generated by Claude Code |
Requested by Bill · project thread
Fixes #25191
Clause-②: no
Metadata-protocol: none
What changed
The maintainer ruled on 2026-10-22, quoted verbatim from the card: 「objectui 只有 skills 是特殊的,他本身没有 spec 的概念。devx 我感觉可以和 ui 合并」, and on the options 「甲,现在做」. After this PR, objectui has exactly two lanes:
domain:ui— all objectui code: the published library andapps/*;packages/types, the schema corpus and the spec-pin coupling;.github/,scripts/, the build and release pipeline and the gate tools; docs, which follow the surface they document.domain:skills— the publishedskills/**.domain:spec,domain:devxanddomain:toolingretire in objectui only. objectstack's own lanes are untouched. The protocol stays objectstackdomain:spec's: a cross-layer feature keeps rule 2 (a parent plus per-layer children, spec and backend first), and its objectui child is now adomain:uicard.domain:cloudstays a parking label, unchanged..claude/skills/pm-dispatch/references/cross-repo-coordination.mddomain:spec.claude/skills/pm-dispatch/references/lanes/ui.mdpackages/specline is folded into it.claude/skills/pm-dispatch/references/lanes/devx.md.claude/skills/pm-dispatch/references/lanes/spec.mdscripts/pm/ensure-pm-labels.shdomain:devx/domain:specrows are gone; the objectuidomain:uidescription names the whole scope (93 characters, under the 100 cap); the block and the header record the retirement with the ruling's words and datescripts/pm/check-half-states.mjsdomain:devx @ objectuitodomain:ui @ objectui(the docblock keeps the census provenance)SKILL.mdhas zero edits: its only objectui mention is the 域车道 table's unanchored row (repo:objectuifor UI defects); there is no 多仓协调 line about devx / spec pulls on objectui, so nothing to restate (card item 4, re-measured onorigin/mainate5f194b).Why re-spell the H38 fixture. It is a fixture, not a rule, and either choice passes the self-test. Re-spelled because a retired lane name standing as the canonical example of a sibling-board seat title is exactly the trap the label script's own header names for
area:*: a retired name surviving agit grepas though it were still a value, for the next AI to copy. Immediate retirement, no dual spelling.Label objects on objectui. The relay op table (
scripts/pm/fleet-write/ops.mjs) carries no label-object op at all —labels_add/labels_removeact on an issue's labels, not on the objects — and this session cannot read objectui (the API answers 403 for the repository), so the live objects' current state is NOT MEASURED here. The script stops creatingdomain:devx/domain:specon objectui; the object cleanup is the separate PM act the script's header describes, with the exact strokes in the report comment on the card.维护者速读(草稿)
改了什么。 objectui 仓从三条流(devx / spec / ui)收成两条车道:
domain:ui管 objectui 全部代码,domain:skills管仓根发布的skills/**。objectui 的domain:spec/domain:devx/domain:tooling退役(仅 objectui);objectstack 自己的车道不动。改的是 PM 技能参考四个文件、标签词表脚本与半态巡查的一个夹具。为什么改。 你 2026-10-22 的裁决 甲:objectui 本身没有 spec 的概念,devx 与 ui 合并。实测 10-08 → 10-22 期间 objectui 的 spec 卡全是本仓
packages/types、docs、widget 追协议,devx 卡全是本仓 CI、分片、pin 与发版工具,都由 objectui 的人在做;协议本体只在 objectstack。风险与代价(含回滚)。 零发布面,
skip-changeset。风险只在车道表:座位每次选卡都读这几行,改错会把 objectui 卡派错席。回滚 = revert 本 PR;objectui 上已被分诊改贴到domain:ui的 4 张卡不受本 PR 影响。标签对象的清理是落地时席位另一笔动作,本 PR 不碰 objectui。席位意见。(席位定稿时填写)
你要做的。 无:
.claude/**是 Tier S,席位做达档契约复核 PASS 后入队落地。Acceptance notes
lanes/devx.md(36 → 35) andlanes/spec.md(43 → 42) now sit one line under their ceilings inscripts/pm/check-skill-line-ratchet.mjs; lowering the two rows is legitimate any time and is left out of this PR to keep the file surface the claim declared.domain:skillsobject; the card names that lane as staying, so the object presumably already exists on objectui. Not measured here (403); if absent, a row with its named reader is a one-line follow-up.check-half-states.mjs: no test file outside the script names it (git grepoverscripts/**tests andtest/**found none), so its own--self-testis the whole suite owed by the edit.Gates
Local subset at head
db3b205, each exit captured before any pipe (the full derived list and the--ranreconciliation are in the report comment on the card):pnpm check:pm-skill-ratchetpnpm check:pm-skill-id-lintpnpm check:pm-governed-prosepnpm check:pm-label-desc-cappnpm check:skill-frame-syncpnpm check:pm-half-states(the edited script's own self-test)pnpm check:pm-dispatch-gatesdispatch-gates.mjs --commandson the diff, 51 families)--ranreconciliation)CI families run by the PR's check-runs; the seat's ACCEPT reads those.
Generated by Claude Code