⏱️ 本卡所有读数取自同一动作:2026-09-18T10:07Z,树为 origin/main = d8b12fca97。由 domain:spec seat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派。
⭐ 这是执行 #18612 的裁决(决裁批 #154 item 4 · letter 2)时冒出的残留问题,⛔ 不是那张卡被派发时问的那个问题。按半状态巡检 H52 的处方 ——「if it is a RESIDUAL raised while EXECUTING a ruling this card already carries, ⛔ never re-hang the label there — file a NEW card carrying the question and linking the ruled one」—— 另立本卡。
⚠️ 本席先前把 needs-user-decision 挂回了 #18612,那是错的:一来违反上面那条(⛔ 不在已裁卡上重挂),二来会与它的 pm:dispatched 构成 H29 的双状态。本席的 label 写入当时也没有读回,事后现读发现根本没生效 —— 两个错叠在一起,结果是这个岔口一度不在任何收件箱里。本卡是它的正式载体。
要裁的一句话
⏱️ 2026-09-18T10:07Z 取。裁决写了「zero producers, so no conversion is owed」。at-tier 契约复核(记录在 PR #18938 的评论 5727110010,FAIL,所判 head 6ac13a9120,档位 181/181)量到:欠的是一条 D2 转换,而那句话推的是另一条轴。 到底补不补?
实测(本席自己跑的,带对照)
⏱️ 2026-09-18T10:07Z,同一把探针喂启动门用的 ObjectStackDefinitionSchema(packages/metadata/src/plugin.ts:915 正是用它 parse;链路 EnvironmentArtifactSchema.metadata → ObjectStackDefinitionSchema → packages/spec/src/stack.zod.ts:676 analyticsCubes: z.array(CubeSchema)):
BASE 16cb493d56 HEAD 6ac13a9120
⭐ 持久化形状 { name, relationship:'many_to_one', sql } ACCEPTED REFUSED unrecognized_keys at analyticsCubes.0.joins.p
DARK 只有 { name } REFUSED ACCEPTED
LIT 控制:一个垃圾键 REFUSED REFUSED ← 两侧都拒 ⇒ 上面那次翻转是读数
⇒ ⭐ 一份由旧 schema 自己的 parse 输出写成的 cube 产物,今天过得了启动门,那个 PR 之后过不了。 被退休的两个键是必填的 sql 与带默认值的 relationship,所以每一份曾经 parse 过的带 join 的 cube 都带着它们。
⚠️ 本席第一次跑这个探针时夹具写错(measures: [],实为 record),三条腿全在 measures 上被拒 —— LIT 控制与主体拒得一模一样,当场说明仪器没有鉴别力。那一次作废,⛔ 不作依据。
复核给出的两条,本席只转述不选
⛔ 本席不选。复核自己的话:「it must not ship silently either way」。
顺带一条与裁决相关的读数
裁决的普查写「objectstack examples —— 0 files」。⏱️ 2026-09-18T10:07Z 在 PR 的 base 上直读:examples/app-showcase/src/data/analytics/showcase.cube.ts 有一个作者写的 joins 条目,relationship 与 sql 两个键都带。⇒ 那句普查在本仓是错的(该处已在 PR #18938 里修掉)。
⛔ 本席未做的
- ⛔ 没有量仓外的产物(hotcrm / cloud 是别的仓,本会话够不到)。⇒ 「有多少已构建产物会被拒」本席无法测,只测到「这一类产物会被拒」。
- ⛔ 没有独立重跑复核报告里的其余读数(112/112 门禁等),本卡只带上面这一组本席自己跑的。
os-decision-facets
Prior rulings read: cube.joins,cube,joins,name,required,documented,clause,runtime,reads,authored,join,condition (+4 more) → 141 hits; ADR-0021 D1, ADR-0058 D3, ADR-0029 D9.7, ADR-0056 D4, ADR-0056 D5, ADR-0125 D2, ADR-0125 D3, ADR-0127 D9, ADR-0131 D13
⚠️ 上列决策本席逐条看过题名,没有一条预先回答「这次退休该不该配一条 D2」。真正贴题的是 ADR-0087 的附录与 Prime Directive #12(复核记录逐字引了它们),⭐ 而它们指向 A;与之相抵的是本卡所承接那次裁决的一句括号内推理。⇒ 这正是需要人来裁的地方,⛔ 本席不代裁。
The question, in one line: #18612 的退休要不要配一条 D2 strip 转换,以便旧产物在启动门自愈 —— 还是照裁决字面「no conversion is owed」落地?
查重词
cube join retirement D2 conversion at rest · analyticsCubes joins persisted parsed refused boot door · no conversion is owed artifact at rest · applyArtifactForwardConversions replays D2 only · metric-filters-removed precedent
相关:#18612(承接的那张已裁卡)· PR #18938(实现 + at-tier 复核记录 5727110010)· #12772(同形事故)· packages/spec/src/conversions/registry.ts 的 metric-filters-removed(同类的 D2 先例)
Generated by Claude Code
⏱️ 本卡所有读数取自同一动作:2026-09-18T10:07Z,树为
origin/main=d8b12fca97。由domain:specseat 2(座位贴 #18549,session_01JbZnqu8bt6YqfJsr9vaFb3)立。⛔ 未定级、未指派。⭐ 这是执行 #18612 的裁决(决裁批 #154 item 4 · letter 2)时冒出的残留问题,⛔ 不是那张卡被派发时问的那个问题。按半状态巡检 H52 的处方 ——「if it is a RESIDUAL raised while EXECUTING a ruling this card already carries, ⛔ never re-hang the label there — file a NEW card carrying the question and linking the ruled one」—— 另立本卡。
needs-user-decision挂回了 #18612,那是错的:一来违反上面那条(⛔ 不在已裁卡上重挂),二来会与它的pm:dispatched构成 H29 的双状态。本席的 label 写入当时也没有读回,事后现读发现根本没生效 —— 两个错叠在一起,结果是这个岔口一度不在任何收件箱里。本卡是它的正式载体。要裁的一句话
⏱️ 2026-09-18T10:07Z 取。裁决写了「zero producers, so no conversion is owed」。at-tier 契约复核(记录在 PR #18938 的评论
5727110010,FAIL,所判 head6ac13a9120,档位 181/181)量到:欠的是一条 D2 转换,而那句话推的是另一条轴。 到底补不补?实测(本席自己跑的,带对照)
⏱️ 2026-09-18T10:07Z,同一把探针喂启动门用的
ObjectStackDefinitionSchema(packages/metadata/src/plugin.ts:915正是用它 parse;链路EnvironmentArtifactSchema.metadata→ObjectStackDefinitionSchema→packages/spec/src/stack.zod.ts:676analyticsCubes: z.array(CubeSchema)):⇒ ⭐ 一份由旧 schema 自己的 parse 输出写成的 cube 产物,今天过得了启动门,那个 PR 之后过不了。 被退休的两个键是必填的
sql与带默认值的relationship,所以每一份曾经 parse 过的带 join 的 cube 都带着它们。measures: [],实为 record),三条腿全在measures上被拒 —— LIT 控制与主体拒得一模一样,当场说明仪器没有鉴别力。那一次作废,⛔ 不作依据。复核给出的两条,本席只转述不选
toMajor: 18、retiredFromLoadPath: true,从每个analyticsCubes[].joins.*剥掉两键),挂进 step 18 的conversionIds。⭐ 同文件一格外的metric-filters-removed对同一类(从未被读过的键)走的正是 D2。applyArtifactForwardConversions只 replay D2)⇒ 静止产物无自愈通道;仓内已有同形事故记录 Artifacts built by released 17.x tooling are REFUSED by the 17.2 runtime: retired-key tombstones fire at artifact parse, and no artifact-ingestion door runs the ADR-0087 conversion that exists for exactly this #12772(「no operator remedy short of hand-editing the JSON」)。⛔ 本席不选。复核自己的话:「it must not ship silently either way」。
顺带一条与裁决相关的读数
裁决的普查写「objectstack examples —— 0 files」。⏱️ 2026-09-18T10:07Z 在 PR 的 base 上直读:
examples/app-showcase/src/data/analytics/showcase.cube.ts有一个作者写的joins条目,relationship与sql两个键都带。⇒ 那句普查在本仓是错的(该处已在 PR #18938 里修掉)。⛔ 本席未做的
os-decision-facets
Prior rulings read: cube.joins,cube,joins,name,required,documented,clause,runtime,reads,authored,join,condition (+4 more) → 141 hits; ADR-0021 D1, ADR-0058 D3, ADR-0029 D9.7, ADR-0056 D4, ADR-0056 D5, ADR-0125 D2, ADR-0125 D3, ADR-0127 D9, ADR-0131 D13
The question, in one line: #18612 的退休要不要配一条 D2 strip 转换,以便旧产物在启动门自愈 —— 还是照裁决字面「no conversion is owed」落地?
查重词
cube join retirement D2 conversion at rest·analyticsCubes joins persisted parsed refused boot door·no conversion is owed artifact at rest·applyArtifactForwardConversions replays D2 only·metric-filters-removed precedent相关:#18612(承接的那张已裁卡)· PR #18938(实现 + at-tier 复核记录
5727110010)· #12772(同形事故)·packages/spec/src/conversions/registry.ts的metric-filters-removed(同类的 D2 先例)Generated by Claude Code