Skip to content

[PM seat] domain:spec-surface — 🟢 os-project-manager #6298

Description

@qq9340100

本贴是 domain:spec-surface 座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准):索引 = label:pm:seat,总入口 #4604(指针页)。本席由维护者 2026-08-07 批准自 domain:spec 拆出。

单写手规则:只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):>24h 无产出即可回收。

范围

packages/spec文本面:describe / JSDoc / 墓碑迁移散文 / 错误 guidance 与 alias 表 —— 即契约「怎么解释自己」的那些行。

准入判据 = 校验不变量:改动前合法的元数据改动后逐字节依然合法,非法依然非法;客户零迁移,changeset 恒 patch。

三条红线:

产物随源走:describe 改动会重生成 content/docs/references/** 与 json-schema manifest 的 description 字段;registry reason 散文投影进 docs/protocol-upgrade-guide.mdspec-changes.json(#6495 实测)—— 产物变更归触发它的源 PR,跑 check:generated 重生成提交、⛔ 不手改;同一生成树在飞重生成 >1 时按 #4675 四步序串行。

> ⚠️ 判据是「改的是不是渲染输入」,不是「改的是不是文本」(七类实证):#6389 ledger 数据行 ⇒ 11 页;#5059 模块头 ⇒ #6447 恰好 6 页;registry reason ⇒ upgrade-guide + spec-changes;guidance / error-map ⇒ 零(#6423/#6453);contracts/** 纯 JSDoc ⇒ 零(#6463);TSDoc @example ⇒ 零(#6729 证伪:生成器只渲染 describe 与模块头,从不渲染属性 @example);authorable 键的 JSDoc 块 ⇒ 零(#6759 证伪:reference 页只带 describe 串,JSDoc 连 .d.ts 都不进,只进 sourcemap)。

卡点自报信号

  1. 队列水位:连续 3 天 >15 张或平均滞留 >48h → 提频/加 batch/继续拆域;
  2. 同一 references 树在飞重生成 PR >2 → 打包;
  3. 分诊脉冲(单次灌入 20+)→ 一次性 sweep 专项。

运行模式:sweep-first(试点 #6243;#6495 双卡包再证)。

当前 PM(会话或 Routine ID)

🟢 In office: GitHub os-project-manager / session session_018ffcE95NaMJcL9XJ9VDYgk / takeover 2026-08-07T16:45Z —— 维护者 16:40Z 交接令指定的接任 PM。

前任:hotlong / session_01JTSZAjgtL3oR6YcpNDhW3T,2026-08-07T13:45Z → 16:40Z 注销;其三项在手由其自己跟完,本席不碰。

说明 — 座位现状(2026-08-08T17:3xZ 刷新)

在飞(本席,4)

分支 / PR 状态
#6630 part 2 PR #6753(ready,已进合并队列) 已 ACCEPT(四→三算术本席 git 独立复算);skip-changeset 本席手打 + rerun_failed_jobs 转绿;终报已达后翻转
#6628 PR #6759(ready,auto-merge 已挂) 已 ACCEPT(25 检查零失败,自带 changeset);pin 用合成名自测而非幽灵字面量 —— 未来真实现该规则不会破 pin;终报已达后翻转
#6631 claude/issue-6631-rotation-dialect-caveat dev 曾被账号级 session limit 杀死(14:5xZ),17:2xZ SendMessage 复活续跑;死前进度:前提已验、api-surface 假stale已诊断
#6619 claude/issue-6619-fold-error-maps 同上被杀、17:2xZ 复活;死前进度:registry 闭合已实证(65→70 条声明,三张表全部进门禁视野)

已收(本轮):#6641/PR #6729(v17)已 MERGED —— 发版板本席再次清零。#6641 dev 的 TEST_DEBT 补丁单文件 +17/−12、账本未碰、19→17 回账面原值;changeset 保留(裁 A:例子随 dist 发布,release note 是触达已抄旧例者的唯一通道)。

队列(0)+ 待分诊供给(2)

本席队列清零。tombstone 审计(17:2xZ 完成,SHA 252f71bd6)普查 105 个 retiredKey() / 28 文件 + 66 块 guidance / 48 文件,21 候选毙 19,存活两张(unassigned、未打 domain 标签,等分诊定级后才是本席补给):

账面(本任期,2026-08-07T16:45Z 起)

9 卡闭环(8 PR 合入 + 1 证伪收卡)+ 2 张 PR 在队/挂 auto-merge + 2 在飞 + 10 张新单入库;0 返工;0 决策箱新增;发版板本席清零 ×2。

已闭环:#6365/#6423#6145/#6447#6416/#6453#6438/#6463#5781+#5809/#6495#6605/#6689#6641/#6729(v17)#6630 part 1/#6701#6413(证伪)。在队:#6753(收 #6630)、#6759(收 #6628)。

两次配额事件(同日):①08:0xZ–12:2xZ 5h 窗口 86% 主动降频 3.5h,零损失;②14:2xZ REST 配额打满(5 dev + 1 审计并发水位)+ 14:5xZ 账号级 session limit 杀死全部 3 个在飞 dev,17:20Z 重置后 SendMessage 逐一复活,已推送工作零损失,未推送 worktree 盘上完好

决策箱(本席相关:0;全仓 5,只列不 nag)

#6640(metadata, v17)、#6604(spec, v17)、#5617(devx)、#4585#1825(engine-core)。

E. 实测结论(接任者直接可用)

  1. 渲染输入判据(见上收窄框,七类实证)。
  2. 耗时基线:S 卡 ~40–65min 至 PR,M 卡 ~50–90min;判死看 93–96min 上沿。 宿主 worker 重启杀 resume 的 subagent 及通知;账号级 session limit 同样整批杀 dev(报错「You've hit your session limit · resets HH:MM」),reset 后 SendMessage 原 agent 即从 transcript 复活续跑,三只同批实证零损失。
  3. 探针回执即活性读数;中期探针无害且常促早推。
  4. flaky: format.exit-code.test.ts pins timer.elapsed() + 531 to a fixed low byte — any 1ms of scheduling delay turns it red #6380 flaky 签名:format.exit-code.test.tsexpected 20 to be 19。重投必然有效。
  5. 拒收/删除类复核硬判据:删除类 PM 自跑引用面普查;拒收类最低断言 code + status
  6. 提前复核 + 翻转前置(E6):PR 一出即复核、ACCEPT 先落 issue;ready 翻转必须等 (a) 两门禁族作业 success 且 (b) dev 终报已达或确认死亡。翻转序:先 ready 后 arm(draft 转换掉队列与 auto-merge)。
  7. 被合并解锁的卡,解锁前在合并后 ref 重验文件面(E7);[finding][spec] lifecycle.storage guidance says "Rotation does not reap by age … DROPs the oldest shard whole (O(1) reclaim)" — true only on SQLite; Postgres/MySQL take the age-based rotation-fallback leg #6631 实证:前提全在、锚点全漂。
  8. 编辑口径类规则 (a):已发布 CHANGELOG 永不改写;未消费 changeset 直接改;活源散文直接改。
  9. PM 供词里的数字与锚点一律标「须实测」(E9) —— docs(spec): correct #4610's falsified "zero importers" evidence and its uncompilable FROM → TO, forward-note the stale rc.2 areas caveat (#5781, #5809) #6495「四个枚举」、[finding][spec] lifecycle.storage guidance says "Rotation does not reap by age … DROPs the oldest shard whole (O(1) reclaim)" — true only on SQLite; Postgres/MySQL take the age-based rotation-fallback leg #6631 三个互斥锚点、[finding][spec] position.delegatable JSDoc names a security-delegatable-admin-position lint rule that does not exist — the runtime D12 gate is the only enforcer #6628 regen 假设、rls.zod.ts 的 check @example status IN ('draft', 'pending') 编译不出来 —— 照抄 schema 自带示例的策略会 fail-closed 拒绝全部访问 #6641 @example 假设,四度实证。
  10. 卡片文件面以读完整正文为准(E10);撞面优先拆两半派(Part of 不带 Fixes)。
  11. 门控判断只读 issue_read / git log,永不读 search_issues(E11) —— 索引可滞后 2.5h+,曾致四卡错挂 50min。搜索只用于发现,不用于判定。
  12. 补丁轮续派原 dev(E12),SendMessage 投诊断签名 + 修法口子 + 红线;新 agent 要重建全部上下文还争 worktree(fix(spec): the RLS check clause's enumerated-values @example is CEL, and compiles (#6641) #6729 实证)。
  13. changeset 判据张力待统一(E13):fix(spec): position.delegatable names only the enforcer that exists (#6628) #6759 按「packages/spec published filessrc/**/*.zod.ts,注释散文随 npm 发布」走 patch;fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753 按「无 reference 页 / 无 .d.ts / 无 parse 可达字节」走 skip-changeset。两条门禁都绿、都放行;新 datum = spec 的源文件本身发布。过渡裁量:parse 可达串(guidance/墓碑/describe/error)与生成物恒 changeset;纯注释两可,尊重 dev 论证,不为此返工。

F. 跨车道备忘

G. 环境注记(⛔ 接任会话必读,每条都咬过人)

Metadata

Metadata

Labels

domain:spec-surfacepm:seatPM seat registry issue - single-writer body, index = this label

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions