Repository navigation
docs(skills): objectstack-data teaches relatedList placement by each value’s role, not by record-page tabs or columns - #29929
Conversation
… not by record-page tabs The three relatedList bullets in rules/relationships.md now follow the spec describe: 'primary' is a full-width table in the record's detail body, false is not shown on the parent record page, true or omitted is an auxiliary panel on the record page. No tab or column is named. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAkV4r9DLBV3JKUsdf5
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-handoff: triage — CONTRACT_REVIEW_TIER unavailable (HTTP 429, 2026-11-03T13:34Z) · head baa1740 The seat's review tier has had no quota since its HTTP 429 at 2026-11-03T04:50Z. The maintainer's word, 2026-11-03: 「没有fable可以用 opus,等契约复审」. So this FULL review of a Tier H What to check:
After a PASS the PR stays a draft for Generated by Claude Code |
|
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U Contract-review-claim: session_01AavokzJ5DndAwitDXvKy4U · head baa1740 · 2026-11-03T14:17Z Taken on the maintainer's standing word in the triage session, 2026-11-03: 「skills#1 转来的都接」. This is an exception to #29667 for Generated by Claude Code |
|
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U Contract reviewServed-tier: Taken by triage on the maintainer's word 「skills#1 转来的都接」 (exception to #29667; handoff 6605225785). ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Check-runs at record time: 46 total: 29 success, 17 skipped (Lint UI, Build & E2E UI, Type Check UI, Test UI matrix, UI Published Artifacts, Temporal Conformance, Dogfood Regression Gate matrix, Dogfood Verify CLI, Build Docs, Build UI Deps, Schedule gate, Auto Label, 18.x upgrade harness ×2, Check PR Size, Packed-tarball smoke ×2). 0 failure, 0 pending. Implemented-by: VERDICT: PASS Generated by Claude Code Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J 维护者速读
席位核对 — ACCEPT · domain:skills#1 · head
|
Requested by Irene · project thread
Fixes #29801
Clause-②: no
Metadata-protocol: none
Fable mandate waived by the maintainer; contract review by triage.
维护者速读
rules/relationships.md里relatedList的三条说明不再提任何标签页或栏位:'primary'= 记录主体内容里的一张通栏表格(记录详情主体);false= 父记录页不显示该子对象;true或不写 = 记录页上的一个辅助面板。另加一个'@objectstack/skills': patchchangeset。relatedListdescribe 改成只讲各值的角色;技能还在教「Details 标签」「side card(共用 Related 标签)」,AI 照着写会把用户引向记录页上不存在的标签。skills/objectstack-data/rules/relationships.md的relatedList is tri-state三条;对照packages/spec/src/data/field.zod.ts的relatedListdescribe。grep -rn "Details tab\|Related\*\* tab\|side card" skills/,预期无输出;node scripts/check-skills-token-ratchet.mjs,预期 relationships.md 3838/3873。skills/**),契约复审由 triage 出具后,需要GOVERNED_APPROVERS的批准;PR 保持 draft。What changes
skills/objectstack-data/rules/relationships.md, the three value bullets under "relatedListis tri-state — placement (ADR-0085)". Each now says what the mergedrelatedListdescribe inpackages/spec/src/data/field.zod.ts(read ata04e9d76, L1950) says, and names no tab or column. The heading line, the "Order is the parent's" bullet below and every other line in the file are byte-identical.Before:
After:
The spec describe it follows: "false = the child object is not shown on the parent record page; true/absent = shown as an auxiliary panel on the record page; 'primary' = part of the record's main content, shown as a full-width table in the record's detail body. ... The page layout is defined by ADR-0085." The ADR-0085 pointer is already on the heading line, so it is not repeated.
.changeset/29801-related-list-placement-skill.md:'@objectstack/skills': patch, with both declaration lines.@objectstack/skills(packages/skills) is in the fixed release group in.changeset/config.jsonand ships this catalog, so the teaching change publishes and takes a patch changeset.Token ratchet (no ceiling row moved, no re-wrap)
rules/relationships.mdskills/objectstack-data(17 files)The edit is smaller than the text it replaces, so no deletion is owed to pay for it.
Tests
node scripts/check-skills-token-ratchet.mjs: exit 0,rules/relationships.md is 3838 tokens (ceiling 3873; headroom 35),57 authored bundle file(s) within their ceilings.grep -rn "Details tab\|Related\*\* tab\|side card" skills/, prints nothing at this head (exit 1).Clause-②: no, no!in the title).Acceptance notes
relatedList: 'primary', // read side: a body table, is left as it is. It names no tab or column, the card's done-when grep does not match it, and the order scoped this card to the three bullets. If the seat wants it to read "a full-width table" too, it is a one-line follow-up in the same file.claude/project-thread-xwv4ux, named in the claim 6604743289) in this container's own checkout rather than in a sibling worktree. The container is this card's alone.deleteBehaviorparagraph) merged before this branch was cut, so no rebase lap was owed.Verification
Head
baa17407(one commit ona04e9d76).Local gates on baa1740: 42 derived, 41 run with exit 0, 1 NOT MEASURED (`dispatch-gates --ran`)
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 42 commands for the two changed files. All 42 ran in a tree withpnpm install --frozen-lockfiledone and@objectstack/formula,@objectstack/lintand@objectstack/objectqlbuilt (turbo build exit 0), each with a 900 s timeout and its exit code captured before any pipe.check-skills-token-ratchet.mjs(and its--self-test),check-adr-0087-registration.mjs --base origin/main,check-changeset-no-major.mjs,check-empty-changeset.mjs,check:changeset-gate-self-tests,check-comment-mask-corpus.mjs,check:doc-authoring,check:doc-formula-expressions,check:skill-compatibility,check:skill-frame-sync,check:skill-identifier-liveness,check:pm-skill-id-lint,check:pm-governed-merges,check:role-word,check:nul-bytes,check:dts-closureandcheck:lean-entry-closure.pnpm check:dual-build-cjs-loadsexited 3:PREREQUISITE NOT MET(Run pnpm build first. This is NOT a pass: nothing was measured.); it needs a fullpnpm build. This diff touches nopackages/**file; CI'sLint & Repo Gatesrun on the PR is its reading.--ranprinted:42 derived famil(ies) accounted for — 41 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD: exit 0 (one commit, no card relation, model-free trailer pair).git push×2 (the bare branch pointer, baa1740); one relaypr_create; no GitHub MCP write.Human Minimum
packages/specholds no runtime logic. (No schema touched.)pnpm lintis CI's repo-wide run.main, one pull request.packages/specnot touched.content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAkV4r9DLBV3JKUsdf5
Generated by Claude Code