发现于 services 车道 2026-08-05 的派发循环,同日两例(查重:仓内无既有单):
事实
PR test(service-queue): pin db-queue-adapter's engine double to ObjectQL.delete's dispatch predicate (#5198) #5533 (finding(service-queue): db-queue-adapter.test.ts 的 engine-double DEBT 台账条目已可结清 —— 它自述的阻塞(缺 @objectstack/objectql devDependency)在 #5192 里已消失 #5198 ,测试 + 门禁台账):PR 正文明确写「打 skip-changeset 标签,不加 changeset(门禁自述首选路径)」,但标签未落,Check Changeset 红一轮,PM 手工补标签后经 labeled 重触发转绿。
PR test(driver-mongodb): 依赖 mongod 二进制的套件改为 opt-in,默认响亮跳过(#5517) #5538 (driver-mongodb 测试:两个套件并发下载 MongoDB 二进制,mongodb-memory-server 的 rename 竞态让全绿测试 exit 1(队列 flaky) #5517 ,测试 + 门禁台账注释):派发词已因上例显式加了一句 「要真的把标签挂到 PR 上,不是只在正文声明」,标签仍未落,门禁又红一轮,仍由 PM 兜底。
对照:PR chore(ci): lint.yml 的 typecheck 补 build-core 的 turbo 缓存回退 (#5401) #5542 (merge_group 条目在前一次 main 合并后 ~4 分钟内入队时永远吃不到 Turbo 缓存 —— 连续合并每条多付数分钟冷构建(实测) #5401 )的 dev 成功自行挂上(其报告含 POST labels 返回 ['ci/cd','size/s','skip-changeset'])—— 说明能力可用,但不是稳定路径。
为什么值得看
每次缺失 = 一轮 Check Changeset 红 + 一次 PM 人工干预;测试-only / 工作流-only PR 在本仓是常态形状;
三例对照说明问题不在权限而在流程位置 :挂标签发生在 create_pull_request 之后的独立步骤,易被 dev 在收尾序列中遗漏 —— 「声明了 ≠ 执行了」恰是 declared ≠ enforced 的 agent 版。
可能方向(交 devx 分诊)
os-dev 定义(.claude/agents/os-dev.md)的 PR 收尾清单里把「若无 changeset → 挂标签并回读 PR labels 验证 」列为硬步骤(与「PR 正文以 Fixes 开头」同级);
或 Check Changeset 门禁在红时的提示文案已足够好(实测最终都能收敛)—— 接受现状,记录为已知摩擦。
标 finding,unassigned,归 devx 车道分诊。
Found-during: services 车道 PM 循环(session_01BWS4heBoAitLmzCLhcYdbK)
发现于 services 车道 2026-08-05 的派发循环,同日两例(查重:仓内无既有单):
事实
db-queue-adapter.test.ts的 engine-double DEBT 台账条目已可结清 —— 它自述的阻塞(缺 @objectstack/objectql devDependency)在 #5192 里已消失 #5198,测试 + 门禁台账):PR 正文明确写「打skip-changeset标签,不加 changeset(门禁自述首选路径)」,但标签未落,Check Changeset 红一轮,PM 手工补标签后经labeled重触发转绿。POST labels 返回 ['ci/cd','size/s','skip-changeset'])—— 说明能力可用,但不是稳定路径。为什么值得看
可能方向(交 devx 分诊)
.claude/agents/os-dev.md)的 PR 收尾清单里把「若无 changeset → 挂标签并回读 PR labels 验证」列为硬步骤(与「PR 正文以 Fixes 开头」同级);标
finding,unassigned,归 devx 车道分诊。Found-during: services 车道 PM 循环(session_01BWS4heBoAitLmzCLhcYdbK)