Ruled: 5805845085 · letter 乙 · 2026-09-24T01:31Z
Filing gate: ② a maintainer decision: a counter-fact measured while executing a ruling. Filed by the domain:spec execution seat 1 (session_013RDBh5DqXd2xnLwvHLgLFr, seat post #6017) from the round on #19678 (PR #19906). ⛔ The PR executes the ruling to the letter and is ⛔ not armed for merge while this is open.
维护者速读
裁决「不动 + 声明」(#19678,5793380467)的第 1 条写的是:元数据表单里,一行只要是枚举类型,就不写 options,由控件从 JSON Schema 自己推导出选项。PR #19906 已按原文把这条规则写进了说明和报错提示。
但仓库里现有 27 行恰恰是手写 options 的:
照原文执行,这 24 行会丢掉下拉里的友好标签,那 3 行会多出本来故意不给的选项。不改的话,服务端下发的说明和仓库自己的表单互相矛盾,照着仓库抄的 AI 会看到两套说法。
推荐乙。选 甲 / 乙 / 丙?
The counter-fact, measured
On origin/main 44ce049a8c:
四棱
席位推荐乙:裁决起因是「成员拼不出来」这一种情况,乙正好覆盖它,同时不丢 #19331 刻意做的标签,也不需要为子集开例外。风险:裁决标题写的是「never hand-listed」,乙收窄了这个字面。
Prior rulings read: options,enum,metadata form,derive,helptext,formselectoptionschema → 30 hits; ADR-0003 Decision §2, ADR-0003 Decision §3, ADR-0003 Decision §4, ADR-0018 Decision §2, ADR-0019 D4, ADR-0021 D2, ADR-0035 Decision §3, ADR-0037 Decision §3; thread: 1 ruling(s) (5793380467); repo: objectstack-ai/objectstack
The ADR hits match only the word enum and rule on unrelated shapes. The one ruling on this question is 5793380467.
After the ruling
Ruled: 5805845085 · letter 乙 · 2026-09-24T01:31Z
Filing gate: ② a maintainer decision: a counter-fact measured while executing a ruling. Filed by the
domain:specexecution seat 1 (session_013RDBh5DqXd2xnLwvHLgLFr, seat post #6017) from the round on #19678 (PR #19906). ⛔ The PR executes the ruling to the letter and is ⛔ not armed for merge while this is open.维护者速读
裁决「不动 + 声明」(#19678,
5793380467)的第 1 条写的是:元数据表单里,一行只要是枚举类型,就不写options,由控件从 JSON Schema 自己推导出选项。PR #19906 已按原文把这条规则写进了说明和报错提示。但仓库里现有 27 行恰恰是手写
options的:secret/user),推导路径表达不了「只给一部分」。照原文执行,这 24 行会丢掉下拉里的友好标签,那 3 行会多出本来故意不给的选项。不改的话,服务端下发的说明和仓库自己的表单互相矛盾,照着仓库抄的 AI 会看到两套说法。
helpText),3 行子集保留手写,说明里写明子集是例外。options、改走推导」。27 行不动,PR fix(spec): the form option-value refusal and the options describe name the derive path for enum rows #19906 的说明改一句再合。推荐乙。选 甲 / 乙 / 丙?
The counter-fact, measured
On
origin/main44ce049a8c:packages/spec/src/data/object.form.ts:414(#19188 split: 47 top-level zod-only keys are scalar controls needing one form row each #19331): 「Each enum gets an explicitoptionslist because the bare member reads as a word…」 (re-read by this seat).optionslists in 11 of the 17 metadata forms. All are spec enums; none contains an unspellable member.objectfields.typeomitssecret/user, and the twomaster_detaildeleteBehaviorrows omitset_null. The derive path would widen what they offer.FormFieldSchema.options' describe, and appends the derive remedy todefineForm's refusal for an unspellable option value.四棱
object.form.ts抄写的 AI 和读说明的 AI 得出相反结论。席位推荐乙:裁决起因是「成员拼不出来」这一种情况,乙正好覆盖它,同时不丢 #19331 刻意做的标签,也不需要为子集开例外。风险:裁决标题写的是「never hand-listed」,乙收窄了这个字面。
Prior rulings read: options,enum,metadata form,derive,helptext,formselectoptionschema → 30 hits; ADR-0003 Decision §2, ADR-0003 Decision §3, ADR-0003 Decision §4, ADR-0018 Decision §2, ADR-0019 D4, ADR-0021 D2, ADR-0035 Decision §3, ADR-0037 Decision §3; thread: 1 ruling(s) (5793380467); repo: objectstack-ai/objectstack
The ADR hits match only the word
enumand rule on unrelated shapes. The one ruling on this question is5793380467.After the ruling
helpText), and PR fix(spec): the form option-value refusal and the options describe name the derive path for enum rows #19906's describe gains the subset exception.