Repository navigation
[PM seat] domain:spec-tooling — 🔀 merged into #6017 #6018
Description
范围
协议工具链 / 门禁 / 生成器 + 其文档。
面:scripts/**(门禁类)、packages/spec/scripts/**、packages/spec/docs/**、packages/lint/**、content/docs/**。
⛔ 不碰:content/docs/releases/**、packages/spec/src/**/*.zod.ts、strictness-ledger 的 counts 产物。
domain:devx 按「是否围着 spec 契约转」切分;运行时门的派发侧是 packages/metadata*(他席),本车道只拥有 packages/lint 里的注册声明。
⛔ .claude/skills/** 不在本车道(已拆出 domain:skills,座位 #7623)。
当前 PM
⏳ vacant —— 座位空缺,等待接任。
- 前任会话:
session_01WocN37om5bw81JDoEEMA2e(账号os-zhuang) - 注销时间:2026-08-14T07:2xZ,维护者指示下班(「你可以下班了」)
- 在任:2026-08-12T01:1xZ → 2026-08-14T07:2xZ,自
session_01KJATVrh6V2ysutYUJigh3B(os-help)接任 - 定时器:前任的待命巡检触发器已全部删除(最后一枚
trig_01ErKRk3mTvoBJsyxVnqrBPe),⛔ 接任者需自建 - 看护移交:无在飞物 —— 无在飞 dev、无云卡、无队列中的 PR、无挂起的 ADR-class PR。⇒ 无需点名看护者
接任台账(移交快照,2026-08-14T07:2xZ 现取)
在飞 0 · 队列 0 · blocked 0 · 决策箱 0 · 挂起 4 · 未定级 finding 0
| 卡 | 状态 | 具名重启条件 |
|---|---|---|
| #8607 | pm:on-hold |
无门禁要求「破坏性行为的 changeset 必须带破坏性标注」—— ADR-0087 处置门只在已经带了标注时才开火(定级由分诊完成,重启条件见其 hold 评论) |
| #8360 | pm:on-hold |
①相邻 id 真把 PR 挤出队列 ②#7464 被拿起(两个 registry 一并设计)③#6957 被重新裁决 |
| #8133 | pm:on-hold |
spec 18 个自足 entry bundle 无共享 chunk(见其 hold 评论) |
| #7443 | pm:on-hold |
真的有第三个值被提议进 AUTHORING_SURFACES;⛔ runtimeTypes 增长不算 |
发版板(2026-08-14T07:2xZ):objectstack 3(#7644 / #7100 / #6275)· objectui 0 · cloud 0 —— 无一属本车道。
他席在办、与本车道热文件相关:#8075 / PR #8230(ADR-0049 退役 external-lookup / message-queue 两族)也改 build-docs.ts 的 data/system 页表;本席 #8166 已先落 ⇒ 对方须 rebase。截至注销时 #8230 未落 main。
热文件串行队(接任者必读)
| 文件 | 有序卡片 | 各自认领的区域 / 落地注记 |
|---|---|---|
scripts/check-adr-0087-registration.mjs + docs/adr/0087-*.md |
#8299(9cfdddd) |
处置词表 3 值 → 4 值(新增 D7 runtime-interface-only);ADR 首次写下整份词表;assertInputs 双向断言:门接受的类目与 ADR 记录的必须同集合 ⇒ 单改一侧即红。新类目须用 路径#符号 记法 —— 裸名在本仓不构成身份(实测 PackagePublishResult 同名两处,一处是 z.input<typeof …> 投影) |
ADR-0087 生成投影(spec-changes.json、docs/protocol-upgrade-guide.md) |
#8344(b3b618b) |
已测定,别再重问:无驱动的服务端合并对二者永不「陈旧但干净」(排序并集 + 纯插入 ⇒ 要么取两侧=逐字节等于重生成,要么冲突);冲突只在两条在飞条目 id 相邻时。⛔ 分片它们买不回任何一次弹出(同场景 registry.ts 也冲突)。复现法在 entries/README.md |
packages/spec/scripts/build-docs.ts |
#7303 → #7658 → #8166(e019766) |
integration 类目只剩 connector,8 个死名带有意移除注释删除。 |
packages/lint/src/validate-visibility-predicates.ts |
#7815(cdbffca)→ #8042(df72328) |
*.form.ts 提及 8 → 6,零残留在 emitted 串;2 处故意保留(文件感知调用方契约),有源码级 pin ⛔ 不要"顺手清干净" |
packages/lint/src/authoring-rules.ts |
#7220 → #7503 → #7659 → #7576(全落) | #7443(hold)动 AUTHORING_SURFACES 轴本身;#7891(他席)若派回本席,动 validateSecurityPosture 块注册 ⇒ 与任何 per-rule 卡不可并行 |
scripts/check-*.mjs(跨包一致性门族) |
#8002(2473cd2) |
check:filter-alias-parity AST 读三处声明(spec 表 / WIRE_QUERY_ALIAS_SLOTS+WIRE_DOLLAR_ALIASES / FILTER_SLOT_QUERY_PARAMS),任一处改形状即按设计打红("读不到"也判红);已在 CI 观察到真跑并通过 |
packages/spec/src/shared/alias-integrity.test.ts |
#7889(f7dceed) |
guidance 通道对 aliases 同样优先吞噬(无活撞面,未立卡) |
packages/spec/src/migrations/(entry 树) |
#7624 → #7927 | 只加 entry 文件 + gen:migration-registry,⛔ 不手改 marker 区间 |
常设承诺 —— 派发前必查
| 触发文件 | 点名 |
|---|---|
check-adr-0087-registration.mjs / ADR-0087 文本 |
#8299 落地注记(双向断言;路径#符号 记法) |
ADR-0087 entry 树 / 两投影 / registry.ts |
#8344 测量结论 + #8360(hold):⛔ 不提「分片投影」作为修法 |
build-docs.ts 的 data / system 页表 |
#8075 / PR #8230(他席在办) |
validate-visibility-predicates.ts 文案 |
#8042 落地注记(2 处保留有 pin) |
spec alias 表 / wire 表 / query-multiplicity.ts |
check:filter-alias-parity(#8002) |
| 任何「文档锚点已验证」断言 | #7484(lychee.toml 设 include_fragments = "none",不存在的锚点返回 [200] ✅ OK) |
packages/spec/scripts/lib/zod-graph.ts |
分诊关卡时留的知识债:getter 非记忆化、depth 上限 12/16/25/25、两格均 fail-closed(#6232/#6221 已关) |
本席固定纪律(交给接任者)
- 读数反常先怀疑自己的模式/区间;用既有邻居做阳性对照;⛔ 不用宽区间归因。
- 计数不透过分页器(
grep -c/wc -l);发布计数前找仓内同量 pin 对账。 - 注册表里的自述字段最不可信 —— 以运行的代码为准。
- 族/计数类断言在派发时刻重新枚举;PM 的更正同样是线索,dev 应独立重跑(Observation: build-docs.ts integration category lists 9 page names with no emitting module — only
connectorproduces a page #8166 实证:卡面 9/228 均错,实为 8/230)。 - 「删除残留」类卡先确定谁写这个文件(
git check-attr -a带阳性对照 + 跑一遍生成器)。 - 绿色 sibling 只有在任务真正执行过时才是对照(build cache 下「绿」与「没跑」同色)。
- 云卡报告缺席走直接验收判据(PR body 即报告,CI 结论 + 探活回包即证据)。
- dev 说某门「红且既存」,先自己读那道门的 workflow 再采信(
Console Pin Freshness只在发版车道阻断,普通 PR 恒 success)。 - SKILL 新鲜度以已知 tip 作基准(
<tip>..origin/main -- <path>),⛔ 不用共享检出HEAD。 - 测量先行卡:测量可以推翻卡自己的默认方向(
spec-changes.jsonandprotocol-upgrade-guide.mdare unsharded generated artifacts whose merge safety rests on a LOCAL-only git driver — the merge queue rebuilds server-side, where no custom driver runs #8344 实证,结论是「不修」且比修更有价值);裁定当众下,知识落进代码注释而非只留 issue。 - ADR-class 卡(
docs/adr/**):approval 门要求 approving review 且禁止已武装 auto-merge ⇒ ⛔ 既不清也不绕,复核后明示挂起、卡片不摘标。ADR-0087's changeset disposition has no category for published runtime TS interfaces with no metadata surface — the #8277 exemption argument is correct, unverifiable, and will be re-litigated #8299 实证:① 批准到达后该门自动重跑,旧 job URL 永远停在 failure —— 判状态看新 attempt / Checks 面板,⛔ 不看直链;② 同事件可能触发一个被 cancelled 的重复 run,属正常取代非失败。 - CI 红先归因再动手:枚举分支实改文件 → 与失败点比对 → 同 commit 重跑区分抖动(feat(gates): name the runtime-interface-only ADR-0087 disposition and check it (#8299) #8456 实证:attempt 1 红在本分支未触及的
check-regen-pending.mjsfixture,attempt 2 全绿 51 步)。⛔ 判抖动时不顺带声称那个 fixture 健全。 list_issues永不返回 assignees —— 清单只是候选名单,认领前每张必过完整issue_read。- 解锁扫描连评论一起扫(
issue_read的 body 被实体转义,Blocked-by:类行可能落在评论首行)。 enable_pr_auto_merge回显两向不可靠 —— 权威信号只有 timeline 队列事件与 MERGED;队列落地 ≈ 每 PR 15–30 分钟串行,⛔ 不据「还没落」提前判异常。finding恒 = 待首次定级,定级即离标 —— 裸finding数即未定级数;车道座位可附证据/前提重验,⛔ 不定级不改标。- 门禁并集必须绑 commit(协议
b43f451c):dev 须在最后一次提交之后跑并集并把该次的git rev-parse --short HEAD抄进报告与 PR 正文;复核比对它与 PR 当前head.sha—— 对不上 ⇒ 那份「本地全绿」是关于死树的读数,双向都不入账;正文没抄 HEAD ⇒ 按无读数处理,以门禁 job 结论为准。棘轮族恰是最后一次提交会动的那族。
本班成绩(2026-08-12T01:1xZ → 2026-08-14T07:2xZ)
10 merged · 0 返工 · 0 空派发 · 云容器 0 空转
| 卡 / PR | 落点 | 一句话 |
|---|---|---|
| #7658 / #7808 | 0410522 |
build-docs 空 section 修复 |
| #7576 / #7886 | fc87586 |
surfaceReason 诚实化 + 可执行测量 |
| #7630 / #7927 | 3140f9c |
ADR-0087 v17 entry 注册 |
| #7889 / #7952 | f7dceed |
alias 可达性门(含非空泛化 pin) |
| #7815 / #8041 | cdbffca |
发布门按 site 判层,schema-bound form 不再被要求写 record. |
| #8002 / #8182 | 2473cd2 |
新门 check:filter-alias-parity(读不到=红) |
| #8042 / #8183 | df72328 |
按表面命名而非按文件名,零残留在 emitted 串 |
| #8166 / #8219 | e019766 |
build-docs integration 类目清 8 个死名(实测惰性) |
| #8344 / #8359 | b3b618b |
测量推翻卡的默认方向:分片投影零收益 |
| #8299 / #8456 | 9cfdddd |
ADR-0087 处置词表 D7 + 谓词,ADR 首次写下整份词表 |
协议版本(注销时)
SKILL tip b43f451c。本班吸收链:ab19075 principles-only → 2570c75 notes-21 → 6ff179d S+M⇒subagent → 36f6071 spec 语义 fable → b6ff173 wave-2 硬化 → 720fe14 subagent 前置快进 → 2c0b2f3 收班=状态 flush+看护移交 → 2de1be5 四条排程裁定 → ccd46760 fable 额度耗尽豁免 → 87e2faa0 七条实测读数 → 82ea3f59 findings 流水线 → b43f451c 门禁并集绑 commit。
环境备忘
- subagent 读本地检出,每批派发前
git -C /home/user/objectstack pull --ff-only origin main(⚠️ 实测:本班开始时检出落后 222 提交,前五个 subagent 加载的是旧 os-dev 定义)。注销时检出停在main。 ⚠️ 快进后 stop hook 会报「N 个未推送提交」——那是 main 的历史,远端无该分支,⛔ 不推。⚠️ 一切读数用git -C … origin/main:<path>;dev 一律专属 worktree;本容器 Bash 禁裸sleep链。⚠️ GitHub API 会撞共享账号限流(本班 05:00Z–06:0xZ 连续两枪无读数)—— 限流期如实报「无读数」,⛔ 不拿旧值充数。
跨车道备忘:⛔ list_triggers 里除本席外的条目属于其它座位,前任只删了自己那一枚。
Activity