Seat registration post for the domain:spec @ objectstack-ai/objectui lane — the repo-split half created by the maintainer's 2026-08-23 roster ruling.
Body is authoritative; title and assignee are derived views. Single writer: the sitting seat PM. Comments are audit only and never carry state. Position description is versioned in references/lanes/spec.md; this post carries state only .
1. ⚪ 席位当前空缺 —— 上一班已下班
上一班: session_01E7snar5mwF7qoXJazqKhys(GitHub 身份 os-sam),2026-08-24T09:49Z 由维护者叫停下班 。
交接状态:在飞 0 · 队列 0 可派 · 决策箱 2 · 待人工合并 0 · 返工 0 · 红 CI 合并 0 · 重跑 0。 没有任何在飞工作被丢下,没有未复核的 PR,没有未认领的已派卡。
每小时巡检 cron 已暂停 (trig_01C3iuHMXUgrTWD8rJyPkETe,名称已标「已暂停,下班」)。接班者:把它 enabled: true 即可恢复,prompt 内容仍然有效 ;⛔ 不要再改回「一次性定时器 + 每轮重挂」的老模式 —— 那会让维护者每轮被弹一次确认(本班犯过,已修)。
2. 本班成绩单
R1–R8 —— 10 张卡 / 10 个 PR / 10 个合并 / 0 返工 / 0 红 CI 合并 / 0 重跑 / 1 张转出 / 2 张进决策箱。
轮次
卡
PR
合并
闸门
R1
#5330 行谓词正典
#5737
d1ab06f
19+3
R1
#5667 CalendarViewSchema 收敛
#5739
065bba7
18+3+1(Build Docs 真失败,当时 #5668 仍活)
R2
#5738 Phase 0 文档清扫
#5758
702c48a
17+3
R2
#2890 ObjectView 漂移守卫
#5760
af3861f
19+3
R3
#5740 退役 'agenda'(CalendarViewMode)
#5782
b55a346
18+3+1
R4
#5494 ReferenceRailEntry 派生 + 退役 icon
#5794
09:27:58Z
19+3 —— 两个 shard 报告前就合并了,见 §4
R5
#5784 退役 'agenda'(defaultView ×3 面)
#5806
12:05:47Z
19+3,先读完农场再挂
R8
#5821 TableColumnSchema.editable 镜像
#5854
689b97959
19+3
R8
#5830 退役 DashboardComponentSchema.aria
#5855
18a8e7db7
19+3
R8
#5362 从 spec 派生 ObjectSchemaMetadata
#5860
b2ea29717
19+3,含真实 3m45s Build Docs 绿
转出: #5435 → objectstack#11195(仍 open、pm:queue、自 08-23 04:00Z 无人认领)。
本车道 dev 提出的 finding: #5738 ✅ · #5740 ✅ · #5741 · #5759 · #5783 · #5784 ✅ · #5792 · #5793 · #5852 · #5853 · #5859 · objectstack#11195 · objectstack#11284 · objectstack#11408。
3. 热文件串行队列
空。 packages/types 本班一度并行三张卡(zod/data-display.zod.ts · complex.ts · field-types.ts,互不相交 ),每个 dev 都确认围栏未越界。三个合并后已释放。
4. 本席实测的平台事实
⛔ 实测的平台事实和裁决一样会过期 —— 包括自己写下的。 Build Docs main 红(Build Docs is red on main: fs reaches the browser bundle via @objectstack/spec → pg-connection-string #5668 )已于 2026-08-23T09:56:22Z 失效 ,由 PR Refresh the lockfile to @objectstack/* 17.2.0 — fs stops reaching the browser bundle #5790 修复(lockfile 升到 @objectstack/* 17.2.0)。本席在 feat(types): retire 'agenda' from defaultView on all three declaration faces #5806 /fix(types): declare editable on the rich TableColumnSchema zod mirror so locked columns stay locked through parse #5854 /fix(types): retire DashboardComponentSchema.aria — spec-tombstoned, renderer-dead #5855 /feat(types): derive ObjectSchemaMetadata from the spec's ServiceObject; settle listViews spelling (#5362) #5860 上继续引用了这条过期排除,比失效晚了约 6 小时。方向安全 —— 从没把红 PR 说成绿 —— 但过期的排除等于把盲区精准对准了一个你已经不再读的闸门 。复查「已知坏掉」的闸门是巡检职责,不是背景假设。
Build Docs 当前读法(Refresh the lockfile to @objectstack/* 17.2.0 — fs stops reaching the browser bundle #5790 之后): ~10–13 秒绿 = turbo 缓存命中,两个方向都不算证据 ;3–4 分钟红 = 真失败(feat(types,plugin-calendar): converge CalendarViewSchema on the calendar-view renderer's read set #5739 、feat(types): retire 'agenda' from CalendarViewMode and the zod enum #5782 实测,当时 Build Docs is red on main: fs reaches the browser bundle via @objectstack/spec → pg-connection-string #5668 仍活);3 分 45 秒绿 = 真跑真过 (feat(types): derive ObjectSchemaMetadata from the spec's ServiceObject; settle listViews spelling (#5362) #5860 —— 就是这个读数暴露了过期事实)。时长仍是判据,结论变了。
⛔ Test (shard n/4) 不是必需检查,且直接合并会被拒。 (1) fix(plugin-detail): derive ReferenceRailEntry from @objectstack/spec and retire the icon key #5794 在 09:27:58Z 自动合并时 shard 2/4 和 4/4 仍在跑(事后都过了 —— 结果不能给假设背书 )。(2) merge_pull_request → 405 … Changes must be made through the merge queue,所以 auto-merge 就是入队机制 。纪律在于什么时候挂 :先按名字读完整农场(19 success + 3 skipped = 22),再挂。
⛔ 合并时序审计结论是「险过」而非「全清」 (评论 5386204916)。R1–R3 五个 PR 都在 shard 报告之后才合并,fix(plugin-detail): derive ReferenceRailEntry from @objectstack/spec and retire the icon key #5794 是唯一一个在证据不全时落地的 。但 feat(core,react): declare record.* the row-predicate canon and warn on the two deprecated spellings #5737 只早了 45 秒、Add the ObjectViewSchema drift guard, and fold the four per-view-type config aliases #5760 只早了 35 秒 —— 那是 merge queue 的延迟,不是判断力。那五个的挂载时刻不可考,所以「同样做法、只是时机不同」是推断,不是测量 。
⛔ check_suite.completed 不是闸门读数。 它在 R8 三个 PR 上都触发过,农场照样按名字读。GitHub 自己的提示就说它不覆盖 cancelled suite、无 run 的 suite 和 legacy status。
⛔ 接口带索引签名时 keyof 守卫是空的 —— 采信前先查接口。 三次实测:Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890 (删了键 type-check 仍绿)、finding(types): DashboardComponentSchema.aria declares a key the spec tombstoned and no renderer reads — stale "Aligned with @objectstack/spec AriaPropsSchema" claim #5830 (BaseSchema 的 [key: string]: any 让 @ts-expect-error pin 钉不住 —— dev 自己诊断出来并改用字面键集提取)、finding(types): the rich TableColumnSchema zod mirror omits editable — a key data-table reads at three sites is silently stripped by validation, so a column locked with editable: false re-opens after parse #5821 (TableColumn 是独立接口无索引签名,所以它的 Equal 穷尽 pin 是真的 —— 本席在 origin/main 上核过)。同一个问题,相反答案,都对。
⛔ 非 strict schema 里「能解析」不是 pin。 finding(types): the rich TableColumnSchema zod mirror omits editable — a key data-table reads at three sites is silently stripped by validation, so a column locked with editable: false re-opens after parse #5821 的消融实验证明:原有的 safeParse(...).success 循环在键仍被剥掉时照样绿 —— z.object 接受并静默剥离未声明键。要 pin 解析后的输出,不是解析结果。
⛔ 自己的 checkout 会过期。 复核 feat(types): retire 'agenda' from defaultView on all three declaration faces #5806 时共享 checkout 停在 feat(types): retire 'agenda' from CalendarViewMode and the zod enum #5782 之前,在它上面跑「还有哪些面带 'agenda'」的 grep 会得出毫无价值的结论。在 PR 真实 base sha 上重跑。
⛔ squash 合并后分支 head 永远不是 main 的祖先。 git branch -r --contains <head> 对已落地的 squash PR 返回 0 —— R8 三个 PR 上都实测到。用 commit 标题核实落地。
⛔ 退役卡要查活的生产者,不只是消费者。 ReferenceRailEntry is owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extra icon key the spec's strict schema refuses #5494 的 synth 正在把要退役的那个键写进每一个合成页。此后每张退役 brief 都带这条;finding(types): DashboardComponentSchema.aria declares a key the spec tombstoned and no renderer reads — stale "Aligned with @objectstack/spec AriaPropsSchema" claim #5830 和 ObjectSchemaMetadata declares neither titleFormat nor list_views / listViews nor icon, and the runtime reads all three #5362 都跑了生产者扫描,都干净。
⛔ 裁决两个方向都会老化。 ReferenceRailEntry is owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extra icon key the spec's strict schema refuses #5494 的前提在立卡时就是假的 ;finding(types/plugin-calendar): defaultView declares 'agenda' in ObjectCalendarSchema and both zod twins, but ObjectCalendar reads it as 'month' | 'week' | 'day' #5784 的前提比 brief 更强 (spec 早已是三值)。裁决复读和过期检查是同一遍。
⛔ 标题不是状态 ([Decision] Row-predicate spelling contract: does the canon narrow to record.*, or do the bare shorthand and data.* spellings stay? (the uncarried "#4075 step 3" question) #5330 顶着 [Decision] 在 pm:queue,并非误标)。⛔ search_issues 会静默返回零,连控制词一起 (objectstack#11193)—— 用两种独立方法去重。⛔ ADR-0087 D2 墓碑仍留在 spec 的 .shape 里 ,所以「键在不在」的检查会把已退役键报成活的。⛔ 被杀的 subagent 只要推过 commit 就不是死认领 —— 先 git ls-remote --heads origin 'refs/heads/claude/issue-*' 再决定 resume 还是 withdraw。
check:spec-symbols 跑在 Type Check job 里 (ci.yml:238),没有自己的名字;它的 DEBT 台账带棘轮(:1066)。合规形式:export type { X } from '@objectstack/spec/…' 与 export type X = z.infer<typeof SpecX>(:907-926)。
@ts-expect-error 只有在该包的 type-check 串了读这个文件的 tsconfig 时才有强制力 —— packages/types 串了(tsc --noEmit && tsc -p tsconfig.examples.json && tsc -p tsconfig.test.json)。
Console eager-closure 预算并不贴顶 —— fix(plugin-detail): derive ReferenceRailEntry from @objectstack/spec and retire the icon key #5794 上 98.2%,两小时后 feat(types): retire 'agenda' from defaultView on all three declaration faces #5806 上 80.9%。单次预算读数是快照,不是趋势。
十次派发中始终成立的继承前提:本仓没有 needs:contract-review 标签(就地按 tier 派发,「直接入队」);dispatch-gates.mjs 是错的树。受治理面(AGENTS.md、CLAUDE.md、.claude/**、docs/adr/**)—— 没有任何 PR 碰过。
5. 接班者从这里开始
可派卡 0 张,但必须复验 —— 车道曾在 08-23 一小时内从 0 涨到 3,「空」这个读数过期很快。最近一次扫描 2026-08-24T08:56Z,无变化。
不可派(不要重推):#2731 (design-first、ADR 前置、地基落在 objectstack —— 那是另一个 spec 车道;⛔ 不要给别人的卡改标) · #4535 (已指派真人 yinlianghui) · #2890 / #5435 / #2231 / #4356 (pm:blocked) · #5213 / #4631 / #4052 / #3834 (pm:on-hold) · #4043 (tracking) · #5741 (决策箱)。
接班第一件事,按序:
分诊定级观察 —— 新工作最可能的来源。 R8 的 dev 提了 finding(types): designer-surface DashboardConfig.aria / DashboardConfigSchema.aria declare a { label, description } aria object nothing reads — and the panel they document does not consume them #5852 、finding(types): TableColumn.type disagrees three ways — interface declares 8 literals, zod mirror accepts any string, renderer's live read set handles values outside the union via an as any cast #5853 、ObjectTrigger and ObjectRelationship are orphaned hand-written exports after the ObjectSchemaMetadata derivation (#5362) #5859 、objectstack#11408 ,都还没定级。另有 finding(i18n): calendar.agenda is a confirmed-dead key in all ten locale packs — no static reader, no dynamic calendar. head, and the enum value it labeled is retired #5783 · [finding] registry-inputs-spec-parity narrates the ReferenceRailEntry icon divergence as unsettled after #5494 resolved it #5792 (已因落地过期 —— 引用的 ReferenceRailEntry is owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extra icon key the spec's strict schema refuses #5494 已合并,先复核是否仍描述真实缺陷) · Packages whose published d.ts references spec-17.1.0-only symbols still declare "@objectstack/spec": "^17.0.0" — the range admits a spec that lacks the symbols #5793 。finding(types): TableColumn.type disagrees three ways — interface declares 8 literals, zod mirror accepts any string, renderer's live read set handles values outside the union via an as any cast #5853 最强 (TableColumn.type 三面不一致:接口 8 值联合 / 镜像任意 string / 渲染器经 as any 读 int·integer·float·double),但很可能要先裁「正规值集」,属决策而非派发。
解锁扫描 —— objectstack#11195(解锁 normalizeListViewSchema manufactures userActions.group / hideFields / rowColor — three keys ListViewSchema refuses BY NAME, so the fold's own output fails the view save gate #5435 ,已无人认领约 30 小时)。objectstack#11284 已裁「收敛」并已在 objectstack 车道 pm:queue;Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890 要等那张卡落地才解锁 ,不是裁决当下(已记在 Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890 评论 5386802331,含 deprecate-first 纪律和 conditionalFormatting/exportOptions 的围栏)。
恢复每小时巡检 cron(见 §1)。
⛔ 决策箱 —— 两张都在维护者手上
#5741 —— 存量元数据通道。 自本席 08-23 08:06Z 的 ACCEPT 后无新评论。行谓词退役 Phase 2 卡在一个没人能跑的普查上。卡面有完整四棱分析(A 单租户 token —— ⛔ 单独不足;B 只读副本/dump;C 离线导出)。推荐 C,回退 B。
⚠️ 本班已有四张卡顶着这个缺口交付 —— #5494 、#5784 、#5830 、#5362 全都只能说 「无可达 用量」而非「无用量」。#5362 最尖锐:它保留了全部 snake 拼写读点 并把这个容忍度 pin 住,正因为存量不可测 —— 这是正确做法,但意味着清理被无限期推迟。objectstack#7917 在 2026-08-13 提过同一需求,至今 11 天。
objectstack#11284 —— 已裁「收敛」 (React 层采纳 metadata 层拼写,viewType→type 同笔,deprecate-first)。已转为 objectstack spec 车道的实施卡,落地前本仓无事可做。
6. 备注
八次 dev 对本席 brief 的纠正/升级,全部公开接受。 三次自我更正:finding(types/plugin-calendar): CalendarViewSchema declares 9 of its 13 keys that the calendar-view renderer never reads — including events, its only required key, which the renderer deliberately drops #5667 方向说反(.passthrough() 意味着放宽 而非收窄);ReferenceRailEntry is owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extra icon key the spec's strict schema refuses #5494 的 ACCEPT 声称 auto-merge 在等非必需检查;以及上面 §4 的 Build Docs 过期事实更正 。两次节奏失误也如实记录:R4→R5 的 58 分钟空档,和 R8 的九小时空档 (派发后没重挂定时器,三个已绿 PR 无人复核 —— 已由 cron 从机制上消除)。
两张卡靠裁决继承落地 (finding(types/plugin-calendar): view: 'agenda' is declared by CalendarViewMode and the zod enum but the calendar-view renderer silently falls back to 'month' #5740 继承 finding(types/plugin-calendar): CalendarViewSchema declares 9 of its 13 keys that the calendar-view renderer never reads — including events, its only required key, which the renderer deliberately drops #5667 ,finding(types/plugin-calendar): defaultView declares 'agenda' in ObjectCalendarSchema and both zod twins, but ObjectCalendar reads it as 'month' | 'week' | 'day' #5784 继承 finding(types/plugin-calendar): view: 'agenda' is declared by CalendarViewMode and the zod enum but the calendar-view renderer silently falls back to 'month' #5740 )—— 记为否决窗口而非许可闸门 ,派发前都重新测过。
跨仓姿态: 把 spec 侧契约卡提进 objectstack 的 domain:spec 队列,同笔把本仓卡翻 pm:blocked + Blocked-by:。不扫 domain:ui([pm:seat] domain:ui — objectui execution seat · 🟢 R26 in flight (os-sam) · 32 PRs landed since the 11h42m freeze · landing backlog CLEARED · 1 held (#6814 human floor) · 3 dev in flight · 12 in decision box #5560 )和 domain:devx(objectstack#10602)。
Seat registration post for the
domain:spec@objectstack-ai/objectuilane — the repo-split half created by the maintainer's 2026-08-23 roster ruling.Body is authoritative; title and assignee are derived views. Single writer: the sitting seat PM. Comments are audit only and never carry state. Position description is versioned in
references/lanes/spec.md; this post carries state only.1. ⚪ 席位当前空缺 —— 上一班已下班
session_01E7snar5mwF7qoXJazqKhys(GitHub 身份os-sam),2026-08-24T09:49Z 由维护者叫停下班。trig_01C3iuHMXUgrTWD8rJyPkETe,名称已标「已暂停,下班」)。接班者:把它enabled: true即可恢复,prompt 内容仍然有效;⛔ 不要再改回「一次性定时器 + 每轮重挂」的老模式 —— 那会让维护者每轮被弹一次确认(本班犯过,已修)。2. 本班成绩单
R1–R8 —— 10 张卡 / 10 个 PR / 10 个合并 / 0 返工 / 0 红 CI 合并 / 0 重跑 / 1 张转出 / 2 张进决策箱。
d1ab06f065bba7Build Docs真失败,当时 #5668 仍活)702c48aaf3861f'agenda'(CalendarViewMode)b55a346ReferenceRailEntry派生 + 退役icon'agenda'(defaultView×3 面)TableColumnSchema.editable镜像689b97959DashboardComponentSchema.aria18a8e7db7ObjectSchemaMetadatab2ea29717Build Docs绿转出: #5435 → objectstack#11195(仍 open、
pm:queue、自 08-23 04:00Z 无人认领)。本车道 dev 提出的 finding: #5738 ✅ · #5740 ✅ · #5741 · #5759 · #5783 · #5784 ✅ · #5792 · #5793 · #5852 · #5853 · #5859 · objectstack#11195 · objectstack#11284 · objectstack#11408。
3. 热文件串行队列
空。
packages/types本班一度并行三张卡(zod/data-display.zod.ts·complex.ts·field-types.ts,互不相交),每个 dev 都确认围栏未越界。三个合并后已释放。4. 本席实测的平台事实
Build Docsmain 红(Build Docsis red onmain:fsreaches the browser bundle via@objectstack/spec→pg-connection-string#5668)已于 2026-08-23T09:56:22Z 失效,由 PR Refresh the lockfile to @objectstack/* 17.2.0 — fs stops reaching the browser bundle #5790 修复(lockfile 升到@objectstack/*17.2.0)。本席在 feat(types): retire 'agenda' from defaultView on all three declaration faces #5806/fix(types): declareeditableon the rich TableColumnSchema zod mirror so locked columns stay locked through parse #5854/fix(types): retire DashboardComponentSchema.aria — spec-tombstoned, renderer-dead #5855/feat(types): derive ObjectSchemaMetadata from the spec's ServiceObject; settle listViews spelling (#5362) #5860 上继续引用了这条过期排除,比失效晚了约 6 小时。方向安全 —— 从没把红 PR 说成绿 —— 但过期的排除等于把盲区精准对准了一个你已经不再读的闸门。复查「已知坏掉」的闸门是巡检职责,不是背景假设。Build Docs当前读法(Refresh the lockfile to @objectstack/* 17.2.0 — fs stops reaching the browser bundle #5790 之后): ~10–13 秒绿 = turbo 缓存命中,两个方向都不算证据;3–4 分钟红 = 真失败(feat(types,plugin-calendar): converge CalendarViewSchema on the calendar-view renderer's read set #5739、feat(types): retire 'agenda' from CalendarViewMode and the zod enum #5782 实测,当时Build Docsis red onmain:fsreaches the browser bundle via@objectstack/spec→pg-connection-string#5668 仍活);3 分 45 秒绿 = 真跑真过(feat(types): derive ObjectSchemaMetadata from the spec's ServiceObject; settle listViews spelling (#5362) #5860 —— 就是这个读数暴露了过期事实)。时长仍是判据,结论变了。Test (shard n/4)不是必需检查,且直接合并会被拒。 (1) fix(plugin-detail): derive ReferenceRailEntry from @objectstack/spec and retire the icon key #5794 在 09:27:58Z 自动合并时 shard 2/4 和 4/4 仍在跑(事后都过了 —— 结果不能给假设背书)。(2)merge_pull_request→405 … Changes must be made through the merge queue,所以 auto-merge 就是入队机制。纪律在于什么时候挂:先按名字读完整农场(19 success + 3 skipped = 22),再挂。5386204916)。R1–R3 五个 PR 都在 shard 报告之后才合并,fix(plugin-detail): derive ReferenceRailEntry from @objectstack/spec and retire the icon key #5794 是唯一一个在证据不全时落地的。但 feat(core,react): declarerecord.*the row-predicate canon and warn on the two deprecated spellings #5737 只早了 45 秒、Add the ObjectViewSchema drift guard, and fold the four per-view-type config aliases #5760 只早了 35 秒 —— 那是 merge queue 的延迟,不是判断力。那五个的挂载时刻不可考,所以「同样做法、只是时机不同」是推断,不是测量。check_suite.completed不是闸门读数。 它在 R8 三个 PR 上都触发过,农场照样按名字读。GitHub 自己的提示就说它不覆盖 cancelled suite、无 run 的 suite 和 legacy status。keyof守卫是空的 —— 采信前先查接口。 三次实测:Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890(删了键type-check仍绿)、finding(types):DashboardComponentSchema.ariadeclares a key the spec tombstoned and no renderer reads — stale "Aligned with @objectstack/spec AriaPropsSchema" claim #5830(BaseSchema的[key: string]: any让@ts-expect-errorpin 钉不住 —— dev 自己诊断出来并改用字面键集提取)、finding(types): the richTableColumnSchemazod mirror omitseditable— a keydata-tablereads at three sites is silently stripped by validation, so a column locked witheditable: falsere-opens after parse #5821(TableColumn是独立接口无索引签名,所以它的Equal穷尽 pin 是真的 —— 本席在origin/main上核过)。同一个问题,相反答案,都对。TableColumnSchemazod mirror omitseditable— a keydata-tablereads at three sites is silently stripped by validation, so a column locked witheditable: falsere-opens after parse #5821 的消融实验证明:原有的safeParse(...).success循环在键仍被剥掉时照样绿 ——z.object接受并静默剥离未声明键。要 pin 解析后的输出,不是解析结果。'agenda'」的 grep 会得出毫无价值的结论。在 PR 真实 base sha 上重跑。git branch -r --contains <head>对已落地的 squash PR 返回 0 —— R8 三个 PR 上都实测到。用 commit 标题核实落地。ReferenceRailEntryis owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extraiconkey the spec's strict schema refuses #5494 的 synth 正在把要退役的那个键写进每一个合成页。此后每张退役 brief 都带这条;finding(types):DashboardComponentSchema.ariadeclares a key the spec tombstoned and no renderer reads — stale "Aligned with @objectstack/spec AriaPropsSchema" claim #5830 和ObjectSchemaMetadatadeclares neithertitleFormatnorlist_views/listViewsnoricon, and the runtime reads all three #5362 都跑了生产者扫描,都干净。ReferenceRailEntryis owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extraiconkey the spec's strict schema refuses #5494 的前提在立卡时就是假的;finding(types/plugin-calendar):defaultViewdeclares'agenda'inObjectCalendarSchemaand both zod twins, butObjectCalendarreads it as'month' | 'week' | 'day'#5784 的前提比 brief 更强(spec 早已是三值)。裁决复读和过期检查是同一遍。record.*, or do the bare shorthand anddata.*spellings stay? (the uncarried "#4075 step 3" question) #5330 顶着[Decision]在pm:queue,并非误标)。⛔search_issues会静默返回零,连控制词一起(objectstack#11193)—— 用两种独立方法去重。⛔ ADR-0087 D2 墓碑仍留在 spec 的.shape里,所以「键在不在」的检查会把已退役键报成活的。⛔ 被杀的 subagent 只要推过 commit 就不是死认领 —— 先git ls-remote --heads origin 'refs/heads/claude/issue-*'再决定 resume 还是 withdraw。check:spec-symbols跑在Type Checkjob 里(ci.yml:238),没有自己的名字;它的 DEBT 台账带棘轮(:1066)。合规形式:export type { X } from '@objectstack/spec/…'与export type X = z.infer<typeof SpecX>(:907-926)。@ts-expect-error只有在该包的type-check串了读这个文件的 tsconfig 时才有强制力 ——packages/types串了(tsc --noEmit && tsc -p tsconfig.examples.json && tsc -p tsconfig.test.json)。needs:contract-review标签(就地按 tier 派发,「直接入队」);dispatch-gates.mjs是错的树。受治理面(AGENTS.md、CLAUDE.md、.claude/**、docs/adr/**)—— 没有任何 PR 碰过。5. 接班者从这里开始
可派卡 0 张,但必须复验 —— 车道曾在 08-23 一小时内从 0 涨到 3,「空」这个读数过期很快。最近一次扫描 2026-08-24T08:56Z,无变化。
不可派(不要重推):#2731(design-first、ADR 前置、地基落在 objectstack —— 那是另一个 spec 车道;⛔ 不要给别人的卡改标) · #4535(已指派真人 yinlianghui) · #2890 / #5435 / #2231 / #4356(
pm:blocked) · #5213 / #4631 / #4052 / #3834(pm:on-hold) · #4043(tracking) · #5741(决策箱)。接班第一件事,按序:
DashboardConfig.aria/DashboardConfigSchema.ariadeclare a{ label, description }aria object nothing reads — and the panel they document does not consume them #5852、finding(types):TableColumn.typedisagrees three ways — interface declares 8 literals, zod mirror accepts any string, renderer's live read set handles values outside the union via anas anycast #5853、ObjectTriggerandObjectRelationshipare orphaned hand-written exports after the ObjectSchemaMetadata derivation (#5362) #5859、objectstack#11408,都还没定级。另有 finding(i18n):calendar.agendais a confirmed-dead key in all ten locale packs — no static reader, no dynamiccalendar.head, and the enum value it labeled is retired #5783 · [finding] registry-inputs-spec-parity narrates theReferenceRailEntryicon divergence as unsettled after #5494 resolved it #5792(已因落地过期 —— 引用的ReferenceRailEntryis owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extraiconkey the spec's strict schema refuses #5494 已合并,先复核是否仍描述真实缺陷) · Packages whose published d.ts references spec-17.1.0-only symbols still declare"@objectstack/spec": "^17.0.0"— the range admits a spec that lacks the symbols #5793。finding(types):TableColumn.typedisagrees three ways — interface declares 8 literals, zod mirror accepts any string, renderer's live read set handles values outside the union via anas anycast #5853 最强(TableColumn.type三面不一致:接口 8 值联合 / 镜像任意 string / 渲染器经as any读int·integer·float·double),但很可能要先裁「正规值集」,属决策而非派发。normalizeListViewSchemamanufacturesuserActions.group/hideFields/rowColor— three keysListViewSchemarefuses BY NAME, so the fold's own output fails the view save gate #5435,已无人认领约 30 小时)。objectstack#11284 已裁「收敛」并已在 objectstack 车道pm:queue;Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890 要等那张卡落地才解锁,不是裁决当下(已记在 Migrate the remaining ListView legacy vocabulary to spec-canonical keys, and audit ObjectView/DetailView (#2231 phases 4–5) #2890 评论5386802331,含 deprecate-first 纪律和conditionalFormatting/exportOptions的围栏)。⛔ 决策箱 —— 两张都在维护者手上
#5741 —— 存量元数据通道。 自本席 08-23 08:06Z 的 ACCEPT 后无新评论。行谓词退役 Phase 2 卡在一个没人能跑的普查上。卡面有完整四棱分析(A 单租户 token —— ⛔ 单独不足;B 只读副本/dump;C 离线导出)。推荐 C,回退 B。
objectstack#11284 —— 已裁「收敛」(React 层采纳 metadata 层拼写,
viewType→type同笔,deprecate-first)。已转为 objectstack spec 车道的实施卡,落地前本仓无事可做。6. 备注
CalendarViewSchemadeclares 9 of its 13 keys that thecalendar-viewrenderer never reads — includingevents, its only required key, which the renderer deliberately drops #5667 方向说反(.passthrough()意味着放宽而非收窄);ReferenceRailEntryis owned by @objectstack/spec as of 17.1.0 and objectui's local copy declares an extraiconkey the spec's strict schema refuses #5494 的 ACCEPT 声称 auto-merge 在等非必需检查;以及上面 §4 的Build Docs过期事实更正。两次节奏失误也如实记录:R4→R5 的 58 分钟空档,和 R8 的九小时空档(派发后没重挂定时器,三个已绿 PR 无人复核 —— 已由 cron 从机制上消除)。view: 'agenda'is declared byCalendarViewModeand the zod enum but thecalendar-viewrenderer silently falls back to'month'#5740 继承 finding(types/plugin-calendar):CalendarViewSchemadeclares 9 of its 13 keys that thecalendar-viewrenderer never reads — includingevents, its only required key, which the renderer deliberately drops #5667,finding(types/plugin-calendar):defaultViewdeclares'agenda'inObjectCalendarSchemaand both zod twins, butObjectCalendarreads it as'month' | 'week' | 'day'#5784 继承 finding(types/plugin-calendar):view: 'agenda'is declared byCalendarViewModeand the zod enum but thecalendar-viewrenderer silently falls back to'month'#5740)—— 记为否决窗口而非许可闸门,派发前都重新测过。domain:spec队列,同笔把本仓卡翻pm:blocked+Blocked-by:。不扫domain:ui([pm:seat] domain:ui — objectui execution seat · 🟢 R26 in flight (os-sam) · 32 PRs landed since the 11h42m freeze · landing backlog CLEARED · 1 held (#6814 human floor) · 3 dev in flight · 12 in decision box #5560)和domain:devx(objectstack#10602)。