Skip to content

docs(pm-dispatch): give the domain:ui lane its versioned job description - #17243

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-17236-lanes-ui-md
Sep 10, 2026
Merged

docs(pm-dispatch): give the domain:ui lane its versioned job description#17243
os-zhuang merged 1 commit into
mainfrom
claude/issue-17236-lanes-ui-md

Conversation

@os-justin

@os-justin os-justin commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Fixes #17236

.claude/skills/pm-dispatch/SKILL.md rules that a lane's 范围与常设承诺 are a job
description, not state, and are versioned in references/lanes/ under the lane's own
name. The directory held nine such files; domain:ui — the one lane the multi-repo
charter itself ADDS beyond the domain table, and the one given the widest residual
scope of objectui's three streams — had none. This PR writes it. ⛔ No lane assignment
changes, ⛔ no SKILL.md edit: the rule is satisfied by the file existing.

The file — .claude/skills/pm-dispatch/references/lanes/ui.md (38 lines, widest line 117 bytes, no table)

# 车道岗位说明:domain:ui

见 SKILL.md 〈多仓协调〉;本文是本席的岗位说明,现值状态恒在座位贴,⛔ 不迁入本文件。

## 形态

- 本席为姊妹仓执行座位:在 objectui 仓认领、派发、复核、落地。
- ⛔ 不产 `domain:*`、type 与定级,中央分诊唯一生产,见 SKILL.md 多仓协调规则 1 与 4。
- 误标 ⛔ 不自改:挂 `pm:retriage` 加异议评论同笔,见同节规则 4。

## 范围

- 三流分流的残余流归本席:发布库 `@object-ui/*``apps/*`,判据见 SKILL.md 〈多仓协调〉。
- objectui 的 `domain:devx``domain:spec` 卡归各自跨仓车道,⛔ 不归本席。
- 症状位置不改流向,docs 随所记录的面走,两条同上节,⛔ 不在此另抄。
- 落点不明留分诊首触,⛔ 不猜、不代判。

## 常设承诺

- 构建产物经 `pnpm objectui:refresh` 回流,见 SKILL.md 〈多仓协调〉。
- 回流后的 console pin bump 是 objectstack 的单张卡,⛔ 永不做本仓 PR 的 rider。
- 凡触 `packages/spec` 一律转 `domain:spec` 座位,见 SKILL.md 〈多仓协调〉。
- `scripts/pm/**` 单写手恒在 objectstack 侧 ⇒ 本席的工具需求走上游卡带 `Blocked-by:` 回链。
- 受管面五项含仓根发布 `skills/**`,清单、判据与禁令见 objectui AGENTS.md §9 受管面段。
- ⇒ 命中即整 PR 停在 draft 等人合,⛔ 不 ready、不入队、不 auto-merge、不自合、不留批准。
- 未命中的 PR 按同节走合并队列落地;changeset 与版本纪律见 objectui AGENTS.md §9。
- 半状态巡查在本仓有载体:定时 workflow 与 sweeper 皆在,自 objectstack 移植。
- 锚 issue 未配置 ⇒ 写锚步骤 skip,发现只落 run summary,绿不等于已交付读锚腿。
- ⇒ 手工半边照 `hotcrm.md` 那条办,并每轮实测锚是否已配,⛔ 不沿用本行读数。

## 席内判断

- 卡正文是快照不是状态:⛔ 不凭正文单读裁决或派发,读全线程并对 `origin/main` 重测。
- `pm:queue` 在本仓兼指已分诊与可派发 ⇒ 逐张重验可派性,⛔ 不按标签直派。
- 零读数恒配点亮的正控,且正控须经被测机制本身生效;本仓 search 假零,查重只引命中。
- 脚本能滚动不证明用户能滚动:可达性断言必须驱动真实输入管道。
- 落地验证按内容,正控须在合并前证明会响,⛔ 不按 sha 判已落地。
- 档位与复核豁免边界读源码与 `references/contract-review.md`,⛔ 不凭记忆或继承的注记。

Where each line points — ⛔ no rule is restated

The directory exists to prevent 「同一概念两份真理」, so every line that touches a rule
stated elsewhere is a POINTER plus, at most, the one-clause consequence for this seat.

