Filed by the director seat (objectstack #12708, summon #8, session session_01ShyhexkB2d1AeRZ85tgAAe) as the spec-side follow-up of a maintainer ruling. Filed unassigned; domain:spec, pm:queue, S.
What is wrong
packages/spec/src/data/field.zod.ts, the option-shape comment added with objectstack PR #13669 (lines 271 to 272 on origin/mained445121), says that dependsOn is not declared on the option shape because "the canonical spelling depends_on already exists at the field level".
That sentence is false for this file. Measured on the same commit:
- line 1306 declares the field-level cascade key as
dependsOn (camelCase), with its full describe() (select / multiselect / radio gating plus lookup candidate scoping); grep -n depends_on packages/spec/src/data/field.zod.ts returns zero lines (control: FieldType returns seven).
The spelling the comment calls canonical is objectui's own BaseFieldMetadata.depends_on, a consumer-side type. The comment inherited it through the 2026-08-25 triage note on objectui#6153 and then became the premise of the 2026-09-01 ruling on that card, which the maintainer has now amended.
Ruling this follows
Provenance: maintainer, live PM chat with the director seat, 2026-09-02, decision batch #8 item 4 on objectui#6153, recommendation A, verbatim 「同意」. Ruled: the contract's field-level cascade key is dependsOn; objectui mirrors the spec (declares dependsOn on its metadata type and de-casts its widgets), and objectui's snake_case twin is retired under enforce-or-remove (objectui follow-up card filed alongside this one).
Fix
Rewrite the comment so it states the truth: the field-level key is dependsOn (line 1306); the option shape declares description only, per the inherited #6140 / #6153 ruling; the option shape does not carry a cascade key of its own. No code change, no zod change.
Acceptance
grep -n depends_on packages/spec/src/data/field.zod.ts returns zero lines after the change, as before.- The rewritten comment names
dependsOn and line 1306 as the field-level declaration. - Clause-② no (a comment). No changeset needed unless the repo's changeset-presence gate counts the file; then an empty-frontmatter changeset.
Related: objectui#6153 (the ruling), objectstack PR #13669 (where the comment landed), objectstack #12708 (director seat ledger).
Filed by the director seat (objectstack #12708, summon #8, session
session_01ShyhexkB2d1AeRZ85tgAAe) as the spec-side follow-up of a maintainer ruling. Filed unassigned;domain:spec,pm:queue, S.What is wrong
packages/spec/src/data/field.zod.ts, the option-shape comment added with objectstack PR #13669 (lines 271 to 272 onorigin/mained445121), says thatdependsOnis not declared on the option shape because "the canonical spellingdepends_onalready exists at the field level".That sentence is false for this file. Measured on the same commit:
dependsOn(camelCase), with its fulldescribe()(select / multiselect / radio gating plus lookup candidate scoping);grep -n depends_on packages/spec/src/data/field.zod.tsreturns zero lines (control:FieldTypereturns seven).The spelling the comment calls canonical is objectui's own
BaseFieldMetadata.depends_on, a consumer-side type. The comment inherited it through the 2026-08-25 triage note on objectui#6153 and then became the premise of the 2026-09-01 ruling on that card, which the maintainer has now amended.Ruling this follows
Provenance: maintainer, live PM chat with the director seat, 2026-09-02, decision batch #8 item 4 on objectui#6153, recommendation A, verbatim 「同意」. Ruled: the contract's field-level cascade key is
dependsOn; objectui mirrors the spec (declaresdependsOnon its metadata type and de-casts its widgets), and objectui's snake_case twin is retired under enforce-or-remove (objectui follow-up card filed alongside this one).Fix
Rewrite the comment so it states the truth: the field-level key is
dependsOn(line 1306); the option shape declaresdescriptiononly, per the inherited #6140 / #6153 ruling; the option shape does not carry a cascade key of its own. No code change, no zod change.Acceptance
grep -n depends_on packages/spec/src/data/field.zod.tsreturns zero lines after the change, as before.dependsOnand line 1306 as the field-level declaration.Related: objectui#6153 (the ruling), objectstack PR #13669 (where the comment landed), objectstack #12708 (director seat ledger).