From 593fa8ec4368bb9aa880dab6c5800c31dd0a693a Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 28 Oct 2026 15:40:24 +0000 Subject: [PATCH 1/2] =?UTF-8?q?pm-dispatch(runbook):=20the=20desktop-launc?= =?UTF-8?q?hed=20cloud=20os-dev=20path=20as=20a=20fifth=20cloud=20lesson?= =?UTF-8?q?=20=E2=80=94=20pointer=20base=20branch,=20inherited=20tier,=20r?= =?UTF-8?q?elay,=20post-PR=20pushes=20that=20fire=20no=20CI,=20hand-back?= =?UTF-8?q?=20and=20visibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 云卡 section gains 五、桌面 start_session (target: cloud): six measured differences from the API path, each with its re-check where one exists. Paid line-for-line inside the section by merging restatements (the lane-first title rule shown by its own form, the turn-end ban stated twice, the poke stall stated twice, the account-scoped not-found reading over three lines). execution-duties' cloud rows gain one pointer carrying the archive duty for desktop-launched sessions, paid by merging the closure / fixed-overhead rows. Both files stay at their ceilings (245, 188). Claude-Session: https://claude.ai/code/session_017xRBcUi2qhP1eKRbZJ1Ze1 Co-authored-by: Claude --- .../references/dispatch-runbook.md | 32 +++++++++---------- .../references/execution-duties.md | 4 +-- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index 14a3ff8fe25..5e8d1beb85e 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -105,26 +105,26 @@ - 无权执行 ⇒ 点名有权者,并当轮换标把状态搬进对方的收件箱视图或决策箱。 - ⛔ 不许只留一条评论等人路过:评论不是任何人的收件箱,标签才是。 -## 云卡(`mode:cloud`)四课 - -- 一、授权面随 source 不随环境:trigger 拉起的会话无仓库授权,只读勘察。 -- `create_session` 带 `source_url` 出生即持推送授权。 -- 同时带 `outcome_branch`(= 认领分支)、显式 `model`(trigger 流不可指模型)、`title`。 -- `title` 以车道名开头,⛔ 不叫 os-dev,形如 `⚡ <车道> #<单号> <短语>`。 -- 二、派发词必带自驱条款:云会话回合一结束即停摆等 poke。 -- ⛔ 不为提问或中报结束回合;实现取舍自定记入 `open_questions`;碰产品行为/契约报 fork。 -- 合法回合终点只有两个:推送完成加终报,或硬阻塞详报。 +## 云卡(`mode:cloud`)五课 + +- 一、授权随 source 不随环境:trigger 会话无仓库授权只读,`create_session` 带 `source_url` 可推送。 +- 带 `outcome_branch`(认领分支)、显式 `model`、`title`(`⚡ <车道> #<单号> <短语>`,⛔ 不叫 os-dev)。 +- 二、派发词必带自驱条款:云会话回合一完即停摆,合法终点仅推送加终报、硬阻塞详报。 +- 取舍自记 `open_questions`,产品行为/契约报 fork;姊妹仓未 attach 够不着,跨仓跟进卡 PM 代立。 - 三、交付通道:dev 自开 draft PR(`Fixes #` 只写正文,`partof-closing-keyword` RULE 2,含验证记录)。 -- 未 attach 的姊妹仓够不着,跨仓跟进卡由 PM 代立。 - trigger 定时会话维持降级通道:推送 outcome branch,终报走最后一条会话消息,PM 代开 draft PR。 -- 四、云卡 draft PR 一存在立即 `subscribe_pr_activity`,这是硬步骤。 -- 监控与转向:`get_session` 读实时状态,IDLE 加分支未推送 = 停摆待 poke。 -- 投递消息用绑会话 poke 触发器:`create_trigger` 带 `persistent_session_id` 加 `fire_trigger`,用后删。 +- 四、draft PR 一存在即 `subscribe_pr_activity`(硬步骤);`get_session` 读状态,IDLE 且未推送即停摆。 +- poke 用绑会话触发器:`create_trigger` 带 `persistent_session_id` 加 `fire_trigger`,用后删。 - 巡检退为兜底心跳,只补订阅盲区:会话停摆、未开 PR 的分支、姊妹仓动静。 - roster 不可达与 `SendMessage` 同裁,`ListAgents` 同列不到,⛔ 不复测。 -- 会话句柄是账号作用域的:三个会话工具对另一账号建的会话一律答 `not found`。 -- 该答案与从不存在不可区分,⛔ 永不读作死亡信号。 -- 跨账号接班活性只认 GitHub 产出读数,draft-PR 时点交报正为此存在。 +- 会话句柄按账号作用域:三个会话工具对另一账号建的会话一律答 `not found`。 +- 该答案与不存在不可区分,⛔ 不读作死亡信号;活性只认 GitHub 产出,draft-PR 即交报为此。 +- 五、桌面 `start_session`(`target: cloud`)实测六异。① 克隆发起会话所记分支,已删即开局死: +- 先推同名指针分支到 `origin/main`,⛔ 不提交其上;复核 `get_session`→`branch`、`ls-remote --heads`。 +- ② `model`/`effort` 同 trigger 流不可指:继承发起席位档,认领写明,或从卡档位的会话发起。 +- ③ 中继凭会话 id 自选 `dispatch`,⛔ 不传 `--session`;④ 席位 `list_sessions` 只列本地,不见它。 +- ⑤ Claude GitHub App 的 PR 后推送不触发工作流(复核 check-suites):末推后开 PR 或用户令牌重推。 +- ⑥ 收不到 poke 也发不了消息,只经 PR 与报告评论交回;REWORK 由本地 os-dev 同分支同认领接。 ## 卡线程(`mode:thread`) diff --git a/.claude/skills/pm-dispatch/references/execution-duties.md b/.claude/skills/pm-dispatch/references/execution-duties.md index 6c549005d31..4663a766fe1 100644 --- a/.claude/skills/pm-dispatch/references/execution-duties.md +++ b/.claude/skills/pm-dispatch/references/execution-duties.md @@ -143,9 +143,9 @@ - 资源与后端:S 级机械 + M ⇒ `mode:subagent`;S 级但不机械(判断面在设计不在门禁)按 M 待遇。 - `mode:cloud` 只保留给 L/XL、活过 PM 会话的工作、浏览器/dogfood 验证;build 重的 M 卡逐卡判。 - 申报文件面写 `packages/spec/src/**` 且至少另一包 ⇒ build 重,派 `mode:cloud`,一卡一容器。 -- 一容器同时至多跑一个 build 重子代理;云会话建闭包拉 turbo 远程缓存。 -- 首张这类派发实测固定开销(安装 + 拉缓存)并记在其卡上。 +- 一容器同时仅一个 build 重子代理;云会话建闭包拉 turbo 远程缓存,首张实测固定开销记卡。 - 归档义务只落在云卡;OOM 死的单独重派;判定连同档位写进认领评论。 +- 桌面 `start_session` 起的云卡照 runbook〈云卡五课〉五;席位看不见其会话,归档落维护者。 - 一次性云卡用 `create_session`,⛔ 不用 create_trigger+fire;trigger 流只留给定时/重复型。 - 接手中断的 dev:先试 SendMessage 复活,不可用才走接手协议,⛔ 不重跑原派发词。 From 3809c88b2cbf539f6e7a22ac1f7c203f2ed4d109 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 28 Oct 2026 16:16:57 +0000 Subject: [PATCH 2/2] pm-dispatch(runbook): the pointer branch line names what the branch points at, not where to push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 「推…到 `origin/main`」 read as a push destination; 「(= `origin/main`)」 states the pointer's target. Same width (120 bytes), paid in place. Claude-Session: https://claude.ai/code/session_017xRBcUi2qhP1eKRbZJ1Ze1 Co-authored-by: Claude --- .claude/skills/pm-dispatch/references/dispatch-runbook.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/skills/pm-dispatch/references/dispatch-runbook.md b/.claude/skills/pm-dispatch/references/dispatch-runbook.md index 5e8d1beb85e..0286f5b7de5 100644 --- a/.claude/skills/pm-dispatch/references/dispatch-runbook.md +++ b/.claude/skills/pm-dispatch/references/dispatch-runbook.md @@ -120,7 +120,7 @@ - 会话句柄按账号作用域:三个会话工具对另一账号建的会话一律答 `not found`。 - 该答案与不存在不可区分,⛔ 不读作死亡信号;活性只认 GitHub 产出,draft-PR 即交报为此。 - 五、桌面 `start_session`(`target: cloud`)实测六异。① 克隆发起会话所记分支,已删即开局死: -- 先推同名指针分支到 `origin/main`,⛔ 不提交其上;复核 `get_session`→`branch`、`ls-remote --heads`。 +- 先推同名指针分支(= `origin/main`),⛔ 不提交其上;复核 `get_session`→`branch`、`ls-remote --heads`。 - ② `model`/`effort` 同 trigger 流不可指:继承发起席位档,认领写明,或从卡档位的会话发起。 - ③ 中继凭会话 id 自选 `dispatch`,⛔ 不传 `--session`;④ 席位 `list_sessions` 只列本地,不见它。 - ⑤ Claude GitHub App 的 PR 后推送不触发工作流(复核 check-suites):末推后开 PR 或用户令牌重推。