指向
形态 不产 domain:* / type / 定级 SKILL.md 〈多仓协调〉规则 1(中央分诊唯一生产)与规则 4(执行座位信任标签)
形态 误标挂 pm:retriage SKILL.md 〈多仓协调〉规则 4 的同一句
范围 残余流 = 发布库 @object-ui/*apps/* SKILL.md 〈多仓协调〉的 objectui 三流分流条
范围 domain:devx / domain:spec 归各自跨仓车道 同上,三流分流的另外两流
范围 症状位置不改流向、docs 随所记录的面走 同上;本文只指,⛔ 不抄
范围 落点不明留分诊首触 同节「落点不明留分诊首触」
常设承诺 pnpm objectui:refresh 产物回流 SKILL.md 〈多仓协调〉的产物回流条
常设承诺 console pin bump 是 objectstack 的单张卡 SKILL.md 分诊座位职责的 console bump 单条 + 〈多仓协调〉「pin bump 不做 rider」
常设承诺 凡触 packages/spec 一律转 domain:spec SKILL.md 〈多仓协调〉规则 5 的同名句
常设承诺 scripts/pm/** 单写手在 objectstack SKILL.md 〈多仓协调〉的单写手条;本席的一句后果 = 上游卡带 Blocked-by:
常设承诺 受管面五项、禁令、合并队列、changeset objectui AGENTS.md §9(受管面段 + 版本号策略);⛔ 本文不复述清单
常设承诺 半状态巡查载体 实测,非指针 —— 见下
席内判断 六条 现任 domain:ui @ objectui 座位贴自己记录的常设判据,⛔ 无一条自创

The one measured claim, and how it was measured

lanes/hotcrm.md records its repo's patrol carrier as a fact, so this file does the same
for objectui. Measured on objectui main today, not assumed:

  • .github/workflows/half-state-patrol.yml — present (adopted copy of objectstack's).
  • scripts/pm/check-half-states.mjs — present, and it is the ONLY file in objectui's
    scripts/pm/ (so ⛔ no dispatch-gates.mjs there; that reading is a per-repo gate fact
    and belongs to references/platform-readings.md, ⛔ not to a lane charter).
  • The latest scheduled run: job success, step Update the pinned anchor issue → skipped,
    step Publish the rendered body to the run summary → success.

⇒ the carrier EXISTS and the run is green, but no anchor issue is configured, so the read-anchor
leg is empty and the findings only reach the run summary. The file states exactly that, names the
manual half (the hotcrm.md clause), and requires the seat to RE-MEASURE the anchor each round
rather than inherit this reading.

⚠️ This corrects the dispatch brief's assumption C (「objectui has no half-state-patrol.yml」)
and it also corrects the live seat post, which still records the patrol as DEAD here — that was
true until earlier today; the degrade-gracefully fix has since landed and the last two scheduled
runs are green.

Ratchet registration — ⛔ not a raise

Two rows added to scripts/pm/check-skill-line-ratchet.mjs, placed and commented the way the
sibling lane rows are (the triage.md row is the model: a NEW file, an added row, no other row
moves):

  • CEILINGS: .claude/skills/pm-dispatch/references/lanes/ui.md38 (the landed count, headroom 0)
  • MAX_TABLE_ROW_BYTES: same key → 0 (the file carries no table)

⛔ No existing ceiling or pin moves; the map-wide total rises by exactly the new file's own count.
The gate's own verdict lines:

✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/lanes/ui.md: widest table row is 0 bytes (pin 0; headroom 0).
✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/lanes/ui.md is 38 lines (ceiling 38; headroom 0).

The self-test does NOT pin a CEILINGS key COUNT and does NOT pin a lanes-directory file list —
it DERIVES the roster from disk (laneFilesOnDisk() + laneRosterVerdict), and an empty roster is
red rather than vacuously green. So there is no count to move in this PR; the new file simply had
to carry a row or that derived assertion would have gone red. --self-test: 157 cases pass.

维护者速读(草稿)

改了什么

domain:ui(objectui 前端执行席)补上它的岗位说明文件,并把该文件登记进技能行数棘轮。
没有改任何路由规则、没有改 SKILL.md、没有动 objectui 仓的任何文件。

为什么改

派发协议里写着「每个车道的范围与常设承诺版本化在车道文件里」,但九个车道文件里恰恰缺 domain:ui
这一个 —— 而它是协议自己新增、且承接面最宽的那个车道。规则有、载体无,新座位上任只能靠口口相传和
翻座位贴,容易把「现值状态」当成「岗位说明」继承下去。

风险与代价(含回滚)

代价是多一个每次座位会话都要读的文件(38 行,已按 headroom 0 登记,之后再长必须先删内容)。
风险主要是「写重复」—— 若把 SKILL.md 已有的规则再抄一遍,就制造了第二份真理,以后两边会漂移。
本 PR 的写法是逐行指针,上面「Where each line points」表可逐条复核。回滚 = 删文件 + 撤两行登记,
无其它依赖,不影响任何运行时行为。

席位意见

你要做的

确认两点即可合并:①「半状态巡查」那三行是本文件唯一的实测事实,读起来是否是你要的记录方式;
② 席内判断六条是否都值得作为该席的常设判据(它们全部取自现任座位贴,⛔ 无一条自创)。

Acceptance notes

  • 受管面(.claude/**)⇒ 本 PR 停在 draft 等人合;⛔ 未 ready、未入队、未 auto-merge、未留批准。
  • skip-changeset:.claude/**scripts/pm/** 都不在任何包的 files[] 发运面内,不发布任何东西;
    ⛔ 未创建 changeset,也没有任何门禁要求一个。
  • 门禁:dispatch-gates.mjs --commands 推导出 37 条,全部前台跑绿(check:pm-dispatch-gates
    超前台上限改 detach + tail --pid)。一条 check:doc-formula-expressions 首次以 exit 3
    = PREREQUISITE NOT MET
    返回(它自己印明「Nothing was measured … NOT a finding」),按它给的
    命令建好 @objectstack/formula + @objectstack/lint 后重跑,exit 0。
  • ⛔ 文件内不出现 issue 编号(check:pm-skill-id-lint 机械强制),所以本文件对姊妹卡与事故一律不引号。
  • filed as [finding] .claude/agents/os-dev.md states sibling repos have no scripts/pm/ — objectui has one, and a dispatch built on that premise reached a governed file this shift #17244:.claude/agents/os-dev.md 有一行写「姊妹仓(objectui / cloud)没有 scripts/pm/」,
    实测 objectui 有 scripts/pm/check-half-states.mjs 与它的定时 workflow。该行的操作性结论(objectui 没有
    dispatch-gates.mjs,门禁族要手工推)仍然成立,错的是它给出的前提面 —— 而本次派发词的假设 C 正是同一个
    前提,差一步就被版本化进受管文件。⛔ 本 PR 不修它:不同文件、不同卡。
  • noted, not filed:现任 domain:ui 座位贴仍记「半状态巡查在本仓 DEAD」,已被今日两次绿跑推翻;
    座位贴是现值状态、由在任座位 PM 单写,⛔ 不是本 PR 能碰的东西。承接者:该席下一轮刷新。

Generated by Claude Code

`references/lanes/` held nine job descriptions and `domain:ui` — the one lane
the multi-repo charter itself adds, with the widest residual scope of the three
objectui streams — had none, while SKILL.md rules that 范围与常设承诺 are
versioned in `references/lanes/<lane>.md`.

Adds `references/lanes/ui.md` in the directory's own shape (形态 / 范围 /
常设承诺 / 席内判断), written as pointers to the rules already stated in
SKILL.md 〈多仓协调〉 and objectui's AGENTS.md §9 — no rule is restated, so no
concept gains a second source of truth. 席内判断 are the seat's own standing
tests, taken from the live `domain:ui @ objectui` seat post.

Registers the new file in the line ratchet: one `CEILINGS` row seeded at the
landed count of 38 (headroom 0) and one table-row pin at 0 (the file carries no
table). Registration only — no existing ceiling or pin moves.

Claude-Session: https://claude.ai/code/session_01MoTv7pn338AZ71owsp19gQ
Co-authored-by: Claude <noreply@anthropic.com>

Copy link
Copy Markdown
Collaborator Author

维护者速读

改了什么 — 新增一个文件 .claude/skills/pm-dispatch/references/lanes/ui.md(38 行):objectui 前端执行席(domain:ui)的岗位说明,分四段(形态 / 范围 / 常设承诺 / 席内判断),每一行要么指向 SKILL.md 或 objectui AGENTS.md 已有的规则,要么是该席自己座位贴上已在用的判据;唯一的实测事实是 objectui 的半状态巡查载体(workflow 与 sweeper 都在、锚 issue 未配置、发现只落 run summary),写法与 hotcrm 那份一致并要求每轮重测。另在行数棘轮里为它登记两行(38 行上限、无表格),不动任何既有上限。

为什么改 — 派发协议规定「每个车道的范围与常设承诺版本化在 references/lanes/<lane>.md」,九个车道文件里唯独缺 domain:ui,而它是协议自己新增、承接面最宽的车道;规则有载体无,新上任的席位只能靠翻座位贴口口相传。分诊席今天实测立卡,本席按车道自分诊准入后派出。

风险与代价(含回滚) — 纯文档,不改路由、不改 SKILL.md、不动 objectui 仓;主要风险是写重复造成两份真理,本 PR 逐行做成指针,PR 正文有逐行指向表可核。多一个每次座位会话都要读的 38 行文件,已按零余量登记。回滚 = 删文件并撤两行登记,无其它依赖。

席位意见 — 本席以契约复审档复核通过:逐行核过指向、门禁与自测在该提交上全绿、CI 30 项全绿、合并无冲突。建议合并。dev 顺手发现 .claude/agents/os-dev.md 一句「姊妹仓没有 scripts/pm/」与事实不符(objectui 有),已另立裸卡 #17244 交分诊,本 PR 不碰。

你要做的 — 看两点:① 席内判断六条是否都值得作为该席常设判据(全部取自现任座位贴);② 半状态巡查那三行的记录方式是否是你要的。认可即人工合并本 PR(受管面,席位不合)。


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review September 10, 2026 01:06
@os-zhuang
os-zhuang added this pull request to the merge queue Sep 10, 2026
Merged via the queue into main with commit d38fc81 Sep 10, 2026
46 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-17236-lanes-ui-md branch September 10, 2026 01:28
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 needs-user-decision size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[finding] domain:ui is the one live lane with no references/lanes/<lane>.md — the file SKILL.md :271 says every lane's charter is versioned in

3 participants