本贴是 domain:spec-tooling(C 包,#5163 ) 座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准,自 #4604 单正文座位表迁移而来):索引 = label:pm:seat,总入口 #4604 (指针页)。
单写手规则 :只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用时:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):Routine 座位查调度器(last_fired/next_run),会话座位查最近产出评论时间戳,>24h 无产出即可回收(改正文 + 审计评论)。
范围
协议工具链/门禁/生成器 + 配套 docs,清单以 #5163 卡片为准;文件面 scripts/**、packages/spec/scripts/**、packages/lint/**、content/docs/**(⛔ releases);⛔ 不碰 packages/spec/src/**/*.zod.ts 与 strictness 台账,确需触碰先在 #5163 留言协调
当前 PM(会话或 Routine ID)
会话 session_014wsZeReNTqiceBfLb5Pyf5(2026-08-06 15:2xZ 接管;维护者启动 /pm-dispatch spec-tooling。前任 session_01559M8FVm6W6vDLABL3jvdW 的 C 包收官帐见 #5163 的 15:0xZ 收尾评论,相位边界交接,非活性回收)
说明
运行参数 :batch:5(维护者 2026-08-06 15:3xZ 指示上调,原 3)。
车道现状(2026-08-06 20:2xZ) :第 1 轮 3 单 + 第 2 轮 1 单全部验收 ACCEPT,零返工 ;落地被 GitHub Actions 平台事故(15:42Z 首发、17:59Z 复发,runner 领取停摆/间歇恢复)拖住,代码工作已全部完成。
已验收待落地(CI 结论驱动中,全绿即逐个 ready + 入队) :[spec] check:skill-examples 应拒绝 os:check 块内把入参标 any —— 标记了却零覆盖的空门 #5943 → PR ci(spec): check:skill-examples 拒绝 os:check 块内的裸 any (#5943) #6049 (双门禁 ✅,剩收尾 job 重投中)、check:liveness 的 stale-evidence 检测只 ⚠ 不判红 —— ADR-0087 证据路径可以静默腐烂,且摘要行的 “N resolved” 数的是路径总数不是解析成功数 #5623 → PR fix(spec): check:liveness 的 stale-evidence 判红,摘要行的数与词对齐 (#5623) #6057 (重投波进行中)、[finding] check:merge-driver 的两个 --self-test 没有任何 workflow 在跑 —— 合并驱动的规则回归只在有人手工跑根脚本时才现形 #6008 → PR ci(lint): 把 check:merge-driver 的两个 self-test 接进 lint.yml 根 check 行 #6079 (门禁 job 排队未领取)。
[docs-gen] 生成的 reference 把 retiredKey() 墓碑渲染成 any —— 嵌套两层时连 [REMOVED] 处方都没有,退役键读起来像自由槽 #5606 → PR fix(spec): docs-gen 把 retiredKey() 墓碑渲染成 never,而不是 any (#5606) #6058 停放 draft (裁决 B):解除条件 = spec 生成物按 category 分片:拆掉三个单体 ratchet 文件的合并队列串行税(维护者 2026-08-06 已拍板) #5837 落地 + spec 窗口解除 → merge main + gen:schema && gen:docs 重生成(基于分片布局 )→ 预期红(check:docs)清零 → ready。
spec 生成物按 category 分片:拆掉三个单体 ratchet 文件的合并队列串行税(维护者 2026-08-06 已拍板) #5837 → PR refactor(spec): 三个热点生成物按 category / entrypoint 分片,拆掉合并队列的串行税 (#5837) #6069 已获 spec 座位验收 (18:13Z,S1–S4 原子 80 文件),等 test 族收敛后 ready 入队。合并触发序列 :解除窗口 → 让行 11 单逐单重新定价(⚠️ 分片改变多单前提:gen:schema rmSync 整个 json-schema/ 会顺手抹掉 gen:openapi 的产物,rest 的 openapi 路由测试随后 503 假红——check:generated 原地跑 build-schemas 也触发 #5371 布局变、build-schemas 族落点抽进 lib/sharded-artifacts.ts、观察项:json-schema.manifest.json 没有 #4662 那样的「整文件规范形态」比对 —— 不改变键集的手编至今无人可见 #5972 的 manifest 变 14 片、build-docs.ts --update-import-baseline 用 JSON.stringify 写原始字符,与仓内 ASCII 转义编码惯例冲突 —— 每次运行产生 ~275 行纯编码 churn 淹没真实变化 #5990 有 refactor(spec): 三个热点生成物按 category / entrypoint 分片,拆掉合并队列的串行税 (#5837) #6069 留的补充证据;os-regen 路径清单以 refactor(spec): 三个热点生成物按 category / entrypoint 分片,拆掉合并队列的串行税 (#5837) #6069 改后的 .gitattributes/SKILL.md 为准)→ 补满 batch 5。参考文档生成器把数值字面量 z.literal(2) 渲染成带引号的 '2',数值型联合被记成字符串型 #5729 的解除条件独立 = fix(spec): docs-gen 把 retiredKey() 墓碑渲染成 never,而不是 any (#5606) #6058 合入(同渲染管线,备注在该单)。
[finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278 → PR ci(dx): DEBT/TEST_DEBT 台账数字改为每次重测的真棘轮 —— 实测 > 记录即红 (#5278) #5827 停放守望 :裁决(A 带记档余量 / B 静默窗口 / C 移出必检)待维护者;PR dirty,裁决落地先合 main 重校准。
决策箱:sdui.manifest.json 的来源未定:声明一致性 ratchet 目前只在手工 pnpm sdui:manifest 时跑,CI 里从来不跑(#4690 的遗留决定) #5960 、[finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278 ;findings 待分诊轮:观察项:json-schema.manifest.json 没有 #4662 那样的「整文件规范形态」比对 —— 不改变键集的手编至今无人可见 #5972 / [finding] TEST_DEBT 的 tests 字段是闸门自己已经算出来的数字,却手写在台账里 —— 19 条中 12 条已漂(runtime 记 66,实测 101) #5826 / 门测量的重合度 bridge 有残余假可达面:整形状由共享叶子组成的「小形状」恒为 1.0,任何阈值都排不掉 #5828 / gen:docs 内联形状里的长枚举不省略,单个类型单元格可达约 900 字符(BulkActionDef.params 实例) #5340 / SKILL.md compatibility 行无任何门禁对账 —— 声明的 spec 版本可与仓库实际版本无限期漂移(#5245 方案③拆出) #5331 ([finding] check:merge-driver 的两个 --self-test 没有任何 workflow 在跑 —— 合并驱动的规则回归只在有人手工跑根脚本时才现形 #6008 已被分诊晋级并由本座位交付)。
实测纪律沉淀(承前任 + 本任新增) :① auto-merge「全绿后挂载」三次静默不入队,处方 = disable→enable 翻转 + until-loop 队列分支确认;② 锚点防线三层闭合(#5358 / #5370 / #4650 ),检查 (c) 残洞在 #5898 ;③ 登记类门禁模板在树内(#5902 / #5971 );④ 平台事故两种死法与处置 (2026-08-06 实测):runner 引导 503(重投即愈,⛔ 风暴未平不投——rerun-failed-jobs 会连带把已绿下游掷回风暴)与「步骤全绿但完成事件丢失→僵尸 in_progress→失联判败」(重投即愈;job 结论必须亲核,聚合读数与步骤观感都不算数);⑤ changeset 三分法按发布面实测定档(#6049 skip 标签 / #6057 、#6058 具名 patch,判据 = files/exports 实测 + npm pack --dry-run)。
迁移注记:本贴自 #4604 座位表迁移(2026-08-06,经办 PM 会话 session_01GcjbQLUQKysMU9uXB34iyv);迁移时刻起本贴即该座位唯一权威,#4604 原行不再维护。
本贴是
domain:spec-tooling(C 包,#5163) 座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准,自 #4604 单正文座位表迁移而来):索引 =label:pm:seat,总入口 #4604(指针页)。单写手规则:只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用时:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):Routine 座位查调度器(last_fired/next_run),会话座位查最近产出评论时间戳,>24h 无产出即可回收(改正文 + 审计评论)。
范围
协议工具链/门禁/生成器 + 配套 docs,清单以 #5163 卡片为准;文件面
scripts/**、packages/spec/scripts/**、packages/lint/**、content/docs/**(⛔ releases);⛔ 不碰packages/spec/src/**/*.zod.ts与 strictness 台账,确需触碰先在 #5163 留言协调当前 PM(会话或 Routine ID)
会话
session_014wsZeReNTqiceBfLb5Pyf5(2026-08-06 15:2xZ 接管;维护者启动/pm-dispatch spec-tooling。前任session_01559M8FVm6W6vDLABL3jvdW的 C 包收官帐见 #5163 的 15:0xZ 收尾评论,相位边界交接,非活性回收)说明
运行参数:
batch:5(维护者 2026-08-06 15:3xZ 指示上调,原 3)。车道现状(2026-08-06 20:2xZ):第 1 轮 3 单 + 第 2 轮 1 单全部验收 ACCEPT,零返工;落地被 GitHub Actions 平台事故(15:42Z 首发、17:59Z 复发,runner 领取停摆/间歇恢复)拖住,代码工作已全部完成。
check:skill-examples应拒绝 os:check 块内把入参标any—— 标记了却零覆盖的空门 #5943 → PR ci(spec): check:skill-examples 拒绝 os:check 块内的裸 any (#5943) #6049(双门禁 ✅,剩收尾 job 重投中)、check:liveness的 stale-evidence 检测只 ⚠ 不判红 —— ADR-0087 证据路径可以静默腐烂,且摘要行的 “N resolved” 数的是路径总数不是解析成功数 #5623 → PR fix(spec): check:liveness 的 stale-evidence 判红,摘要行的数与词对齐 (#5623) #6057(重投波进行中)、[finding]check:merge-driver的两个 --self-test 没有任何 workflow 在跑 —— 合并驱动的规则回归只在有人手工跑根脚本时才现形 #6008 → PR ci(lint): 把check:merge-driver的两个 self-test 接进 lint.yml 根 check 行 #6079(门禁 job 排队未领取)。retiredKey()墓碑渲染成any—— 嵌套两层时连[REMOVED]处方都没有,退役键读起来像自由槽 #5606 → PR fix(spec): docs-gen 把 retiredKey() 墓碑渲染成 never,而不是 any (#5606) #6058 停放 draft(裁决 B):解除条件 = spec 生成物按 category 分片:拆掉三个单体 ratchet 文件的合并队列串行税(维护者 2026-08-06 已拍板) #5837 落地 + spec 窗口解除 → merge main +gen:schema && gen:docs重生成(基于分片布局)→ 预期红(check:docs)清零 → ready。gen:schemarmSync 整个json-schema/会顺手抹掉gen:openapi的产物,rest 的 openapi 路由测试随后 503 假红——check:generated原地跑 build-schemas 也触发 #5371 布局变、build-schemas 族落点抽进lib/sharded-artifacts.ts、观察项:json-schema.manifest.json 没有 #4662 那样的「整文件规范形态」比对 —— 不改变键集的手编至今无人可见 #5972 的 manifest 变 14 片、build-docs.ts --update-import-baseline用 JSON.stringify 写原始字符,与仓内 ASCII 转义编码惯例冲突 —— 每次运行产生 ~275 行纯编码 churn 淹没真实变化 #5990 有 refactor(spec): 三个热点生成物按 category / entrypoint 分片,拆掉合并队列的串行税 (#5837) #6069 留的补充证据;os-regen 路径清单以 refactor(spec): 三个热点生成物按 category / entrypoint 分片,拆掉合并队列的串行税 (#5837) #6069 改后的.gitattributes/SKILL.md 为准)→ 补满 batch 5。参考文档生成器把数值字面量 z.literal(2) 渲染成带引号的 '2',数值型联合被记成字符串型 #5729 的解除条件独立 = fix(spec): docs-gen 把 retiredKey() 墓碑渲染成 never,而不是 any (#5606) #6058 合入(同渲染管线,备注在该单)。dirty,裁决落地先合 main 重校准。pnpm sdui:manifest时跑,CI 里从来不跑(#4690 的遗留决定) #5960、[finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278;findings 待分诊轮:观察项:json-schema.manifest.json 没有 #4662 那样的「整文件规范形态」比对 —— 不改变键集的手编至今无人可见 #5972 / [finding] TEST_DEBT 的tests字段是闸门自己已经算出来的数字,却手写在台账里 —— 19 条中 12 条已漂(runtime 记 66,实测 101) #5826 / 门测量的重合度 bridge 有残余假可达面:整形状由共享叶子组成的「小形状」恒为 1.0,任何阈值都排不掉 #5828 / gen:docs 内联形状里的长枚举不省略,单个类型单元格可达约 900 字符(BulkActionDef.params 实例) #5340 / SKILL.mdcompatibility行无任何门禁对账 —— 声明的 spec 版本可与仓库实际版本无限期漂移(#5245 方案③拆出) #5331([finding]check:merge-driver的两个 --self-test 没有任何 workflow 在跑 —— 合并驱动的规则回归只在有人手工跑根脚本时才现形 #6008 已被分诊晋级并由本座位交付)。实测纪律沉淀(承前任 + 本任新增):① auto-merge「全绿后挂载」三次静默不入队,处方 = disable→enable 翻转 + until-loop 队列分支确认;② 锚点防线三层闭合(#5358 / #5370 / #4650),检查 (c) 残洞在 #5898;③ 登记类门禁模板在树内(#5902 / #5971);④ 平台事故两种死法与处置(2026-08-06 实测):runner 引导 503(重投即愈,⛔ 风暴未平不投——rerun-failed-jobs 会连带把已绿下游掷回风暴)与「步骤全绿但完成事件丢失→僵尸 in_progress→失联判败」(重投即愈;job 结论必须亲核,聚合读数与步骤观感都不算数);⑤ changeset 三分法按发布面实测定档(#6049 skip 标签 / #6057、#6058 具名 patch,判据 =
files/exports实测 +npm pack --dry-run)。迁移注记:本贴自 #4604 座位表迁移(2026-08-06,经办 PM 会话
session_01GcjbQLUQKysMU9uXB34iyv);迁移时刻起本贴即该座位唯一权威,#4604 原行不再维护。