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 }}
Repository navigation
spec field.zod.ts option-shape comment claims a field-level depends_on the spec does not declare — correct the comment (objectui#6153 ruling A follow-up) #14583
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);
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).
Claim: PM loop, domain:spec seat (seat post #6017), R3 of this shift — family member folded into #13916's dispatch (five gates: same false sentence, same file packages/spec/src/data/field.zod.ts, both cards graded pm:queue + domain:spec, each with its own acceptance line, exclusion list: nothing else in the file moves)
Session: session_0174WZTU6XcFcS7g2kykC53i (GitHub zhuangjianguo)
Branch: claude/issue-13916-option-dependson-docblock-fact (the chain head's branch; PR #15055 gains a Fixes #14583 line in its patch round)
Worktree: objectstack-issue-13916
Domain: domain:spec
File surface: the option-description docblock in field.zod.ts and the two prose sites in field-rows-option-description.test.ts — the same three sites #13916 rewrites. This card's acceptance governs the wording: grep -n depends_on packages/spec/src/data/field.zod.ts returns zero lines after the change; the rewritten comment names dependsOn as the field-level declaration; the option shape declares description only and carries no cascade key of its own, per the inherited #6140 / #6153 ruling. Comment text only, no schema change.
Container & model: the chain head's — S, mode:subagent, model: opus; tier reading on the head claim 5530139808.
Clause-②: no — comment text only.
Serial constraints cleared: as the chain head (open-PR scan 19:08Z: only PR #15055 touches these files, and it is this family's own PR); H17 index: #8345 notified for field.zod.ts at 5530136440 (this family's dispatch).
Decision re-read: this card records the maintainer ruling of 2026-09-02 (director record on objectstack-ai/objectui#6153, comment 5510108593, verbatim 「同意」, recommendation A): the contract's field-level cascade key is dependsOn, objectui mirrors it, and objectui's snake_case twin retires under enforce-or-remove. That ruling post-dates triage 5486900363 on #13916, which had read objectui#6153 as unruled; the wording landed in PR #15055's first round therefore needs one patch round (verdict on #13916). Premise re-read on origin/main82291fba (19:18Z): the false sentence still sits at field.zod.ts:283; dependsOn: is declared at the field level further down the file. Premise holds.
Family pointer (PM seat domain:spec, 2026-09-03T20:00Z): the verdict of record for this card is on the chain head — #13916 comment posted in this stroke (ACCEPT of PR #15055 at head daf2fd30). This card's acceptance is met on that head: grep -n depends_on packages/spec/src/data/field.zod.ts returns zero lines (control: dependsOn 4), the rewritten comment names dependsOn as the field-level declaration, and the option shape is stated to declare description only. The PR closes this card via its second Fixes line when it lands; pm:dispatched is stripped in the same action.
Landed via the #13916 family (PM seat domain:spec, session_0174WZTU6XcFcS7g2kykC53i, 2026-09-03T20:53Z) — PR #15055 merged as d261cefa at 20:51:42Z; this card closed via its own Fixes #14583 line. Acceptance probed on origin/maind261cefa (20:52Z): git grep -c depends_on -- packages/spec/src/data/field.zod.ts → no match (zero lines, as this card requires); positive control dependsOn → 4. pm:dispatched stripped here in the same stroke (read back: domain:spec / priority:p3 remain). Full landing note on #13916.
Activity
zhuangjianguo commentedon Sep 3, 2026
Claim: PM loop,
domain:specseat (seat post #6017), R3 of this shift — family member folded into #13916's dispatch (five gates: same false sentence, same filepackages/spec/src/data/field.zod.ts, both cards gradedpm:queue+domain:spec, each with its own acceptance line, exclusion list: nothing else in the file moves)Session:
session_0174WZTU6XcFcS7g2kykC53i(GitHubzhuangjianguo)Branch:
claude/issue-13916-option-dependson-docblock-fact(the chain head's branch; PR #15055 gains aFixes #14583line in its patch round)Worktree:
objectstack-issue-13916Domain:
domain:specFile surface: the option-description docblock in
field.zod.tsand the two prose sites infield-rows-option-description.test.ts— the same three sites #13916 rewrites. This card's acceptance governs the wording:grep -n depends_on packages/spec/src/data/field.zod.tsreturns zero lines after the change; the rewritten comment namesdependsOnas the field-level declaration; the option shape declaresdescriptiononly and carries no cascade key of its own, per the inherited #6140 / #6153 ruling. Comment text only, no schema change.Container & model: the chain head's — S,
mode:subagent,model: opus; tier reading on the head claim 5530139808.Clause-②: no — comment text only.
Serial constraints cleared: as the chain head (open-PR scan 19:08Z: only PR #15055 touches these files, and it is this family's own PR); H17 index: #8345 notified for
field.zod.tsat 5530136440 (this family's dispatch).Decision re-read: this card records the maintainer ruling of 2026-09-02 (director record on objectstack-ai/objectui#6153, comment 5510108593, verbatim 「同意」, recommendation A): the contract's field-level cascade key is
dependsOn, objectui mirrors it, and objectui's snake_case twin retires under enforce-or-remove. That ruling post-dates triage 5486900363 on #13916, which had read objectui#6153 as unruled; the wording landed in PR #15055's first round therefore needs one patch round (verdict on #13916). Premise re-read onorigin/main82291fba(19:18Z): the false sentence still sits atfield.zod.ts:283;dependsOn:is declared at the field level further down the file. Premise holds.Generated by Claude Code
zhuangjianguo commentedon Sep 3, 2026
Family pointer (PM seat
domain:spec, 2026-09-03T20:00Z): the verdict of record for this card is on the chain head — #13916 comment posted in this stroke (ACCEPT of PR #15055 at headdaf2fd30). This card's acceptance is met on that head:grep -n depends_on packages/spec/src/data/field.zod.tsreturns zero lines (control:dependsOn4), the rewritten comment namesdependsOnas the field-level declaration, and the option shape is stated to declaredescriptiononly. The PR closes this card via its secondFixesline when it lands;pm:dispatchedis stripped in the same action.Generated by Claude Code
zhuangjianguo commentedon Sep 3, 2026
Landed via the #13916 family (PM seat
domain:spec, session_0174WZTU6XcFcS7g2kykC53i, 2026-09-03T20:53Z) — PR #15055 merged asd261cefaat 20:51:42Z; this card closed via its ownFixes #14583line. Acceptance probed onorigin/maind261cefa(20:52Z):git grep -c depends_on -- packages/spec/src/data/field.zod.ts→ no match (zero lines, as this card requires); positive controldependsOn→ 4.pm:dispatchedstripped here in the same stroke (read back:domain:spec/priority:p3remain). Full landing note on #13916.Generated by Claude Code