Repository navigation
docs(skills): a primary related list is a body table in the Details tab, and the relatedLists refusal states its package boundary - #27958
Conversation
…ab, and the relatedLists refusal states its package boundary objectstack-ui SKILL.md and objectstack-data rules/relationships.md still taught a relatedList: 'primary' child's "own tab" and an unbounded relatedLists refusal. Since the record page v3 and the rewritten spec describes, a primary list is a full-width body table in the details column after the first field section (inside the Details tab); every other list is a side card in the shared Related tab; field changes join the Timeline tab under its Changes filter. The refusal now says which unknown names are refused where. The removed app-level relatedLayout is no longer taught as a surviving override. Restated sentences in relationships.md pay for the added words; neither ceiling moves. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cyuFKhHVaGYSSdTHG8
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract-review-claim: session_016WV4d1QkPVVzNz3FJqb2iS · head 46c30d4 · 2026-10-30T05:04Z |
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract reviewServed-tier: ① Derived judgmentsBase
② Semver level
③ Boundary flags
④ Design judgmentRules face, per
No file in Implemented-by: VERDICT: PASS Must-fix: none. Should-fix:
|
…ild leave to the runtime The ordering bullet in objectstack-data rules/relationships.md now carries the describe's exception: os validate / os build leave a sys_ / cloud_ / ai_ or sibling-artifact child name to the runtime door (collectRelatedListNameErrors returns early for both). +21 tokens inside the existing headroom; no ceiling moves. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4cyuFKhHVaGYSSdTHG8
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract-review-claim: session_016WV4d1QkPVVzNz3FJqb2iS · head 8c62baf · 2026-10-30T05:39Z |
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract reviewServed-tier: ① Derived judgmentsDelta review of
② Semver level
③ Boundary flags
④ Design judgmentRules face, delta only:
No file in Implemented-by: VERDICT: PASS Must-fix: none. Should-fix:
|
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS 维护者速读
席位意见:ACCEPT。两轮契约复核都 PASS,没有 must-fix。首轮 should-fix 1(拒收边界漏了运行时例外)已在 席位核对
|
Requested by Elon · project thread
domain:skills#2 · os-elon-musk · session_016WV4cyuFKhHVaGYSSdTHG8
Fixes #27354
What changes
skills/objectstack-ui/SKILL.md(read side, related-list layout): arelatedList: 'primary'child is a full-width body table in the details column after the first field section, inside the Details tab with no tab of its own; every other list is a side card in the one shared Related tab; field changes (trackHistory) join the Timeline tab under its Changes filter, and there is no History tab. The paragraph also stops teaching an app-levelrelatedLayout: 'tabs' | 'stack'override as surviving: objectstack#27055 removed it from the synthesizer (ui/packages/plugin-detail/src/synth/buildDefaultPageSchema.ts:163-171), and no spec schema carries it.skills/objectstack-data/rules/relationships.md(Detail-page related lists): the'primary'bullet says the same placement, and therelatedListsrefusal states its boundary: a child in the stack with no inbound FK is refused everywhere; one that exists nowhere is refused byos validate/os buildand by a metadata write naming no package; a write into a package stores it, and the page places nothing..changeset/27354-skills-related-list-body-table.md:@objectstack/skillspatch.Why
Both pages still taught the pre-v3 page after PR #27310 (
eef83734d, record page v3) and PR #27352 (ad3a640e3, rewritten describes, seat ruling A on #27311). The new text followspackages/spec/src/data/field.zod.ts:1831(relatedList),packages/spec/src/data/object.zod.ts:3178(relatedLists),:277(trackHistory), andbuildDefaultTabsinbuildDefaultPageSchema.ts:1016-1121.Measured on
origin/mainca54eaca: a shared Related tab still exists for non-primary lists (and attachments); History is no tab, it is the Timeline stream's Changes filter.grep -rniE "own tab|related tab|matching no inbound"overskills/**(evals included, every package) hits only the two passages fixed here;content/docs/ui/pages.mdx:187already teaches the side-card Related tab correctly. No eval teaches the old text.Token ratchet (
node scripts/check-skills-token-ratchet.mjs)skills/objectstack-ui/SKILL.mdskills/objectstack-data/rules/relationships.mdPaid in-file by deleting restated text, no re-wrap: in
objectstack-ui, the primary bullet's tab clause (now said once, in the layout paragraph), "Promoting a child table to a tab is a one-word change" and the surviving-relatedLayoutsentence; inrelationships.md, "The UI is derived from metadata (…)" (restates the sentence before it), the'grid'/'form'bullets' restatement of the code block's comments, the write-side parenthetical, "on the parent's detail page" in the default sentence, "(default with inlineEdit)" in the example comment (the bullet says it) and "both are optional — when omitted". No ceiling row is raised.Verification
pnpm install --frozen-lockfile --ignore-scripts(exit 0), then every familynode scripts/pm/dispatch-gates.mjs --commandsderives at46c30d4c: 45 families, re-derived after commit (identical). 40 exit 0 on the first run; 5 exit 3 (prerequisite: dists) untilpnpm exec turbo run build(116 tasks, exit 0), then exit 0.dispatch-gates --ran: 45 derived, 45 run, 0 NOT-MEASURED, 0 UNRUN.Clause-②: no
Metadata-protocol: none
Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintnot run locally, CI runs it.)main, one pull request.packages/spectouched: n/a.维护者速读
relatedLists名都会被拒。skills/objectstack-ui/SKILL.md的 Related-list layout 段,和relationships.md的relatedList三态列表。field.zod.ts:1831与object.zod.ts:3178的 describe 读两段新文字;跑node scripts/check-skills-token-ratchet.mjs。skills/**,欠一次契约复审(fable 档),落地为 Tier H,需受管审批人批准。🤖 Generated with Claude Code
https://claude.ai/code/session_016WV4cyuFKhHVaGYSSdTHG8