本贴是 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。
三条红线:
渲染输入判据 —— 现在有免费代理,不必再测
⚠️ 判据是「改的是不是渲染输入 」,不是「改的是不是文本」。
免费代理(2026-08-09 实证):看 PR 上 Build Docs 作业是 run 还是 skipped。 run = 触达参考页(#6852 重生成 permission.mdx 两格),skipped = 不触达(#6846 )。双向实证,任何 PR 一眼可读。
机制:packages/spec/scripts/build-docs.ts:186 是 if (!entry.name.endsWith('.zod.ts')) continue; —— 生成器只遍历 .zod.ts 。
九类实证:
面
触达
.describe()
✅ 参考页(#6852 )
registry reason
✅ upgrade-guide + spec-changes(#6495 )
registry acceptanceCriteria
✅ 仅 upgrade-guide —— spec-changes.json 不含该字段(#6875 实测,grep -c = 0)
#6389 ledger 数据行
✅ 11 页
#5059 模块头
✅ 恰好 6 页(#6447 )
guidance / error-map
❌ 零(#6423 /#6453 )
contracts/** 纯 JSDoc
❌ 零(#6463 )
TSDoc @example
❌ 零(#6729 证伪)
非 .zod.ts 文件的 JSDoc
❌ 零(#6846 /#6759 )
卡点自报信号
队列水位:连续 3 天 >15 张或平均滞留 >48h → 提频/加 batch/继续拆域;
同一 references 树在飞重生成 PR >2 → 打包;
分诊脉冲(单次灌入 20+)→ 一次性 sweep 专项。
运行模式 :sweep-first。并发 :维护者 2026-08-08 令「至少三个」,实测舒适区 4;5 dev + 1 审计会打满共享身份 REST 配额。
当前 PM(会话或 Routine ID)
🟢 In office : GitHub os-project-manager / session session_018ffcE95NaMJcL9XJ9VDYgk / takeover 2026-08-07T16:45Z。
前任 :hotlong / session_01JTSZAjgtL3oR6YcpNDhW3T,2026-08-07T13:45Z → 16:40Z 注销;其三项在手由其自己跟完。
说明 — 座位现状(2026-08-09T02:2xZ 全量刷新)
在飞 0 / 队列 0
#6875 (#6844 )在合并队列中 ,已 ACCEPT + ready + arm。合入后账面 18 卡。
账面(本任期,2026-08-07T16:45Z 起)
17 卡闭环(16 PR 合入 + 1 证伪收卡)+ 1 张在队 + 14 张新单入库;0 返工;0 决策箱新增;发版板本席清零 ×2。
已闭环:#6365 /#6423 、#6145 /#6447 、#6416 /#6453 、#6438 /#6463 、#5781 +#5809 /#6495 、#6605 /#6689 、#6641 /#6729 (v17)、#6630 (#6701 part 1 + #6753 part 2)、#6628 /#6759 、#6631 /#6789 、#6619 /#6804 、#6696 /#6846 、#6698 /#6852 、#6758 /#6847 、#6756 /#6854 、#6413 (证伪)。
待分诊供给(8,⛔ 只读跟踪,domain:* 单一生产者是分诊席)
本车道 finding :#6805 (strictToolError/strictCapabilitiesError 仍在 alias-integrity 视野外;更省修法 = 把 #6804 的闭合钉放宽到「任何新手写 unrecognized_keys map」)、#6856 (migrate 动词 rewrite 32 : remove 6,filer 明说未 审计哪些盖在 strip 上)、#6762 (using describe 在 ADR-0058 后 under-promise)。
他车道 :#6855 (domain:cli,NDJSON e2e flaky)、#6750 、#6763 、#6842 、objectui#3901。
决策箱(本席相关 0;全仓 5,只列不 nag)
#6640 (metadata, v17)、#6604 (spec, v17)、#5617 (devx)、#4585 、#1825 (engine-core)。
E. 实测结论(接任者直接可用)
渲染输入判据 —— 见上,含免费代理。
耗时基线 :S 卡 ~40–65min 至 PR,M 卡 ~50–90min;判死看 93–96min 上沿。宿主 worker 重启 与账号级 session limit 都会整批杀 dev(后者报 You've hit your session limit · resets HH:MM);reset 后 SendMessage 原 agent 即从 transcript 复活续跑,已推送工作零损失 (三只同批 + 一只二次实证)。
探针回执即活性读数 ;中期探针无害且常促早推。
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.ts → expected 20 to be 19。
拒收/删除类复核硬判据 :删除类 PM 自跑引用面普查;拒收类最低断言 code + status。
提前复核 + 翻转前置(E6) :PR 一出即复核、ACCEPT 先落 issue;ready 翻转必须等 (a) 两门禁族作业 success 且 (b) dev 终报已达或确认死亡 。序:先 ready 后 arm (draft 转换掉队列与 auto-merge)。
被合并解锁的卡,解锁前在合并后 ref 重验文件面(E7) 。
编辑口径 (a) :已发布 CHANGELOG 永不改写;未消费 changeset 直接改;活源散文直接改。
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 /rls.zod.ts 的 check @example status IN ('draft', 'pending') 编译不出来 —— 照抄 schema 自带示例的策略会 fail-closed 拒绝全部访问 #6641 regen 假设、[finding][spec] The dashboard.widgets[].aria tombstone sends the author to app.aria as a surviving live surface — App.aria is itself a retiredKey() tombstone removed in the same major #6756 的 dashboard.mdx 路径根本不存在、spec: the D3 ledger's resume-authority-undeclared… acceptance criteria still says "supportsPause is a declaration nothing enforces (#5703)" — the same staleness #6749 fixed in the TSDoc, one channel over #6844 的「两个通道」实为一个)。卡片正文也会错 ,不只是 PM 的口述。
卡片文件面以读完整正文为准(E10) ;撞面优先拆两半派(Part of 不带 Fixes)。
⛔ 门控判断只读 issue_read / git log,永不读 search_issues(E11) —— 索引可滞后 2.5h+,曾致四卡错挂 50min。搜索只用于发现。
补丁轮续派原 dev(E12) ,SendMessage 投诊断签名 + 修法口子 + 红线(fix(spec): the RLS check clause's enumerated-values @example is CEL, and compiles (#6641) #6729 实证)。
changeset 判据(E13,已收口) :判「这段散文有没有触达使用方 」,不判「文件发不发布」。参考页 / .d.ts / parse 可达错误串,任一即算 ⇒ patch。三者皆不沾 ⇒ skip-changeset(fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753 )。关键 datum:docs(spec): describeHighPrivilegeBits 的裸通配符举例换成仍带 '*' 的 viewer_readonly (#6696) #6846 的源文件不在 files glob,但 dist 在,文案经 dist/**/*.d.ts 悬停触达 ⇒ patch(先例 8ad609c69)。
⚠️ 字面量 pin 检索对转义正则断言是盲的(E14) —— fix(spec): aria 墓碑不再指向同一大版本里已退休的落点 (#6756) #6854 dev 自曝:expect(msg).toMatch(/app\.aria/) 字面量搜不到,两条钉住缺陷的既有断言因此漏检,修复后才炸出来。问「这段文案有没有 pin」必须连 toMatch(/…/) 写法一起搜。docs(spec): D3 账本 resumeAuthority 一条不再要求手工排查 supportsPause 不一致 (#6844) #6875 已按此执行并明确报告。
队列失败三路分诊 + 同签名只重排一次(E15) —— ①失败在本 PR 触及的包 ⇒ 真回归;②无关且他处见过 ⇒ flaky,立卡别重排;③两者皆非 ⇒ 可能同批语义冲突,重排一次 。⛔ 同签名再红 = 升级,不重复重排(每次烧全队列重建)。fix(spec): wait-timeout 处方改印能真正解析的 timerDuration: '60000'(#6758) #6847 实证:重排即过,最终样本三过一失败。
dev 死亡时,其未竟的 只读核验步骤 PM 可自行完成 —— refactor(spec): 三个手写 unrecognized_keys 错误映射折叠进 strictObject 的按集合取键 guidance(#6619) #6804 实测(消费半径清扫走 git grep 即可),E6 的「确认死亡」分支因此能提前满足,省 3.5h 空等。⛔ 边界:只读核验可代做,写代码不行 。
F. 跨车道备忘
objectui 配套:#5055 退役 spec 的 WidgetManifest / WidgetSource 后,parity tripwire 按设计打红,packages/types/src/widget.ts 的锚点注释指向不存在的名字 #6275 (RuntimeXxx 命名 A/B,repo:objectui,v17)未裁。
[finding] Gate idea: flag a retired symbol whose retirement issue number appears in SOME but not ALL of its mentions within one file — the partial-update signal that found #6630 mechanically #6635 (通用「退役后散文漂移」门禁)的设计空间被 fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753 复核明确保护:⛔ 不许被一次性 readFileSync 正则提前钉死。[finding][spec] #6619's inventory of hand-written $ZodErrorMaps was two short — strictToolError and strictCapabilitiesError survive the fold, still invisible to alias-integrity.test.ts #6805 提出的「闭合钉放宽到任何新手写 map」与之相邻,不冲突。
ServiceStatus 在 ./api 与 ./system 各有一个不同声明,#4593 的别名补齐卡在这个名字上 #6604 (协议席决策箱)若裁决改 type-alias-convention.pin.test.ts,与 test(spec): put the pin file's two prose counts under the counting assertion (#6605) #6689 已落地计数形状同文件。
⚠️ sweep(spec-surface): 5-item description-surface truth sweep — one claim, one PR, per-item checklist review (#6085 #6081 #6137 #6065 #5676) #6243 台账更正(2026-08-09 查清) :sweep 确实落地 (026101660 … (#6243) (#6288)),抽查成员 expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085 = closed/completed。问题是容器卡没关 ,仍带 pm:queue + target:v17 ⇒ 发版板上的一条假条目 ,且会被队列扫描当成可派卡捞出来。已于 01:09Z 在卡上留只读观察 + 两条处置分支;⛔ 不关不重标不重指派(assignee qq9340100,非本席)。同类残留是全仓性的 :已关闭的成员卡也留着 pm:queue/target:v17。
归档:[spec] hook.zod.ts 的 positions JSDoc 仍把 services.sharing.canEdit(…) 举为「hook 可以这么读」的正例 —— #5720 已证实 hook 拿不到 services #6001 、ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083 /spec: ADR-0122 phase 2 — flip bare names to parsed semantics (#6083) #6279 、把 44 个 strictUnknownKeyError 直调点批量迁到 strictObject,棘轮降到 0(路线 1 消不掉手抄数组与 shape 的漂移) #5593 、ADR-0117 D1 声明面:ownership 枚举扩展 'business_unit'(须与列注入同 PR 或严格后置) #5678 。
G. 环境注记(⛔ 接任会话必读,每条都咬过人)
直连 api.github.com 返回 403 —— GitHub 仅 MCP 可达;靠写后回读。
会话内开出的 PR 自动带 webhook ;其余看护走 send_later 定点。⚠️ 已删除/过期的定时器仍会投递 ,每枪文本必以幂等头开头,且必须 date -u 取准时间 —— 心跳文本曾偏差数小时。
共享身份让 actor 字段失去区分度 —— PR 状态类动作靠评论留痕自证。
宿主 worker 会不定期重启 ;定时器在服务端存活。
共享身份 REST 配额会打满 (实测水位 5 dev + 1 审计)。git 协议读数(git log / ls-remote)不吃 REST 配额 —— 配额紧张时一律用它。
本地检出 shallow —— 先 git fetch origin main --deepen=100。Bash cwd 每次重置 —— 一律 git -C。
⚠️ GitHub sanitizer 吞裸尖括号 ;MCP 读 issue 正文可能截断 —— 派发令要求 dev 直接在 GitHub 上读全文。
list_issues 多标签过滤是 OR;issue_write 的 labels 整组替换 (先读现值合并再写)。⚠️ pm:queue 与 pm:dispatched 会因 dev 认领时的整组回写并存 —— 派发后与收卡后各回读一次清残留 。
⚠️ issue_read get_labels 不解析 PR 号 (GraphQL 只认 issue);PR 标签写用 issue_write 可行(REST 视 PR 为 issue)。功能性回读 :补打 skip-changeset 后 rerun_failed_jobs,门禁转绿即证明标签生效(fix(ci): Check Changeset 实时读 skip-changeset 标签,首个 run 不再永久红 (#5580) #5625 门禁读实时标签)。
⚠️ TEST_DEBT 棘轮([finding] DEBT ledger counts in check-type-check-coverage.mjs drift silently — @objectstack/metadata-protocol records 28, actually reports 63 #5278 )重测会掀掉包自身 tsconfig 的 *.test.ts exclude —— 文件可对 pnpm typecheck 完全隐形却照样顶棘轮;CommonJS 目标包里每个 import.meta 恒定两个 raw error (TS1470+TS2339,fix(spec): the RLS check clause's enumerated-values @example is CEL, and compiles (#6641) #6729 实证)。⚠️ packages/spec 已于 @ts-expect-error 退役 pin 在 packages/spec 里是幽灵检查:tsconfig 把 **/*.test.ts 排除出唯一的 tsc --noEmit #5286 从 TEST_DEBT 毕业 ,改用按文件的 test-typecheck-debt.json(由 check:test-typecheck 校验)—— spec 侧加测试动不了 TEST_DEBT 数字,跨包加测试会 (fix(spec): wait-timeout 处方改印能真正解析的 timerDuration: '60000'(#6758) #6847 实测)。--re-measure 需要先建全闭包,首次拒绝是已知假红。
⚠️ fresh worktree 未构建依赖假红 :Failed to resolve entry for package @objectstack/… 与 check:api-surface 的「stale」 —— 先 pnpm --filter '<pkg>^...' build 再判(三次实证)。
⚠️ 合并队列会在无失败签名时把 PR 弹出 (fix(spec): stop teaching the retired ETL layer as a live retry surface (#6630, part 1) #6701 )—— 判为队列重建过渡,重 arm 一次并设升级检查点。有失败签名的走 E15。
⚠️ skip-changeset 不会自动打 —— 曾有 dev 报称自动化,已用 check-run 时间戳证伪。
本贴是
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。
三条红线:
domain:spec(协议席)。判据看「合法集合变没变」,不看行数(先例 meta: bind Zod schemas for webhook / connector / sharing_rule WITHOUT registering the kinds — close the unvalidatedPUT /metawrite hole (#2657 audit, option A) #6245 / feat(spec): action param 的 options[] 声明逐选项 visibleWhen (#5016) #6235)。domain:spec-tooling(C 包 program card:协议工具链/门禁车道(domain:spec-tooling)—— 整包移交待接收 #5163 边界);docs 手写页教约面漂移按 FormField/FormSectionvisibleWhendescribe 宣称 runtime 表单绑定current_user,但字段级条件规则的求值面从未绑过它——按文档写的谓词必然 fault 并 fail-open #6146 先例归 surface(widget-contract.mdx 整页 + quick-reference.mdx 一行仍在教 #5055 退役的 WidgetManifest 家族 —— 手写散文面,门禁不覆盖 #6413 分诊确认)。content/docs/releases/恒不许碰(全仓通则)。渲染输入判据 —— 现在有免费代理,不必再测
免费代理(2026-08-09 实证):看 PR 上
Build Docs作业是 run 还是 skipped。 run = 触达参考页(#6852 重生成permission.mdx两格),skipped = 不触达(#6846)。双向实证,任何 PR 一眼可读。机制:
packages/spec/scripts/build-docs.ts:186是if (!entry.name.endsWith('.zod.ts')) continue;—— 生成器只遍历.zod.ts。九类实证:
.describe()reasonacceptanceCriteriaspec-changes.json不含该字段(#6875 实测,grep -c= 0)contracts/**纯 JSDoc@example.zod.ts文件的 JSDoc卡点自报信号
运行模式:sweep-first。并发:维护者 2026-08-08 令「至少三个」,实测舒适区 4;5 dev + 1 审计会打满共享身份 REST 配额。
当前 PM(会话或 Routine ID)
🟢 In office: GitHub
os-project-manager/ sessionsession_018ffcE95NaMJcL9XJ9VDYgk/ takeover 2026-08-07T16:45Z。前任:
hotlong/session_01JTSZAjgtL3oR6YcpNDhW3T,2026-08-07T13:45Z → 16:40Z 注销;其三项在手由其自己跟完。说明 — 座位现状(2026-08-09T02:2xZ 全量刷新)
在飞 0 / 队列 0
#6875(#6844)在合并队列中,已 ACCEPT + ready + arm。合入后账面 18 卡。
账面(本任期,2026-08-07T16:45Z 起)
17 卡闭环(16 PR 合入 + 1 证伪收卡)+ 1 张在队 + 14 张新单入库;0 返工;0 决策箱新增;发版板本席清零 ×2。
已闭环:#6365/#6423、#6145/#6447、#6416/#6453、#6438/#6463、#5781+#5809/#6495、#6605/#6689、#6641/#6729(v17)、#6630(#6701 part 1 + #6753 part 2)、#6628/#6759、#6631/#6789、#6619/#6804、#6696/#6846、#6698/#6852、#6758/#6847、#6756/#6854、#6413(证伪)。
待分诊供给(8,⛔ 只读跟踪,
domain:*单一生产者是分诊席)本车道 finding:#6805(
strictToolError/strictCapabilitiesError仍在alias-integrity视野外;更省修法 = 把 #6804 的闭合钉放宽到「任何新手写unrecognized_keysmap」)、#6856(migrate 动词 rewrite 32 : remove 6,filer 明说未审计哪些盖在 strip 上)、#6762(usingdescribe 在 ADR-0058 后 under-promise)。他车道:#6855(
domain:cli,NDJSON e2e flaky)、#6750、#6763、#6842、objectui#3901。决策箱(本席相关 0;全仓 5,只列不 nag)
#6640(metadata, v17)、#6604(spec, v17)、#5617(devx)、#4585、#1825(engine-core)。
E. 实测结论(接任者直接可用)
You've hit your session limit · resets HH:MM);reset 后SendMessage原 agent 即从 transcript 复活续跑,已推送工作零损失(三只同批 + 一只二次实证)。format.exit-code.test.tspinstimer.elapsed() + 531to a fixed low byte — any 1ms of scheduling delay turns it red #6380 flaky 签名:format.exit-code.test.ts→expected 20 to be 19。code+status。success且 (b) dev 终报已达或确认死亡。序:先 ready 后 arm(draft 转换掉队列与 auto-merge)。areascaveat (#5781, #5809) #6495 枚举数、[finding][spec]lifecycle.storageguidance says "Rotation does not reap by age … DROPs the oldest shard whole (O(1) reclaim)" — true only on SQLite; Postgres/MySQL take the age-basedrotation-fallbackleg #6631 锚点、[finding][spec]position.delegatableJSDoc names asecurity-delegatable-admin-positionlint rule that does not exist — the runtime D12 gate is the only enforcer #6628/rls.zod.ts 的 check @examplestatus IN ('draft', 'pending')编译不出来 —— 照抄 schema 自带示例的策略会 fail-closed 拒绝全部访问 #6641 regen 假设、[finding][spec] Thedashboard.widgets[].ariatombstone sends the author toapp.ariaas a surviving live surface —App.ariais itself aretiredKey()tombstone removed in the same major #6756 的dashboard.mdx路径根本不存在、spec: the D3 ledger'sresume-authority-undeclared…acceptance criteria still says "supportsPauseis a declaration nothing enforces (#5703)" — the same staleness #6749 fixed in the TSDoc, one channel over #6844 的「两个通道」实为一个)。卡片正文也会错,不只是 PM 的口述。Part of不带Fixes)。issue_read/git log,永不读search_issues(E11) —— 索引可滞后 2.5h+,曾致四卡错挂 50min。搜索只用于发现。SendMessage投诊断签名 + 修法口子 + 红线(fix(spec): the RLS check clause's enumerated-values @example is CEL, and compiles (#6641) #6729 实证)。.d.ts/ parse 可达错误串,任一即算 ⇒ patch。三者皆不沾 ⇒skip-changeset(fix(spec): stop teaching the retired ETL layer as a live retry surface in flow.zod.ts (#6630, part 2) #6753)。关键 datum:docs(spec): describeHighPrivilegeBits 的裸通配符举例换成仍带 '*' 的 viewer_readonly (#6696) #6846 的源文件不在filesglob,但dist在,文案经dist/**/*.d.ts悬停触达 ⇒ patch(先例8ad609c69)。aria墓碑不再指向同一大版本里已退休的落点 (#6756) #6854 dev 自曝:expect(msg).toMatch(/app\.aria/)字面量搜不到,两条钉住缺陷的既有断言因此漏检,修复后才炸出来。问「这段文案有没有 pin」必须连toMatch(/…/)写法一起搜。docs(spec): D3 账本 resumeAuthority 一条不再要求手工排查 supportsPause 不一致 (#6844) #6875 已按此执行并明确报告。timerDuration: '60000'(#6758) #6847 实证:重排即过,最终样本三过一失败。git grep即可),E6 的「确认死亡」分支因此能提前满足,省 3.5h 空等。⛔ 边界:只读核验可代做,写代码不行。F. 跨车道备忘
WidgetManifest/WidgetSource后,parity tripwire 按设计打红,packages/types/src/widget.ts的锚点注释指向不存在的名字 #6275(RuntimeXxx 命名 A/B,repo:objectui,v17)未裁。readFileSync正则提前钉死。[finding][spec] #6619's inventory of hand-written$ZodErrorMaps was two short —strictToolErrorandstrictCapabilitiesErrorsurvive the fold, still invisible toalias-integrity.test.ts#6805 提出的「闭合钉放宽到任何新手写 map」与之相邻,不冲突。ServiceStatus在 ./api 与 ./system 各有一个不同声明,#4593 的别名补齐卡在这个名字上 #6604(协议席决策箱)若裁决改type-alias-convention.pin.test.ts,与 test(spec): put the pin file's two prose counts under the counting assertion (#6605) #6689 已落地计数形状同文件。026101660 … (#6243) (#6288)),抽查成员 expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085 =closed/completed。问题是容器卡没关,仍带pm:queue+target:v17⇒ 发版板上的一条假条目,且会被队列扫描当成可派卡捞出来。已于 01:09Z 在卡上留只读观察 + 两条处置分支;⛔ 不关不重标不重指派(assigneeqq9340100,非本席)。同类残留是全仓性的:已关闭的成员卡也留着pm:queue/target:v17。hook.zod.ts的positionsJSDoc 仍把services.sharing.canEdit(…)举为「hook 可以这么读」的正例 —— #5720 已证实 hook 拿不到services#6001、ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083/spec: ADR-0122 phase 2 — flip bare names to parsed semantics (#6083) #6279、把 44 个strictUnknownKeyError直调点批量迁到strictObject,棘轮降到 0(路线 1 消不掉手抄数组与 shape 的漂移) #5593、ADR-0117 D1 声明面:ownership 枚举扩展 'business_unit'(须与列注入同 PR 或严格后置) #5678。G. 环境注记(⛔ 接任会话必读,每条都咬过人)
api.github.com返回 403 —— GitHub 仅 MCP 可达;靠写后回读。date -u取准时间 —— 心跳文本曾偏差数小时。git log/ls-remote)不吃 REST 配额 —— 配额紧张时一律用它。git fetch origin main --deepen=100。Bashcwd每次重置 —— 一律git -C。list_issues多标签过滤是 OR;issue_write的labels整组替换(先读现值合并再写)。pm:queue与pm:dispatched会因 dev 认领时的整组回写并存 —— 派发后与收卡后各回读一次清残留。issue_read get_labels不解析 PR 号(GraphQL 只认 issue);PR 标签写用issue_write可行(REST 视 PR 为 issue)。功能性回读:补打skip-changeset后rerun_failed_jobs,门禁转绿即证明标签生效(fix(ci): Check Changeset 实时读 skip-changeset 标签,首个 run 不再永久红 (#5580) #5625 门禁读实时标签)。*.test.tsexclude —— 文件可对pnpm typecheck完全隐形却照样顶棘轮;CommonJS 目标包里每个import.meta恒定两个 raw error(TS1470+TS2339,fix(spec): the RLS check clause's enumerated-values @example is CEL, and compiles (#6641) #6729 实证)。packages/spec已于@ts-expect-error退役 pin 在packages/spec里是幽灵检查:tsconfig 把**/*.test.ts排除出唯一的tsc --noEmit#5286 从 TEST_DEBT 毕业,改用按文件的test-typecheck-debt.json(由check:test-typecheck校验)—— spec 侧加测试动不了 TEST_DEBT 数字,跨包加测试会(fix(spec): wait-timeout 处方改印能真正解析的timerDuration: '60000'(#6758) #6847 实测)。--re-measure需要先建全闭包,首次拒绝是已知假红。Failed to resolve entry for package @objectstack/…与check:api-surface的「stale」 —— 先pnpm --filter '<pkg>^...' build再判(三次实证)。skip-changeset不会自动打 —— 曾有 dev 报称自动化,已用 check-run 时间戳证伪。