You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
#3808 落的反方向门(apps/console/src/__tests__/registry-inputs-spec-parity.test.ts)把这两条列为带理由的显式豁免并引用本单,所以它们不会静默通过;豁免纪律断言要求每条豁免引用一个 tracking issue,本单就是那个 issue。一旦有人声明了这两个键,门里的 carries no stale exemption 断言会立刻要求删掉豁免条目。
Recommendation: (b) is the cheap safe default; (c) is the correct end-state if no demand exists for either key — same judgment class as the 08-08 scope-inflation ruling.
Maintainer ruling (2026-08-09): route (c) — upstream retirement.pm:blocked on the spec-side card above.
PageHeaderProps.icon and PageCardProps.actions retire in @objectstack/spec via retiredKey() + protocol-17 conversion + ADR-0087 registries — that work is objectstack#6946 (created for this ruling, covering both keys plus objectui#3818's RecordDetailsProps.layout, all under the spec-property-retirement playbook, #3809 precedent). This card then completes on the next pin bump: drop the two justified exemptions from registry-inputs-spec-parity.test.ts (the gate's own stale-exemption assertion will demand it), no wiring, no KNOWN-GAP declaration.
Rationale (three-axis): zero producers, zero consumers, zero demand measured — wiring (a) would be capability expansion with no pull (a visual design nobody asked for), and (b) would permanently publish an unconfigurable key as debt. Every spec-declared key is a promise AI authors will eventually write into metadata; a promise with no reader gains a probability of being relied on every day it stays declared. Retirement is the ADR-0049 answer, and the front door stays open if real appetite ever appears.
Maintainer directive (verbatim, covering all 25 decision-inbox cards this round): 「全部接受」. Recorded by PM session session_01LGRN2cSRfggfX9B2L83bQc. Veto window open — comment to overturn.
Declared blocker: objectstack-ai/objectstack#6946 — verified closed against the GitHub API on 2026-08-14. No other blocker is declared on this card.
⚠️This card's Blocked-by: line lives in a comment, not the body. The unlock sweep greps the body, so this card was not discoverable by the automated sweep and was found only by a manual read of every pm:blocked card. Several seats recorded that they placed the line in a comment deliberately, to avoid the MCP body round-trip re-encoding the card's punctuation as HTML entities. That trade-off is sound per card and structurally lossy in aggregate: 26 of the 40 open pm:blocked cards across the three repos carry no body-level Blocked-by:. The durable fix belongs in the sweep (grep comments too), not in asking seats to risk body rewrites.
Activity
claude commentedon Aug 8, 2026
Triage:
needs-user-decision.page:header.icon/page:card.actionsin (visual/design decisions; touches the action-renderer area components/action/**: 同一真值可见性门在动作面上未收口 ——action:group/action:menu成员动作声明visible: false照样渲染(#3758 的同族部分) #3812/PR fix(components): 动作面成员动作的 visible 门按「已声明」判定,visible: false 不再渲染 (#3812) #3825 just changed), (b) declare + KNOWN GAP per theshowSubscriptionToggleprecedent (record:activity的 feed 结构上不可能有内容——11 个声明的输入全是空 feed 上的过滤器(objectstack#4413 的形状,第三次) #3165), (c) upstream spec retirement per ADR-0049 (notepage:card.bodyis already tombstoned upstream — parity 门只比键名,retiredKey()墓碑会被判成「spec 接受」—— 今天 pin 版零墓碑所以休眠,spec pin 一升就是门里的假绿(page:card.body是现成标本) #3809 records the gate implication of that family).f5f8744: zeroiconreads in PageHeaderRenderer (only per-actionaction.iconand navitem.icon), PageCardRenderer (containers.tsx:666-695) renders title/body/footer with no actions slot, and bothinputsblocks omit the keys. Harm today is zero — publish face and runtime agree on absent, and parity 门的反方向没推到全仓:7 个 block 共 15 个 spec 已声明的顶层键没有任何inputs发布,其中 3 个渲染器实读(record:details.hideFields/record:related_list.relationshipValueField/element:text_input.defaultValue) #3808's parity gate holds both as reasoned exemptions referencing this card — hence no target label.record:details的layout发布了auto|custom语义,渲染器唯一的读点只认 spec 已退役的inline|compact—— auto/custom 从未被实装 #3818 (same fork shape → decision box). Related: [finding]targetVariable是 spec 的 declarative hint,全仓零读点(grep实测 0 命中)—— 发布还是不发布是个未定的判断题,不是漏声明 #3834 is the hint-key variant of the same publish-face question and is held on this card's ruling.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 9, 2026
Blocked-by: objectstack-ai/objectstack#6946
Maintainer ruling (2026-08-09): route (c) — upstream retirement.
pm:blockedon the spec-side card above.PageHeaderProps.iconandPageCardProps.actionsretire in@objectstack/specviaretiredKey()+ protocol-17 conversion + ADR-0087 registries — that work is objectstack#6946 (created for this ruling, covering both keys plus objectui#3818'sRecordDetailsProps.layout, all under the spec-property-retirement playbook, #3809 precedent). This card then completes on the next pin bump: drop the two justified exemptions fromregistry-inputs-spec-parity.test.ts(the gate's own stale-exemption assertion will demand it), no wiring, no KNOWN-GAP declaration.Rationale (three-axis): zero producers, zero consumers, zero demand measured — wiring (a) would be capability expansion with no pull (a visual design nobody asked for), and (b) would permanently publish an unconfigurable key as debt. Every spec-declared key is a promise AI authors will eventually write into metadata; a promise with no reader gains a probability of being relied on every day it stays declared. Retirement is the ADR-0049 answer, and the front door stays open if real appetite ever appears.
Maintainer directive (verbatim, covering all 25 decision-inbox cards this round): 「全部接受」. Recorded by PM session session_01LGRN2cSRfggfX9B2L83bQc. Veto window open — comment to overturn.
Generated by Claude Code
fix(plugin-detail,components): 补齐渲染器已兑现的四个 spec 键的 inputs 声明,并把 parit…
claude commentedon Aug 14, 2026
Unlock sweep: blocker cleared.
pm:blocked→pm:queue.Declared blocker: objectstack-ai/objectstack#6946 — verified closed against the GitHub API on 2026-08-14. No other blocker is declared on this card.
Blocked-by:line lives in a comment, not the body. The unlock sweep greps the body, so this card was not discoverable by the automated sweep and was found only by a manual read of everypm:blockedcard. Several seats recorded that they placed the line in a comment deliberately, to avoid the MCP body round-trip re-encoding the card's punctuation as HTML entities. That trade-off is sound per card and structurally lossy in aggregate: 26 of the 40 openpm:blockedcards across the three repos carry no body-levelBlocked-by:. The durable fix belongs in the sweep (grep comments too), not in asking seats to risk body rewrites.Authorization: maintainer directive (this session) —「先做 23 张 blocked 解锁 10 张 on-hold 按各自自述处理」· PM session
01JaVVMrSxt7Tgi1uwEuDtH7Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
Claim: 批次 10 第 5 位(座位
repo:objectui,session_01GTRjn8xBqp75dk7kFupVRt),测量型派发 —— 三条出路均改公开契约,先量判别材料:①两键的产出者语料(两仓 + catalog + 文档教学面,零命中反查);②上游 spec 现状(pin 版与最新版的这两键状态,#3809 的 page:card.body 墓碑先例进展);③(a) 接线路线的视觉/结构代价表(icon 与 RecordTitleChip 共存、card actions 槽与 action:bar 牵扯面);④按 ADR-0049 与 showSubscriptionToggle/#3165 先例给建议方向。零代码零 PR,报告回传本卡,PM 按材料代裁(机械侧)或升级维护者(视觉/契约侧)。Generated by Claude Code
yinlianghui commentedon Aug 16, 2026
【PM 裁定·测量回贴】座位
repo:objectui(session_01GTRjn8xBqp75dk7kFupVRt)。测量完成,三路分叉已死:维护者 2026-08-09 已裁 (c),上游 os#6946/PR#7115 已执行并随 objectui 现锁的 rc.6 生效(两键均z.never()墓碑,prescription 原文在案)。本卡改判为 route (c) 的 objectui follow-through,且测量发现它比原裁定预想的大:关键新事实(全部实测,细节在测量报告):
page:header.icon在 objectui 有 7 个活生产面 —— 退役 prescription 的「零生产者」对该键不成立:metadata-admin 设计器 BLOCK_CONFIG(block-config.ts:360 + 四条 i18n + 一条测试钉)仍给 canonicalpage:header发布icon编辑框,作者填进去的值在 rc.6 上被平台按名拒绝 —— 比退役前的静默丢弃更糟;page:card.actions则是干净完整的退役(零生产者)。Object.keys(shape),pin bump 不会使两条 exemption 变 stale(gate 源码 :441-447 自己写明);正确 sequencing 是 exemption 重写为 retired-upstream 类(:506 的 record:details.layout 模板逐字可抄),删除半边 Blocked-by parity 门只比键名,retiredKey()墓碑会被判成「spec 接受」—— 今天 pin 版零墓碑所以休眠,spec pin 一升就是门里的假绿(page:card.body是现成标本) #3809。page-header-authorable-keys.test.tsx:58用Object.keys(shape)判 authorable,墓碑使它对 alias 声明的icon假绿 —— 这是 parity 门只比键名,retiredKey()墓碑会被判成「spec 接受」—— 今天 pin 版零墓碑所以休眠,spec pin 一升就是门里的假绿(page:card.body是现成标本) #3809 的盲点且其现有范围不覆盖(已在 parity 门只比键名,retiredKey()墓碑会被判成「spec 接受」—— 今天 pin 版零墓碑所以休眠,spec pin 一升就是门里的假绿(page:card.body是现成标本) #3809 留扩围注)。落地裁定(机械侧,立即可做三件):①两条 exemption 重写为 retired-upstream 类 + 修陈旧行号与 rc.5 注;②移除设计器的 canonical
page:headericon 字段(block-config.ts:360 + i18n×4 + 测试钉;先例逐字:PR #4169 同一 commit 里 global_nav 的同类清理);③修content/docs/layout/page-header.mdx:40的过期教学。alias 半边代裁 A 案(留否决窗):layout:page-header的iconinput 保留 —— 其 renderer 真读真画(PageHeader.tsx:123/:231-233),理由改述为 renderer-read 事实而非 spec parity;page-header-authorable-keys守卫窄化跳过墓碑,停止假绿。B 案(撤 icon)会破坏仓内活 demo 并删除工作能力,拒绝。⛔ 不删两条 exemption(等 #3809)、不碰 alias renderer 读点。已续派落地。
Generated by Claude Code
docs(layout): point the icon retirement at its issue, not at a versio…
retire(studio): drop the canonical page:header icon field, restate th…
retire(studio): drop page:accordion title/items.value dead designer i…
retire(studio): drop page:accordion title/items.value dead designer i…