Skip to content

[skill] pm-dispatch:services 车道 08-05/06 班次交接沉淀的 10 条 SKILL 更新建议(28 PR / 两次 CI 红 / 三次前提证伪) #5885

Description

@hotlong

来源:services 车道前任 PM 会话 session_01BWS4heBoAitLmzCLhcYdbK 的交接清单(该班 28 PR 合并、两次 CI 红、三次前提证伪的实测沉淀;维护者 2026-08-06 转交现任 services 座位处置)。本单为留档 + 待实施件

⚠️ 同文件族协调:#5741(三条 operational note)、#5845(队列管家座位协议文本)同改 .claude/skills/pm-dispatch/SKILL.md。三单应合并实施或严格串行,分开并行合会互相冲掉。

高价值(建议必改)

  1. 派发模板:门清单必须从 workflow 文件枚举,禁止凭记忆挑。 出处:fix(service-automation): 启动路径三条日志的外来 cause 改走结构化 meta (#5661) #5738 首轮 CI 红 —— dev 本地跑了六个门但漏 check:engine-double-contract(不在其记忆清单里);改为「从 lint.yml 逐个列门跑全」后被后续四个 dev 继承,再无门红。应为模板硬性条款而非口口相传。
  2. 派发模板:PM 附带的机制性指导必须标注「假设,须实测」。 出处:三次前提证伪 —— automation: resumeAuthority defaults to 'any', so every future pausing node ships fail-open — ADR-0044 says this is "tracked separately" and nothing tracks it #5561(「注册告警无需动 spec」:Zod default 抹掉未声明,不可表示)、fix(analytics,rest)!: read-scope 拒收改判 READ_SCOPE_COMPILE_FAILED/500,路由的 message 正则名单完全退休 #5808(「500 自动进 withhold 路径」:启发式 11/11 不认,只删名单会把泄漏搬进 500 body)、analytics: where 里点名不存在的字段仍然一路到驱动 —— #4437(measure)/ #5520(dimension)之后,filter 面是同一个缺陷剩下的第三个 param #5669(「数组 where 闸门不看」:下沉后逐字同谓词)。三次 dev 都用实测顶回并保住了裁决意图。模板应区分「裁决(不可重裁)」与「PM 机制假设(鼓励证伪)」两个区块。
  3. 共享身份配额纪律成章。 该班约六次配额耗尽,含一次「读成功写被拒」卡在转 ready 半途。有效模式:把待执行动作的完整状态写进 send_later 定点文本(幂等、抗上下文丢失),10–12 分钟阶梯重试至成功;search 与 core 是独立配额可互为退路;绝不忙轮询。
  4. 「CI 绿→转 ready」的定点驱动成为标准步骤。 CI success webhook 不可靠是环境明示的;该班全部 13 次转 ready 均由 6–9 分钟 send_later 定点驱动,零漏接。skill 应把「ACCEPT 后挂 flip 定点」写成标准动作并给推荐延时。

中价值

  1. 补丁续派原 dev 而非新派。 fix(service-automation): 启动路径三条日志的外来 cause 改走结构化 meta (#5661) #5738/fix(analytics,rest)!: read-scope 拒收改判 READ_SCOPE_COMPILE_FAILED/500,路由的 message 正则名单完全退休 #5808 两次 CI 红、automation: resumeAuthority defaults to 'any', so every future pausing node ships fail-open — ADR-0044 says this is "tracked separately" and nothing tracks it #5561 分析→实现、fix(analytics,rest)!: read-scope 拒收改判 READ_SCOPE_COMPILE_FAILED/500,路由的 message 正则名单完全退休 #5808 裁决→收尾,四次 SendMessage 续派全部一轮成功 —— 上下文保留省掉全部重验。写明适用判据(claim 未变、上下文仍有效)与例外。
  2. 认领评论模板固化四字段:分支 / worktree / 文件面 / 串行约束已清(点名前序 PR)。 该结构让竞态复读与串行判断都是 30 秒的事;同包严格串行让 ~18 merges/日环境下 28 个 PR 零合并冲突。
  3. 与分诊座位 Routine 的时序规则。 analytics dataset 路由的 message 正则兜底没有退休时间表:六族拒收仍靠措辞分类,改一个字就换一个 HTTP 码 #5367 上 Routine 17:00 晋级、车道 18:08 持有,70 分钟内对同一 finding 出了相反处置(且处置评论写「留 finding」标签却是 pm:queue —— 评论与标签失同步)。需要:分诊座位存在时车道 PM 不再自跑分诊轮;持有/晋级单通道;处置评论必须连带改标签。

低成本顺手改

  1. 派发模板加一行:「spec build 会重锚 authorable-surface.base.json,revert 勿入提交」—— 知识在 check:authorable-surface--check 模式下也会重写 authorable-surface.base.json —— 一次纯核验会改工作区,且任何无关 PR 都能因此静默推进删除门的锚点 #5358/os-regen 驱动指示的 gen:schema 在 merge 未 commit 时运行,会把 authorable-surface 锚点倒退回旧 merge-base —— 生成器写入、门全绿、静默撤销 main 的锚点推进 #5370/check:docs 的第一步是 gen:schema —— 修好 #4711 之后,「检查改工作区」仍从这里漏进来 #4723,但该班至少 5 个 dev 各自独立重新发现。
  2. 收尾规程加:「PR/issue 正文发出后回读校验」—— 两次裸 ESC 字节实体化、两次 GitHub sanitizer 吞内容,都是回读才抓到。
  3. A-项核验的具体命令形(git grep <symbol> origin/main -- <generated-file>)入文,现为口头惯例。

处置

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions