Repository navigation
docs(skills): list relatedListTitle under fields.{field_name} in the i18n skill - #30068
Conversation
…i18n skill Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAomnWeZNN7jDS3HjjL
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-claim: session_01J8VVAnMUWA9rufXzFaEh4J · head 284424b · 2026-11-04T12:34Z The seat review runs at CONTRACT_REVIEW_TIER in an isolated subagent (the seat session is not at that tier). No review seat ( Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: an isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed or commented), fed the card body and comments, the PR body, the net diff against the merge-base, the head's check-runs, AGENTS.md, the pm-dispatch SKILL.md contract-review section, contract-review.md, review-checklist.md, lanes/skills.md and lanes/review.md. The dev gate record was read as input, not as conclusions; every count and every claim about the spec and the resolver below is this review's own reading of the head tree and of ① Derived judgments
② Semver levelPatch, and the changeset says patch. ③ Boundary flags
④ Design judgmentPer hits file, against the card's scenario (an author or agent learning the bundle shape from the skill must find the
Must-fix: none. Should-fix: S1 — restore the schema-to-method tie in one clause, in either home: at L340, "The spec models coverage results for tooling — the return shapes of the optional Check-runs at record time (2026-11-04T12:47Z): 40 check-runs on 284424b, 26 success, 13 skipped, 0 failure, 1 in progress on the third read (Test Core 1/8); three reads went 38 → 40 → 40 runs and 15 → 25 → 26 success with no non-success completion at any read (the first read had ten in progress: Test Core 1/8 and 2/8, Type Check · source gates, Type Check · consumer gates, Lint · CI, release & engine gates, Lint · repo & tooling gates, Lint · ESLint, Lint · docs & code guards, and the two umbrella jobs; all but Test Core 1/8 completed success). Success: Lint & Repo Gates, TypeScript Type Check (the two required floors), Lint · repo & tooling gates, Lint · CI, release & engine gates, Lint · PM dispatch-gates, Lint · docs & code guards, Lint · ESLint, Lint · scoped · tooling self-tests, Lint · scoped · slot lookup & corpus, Lint · scoped · query-options erasure, Type Check · workspace / source gates / debt ledger / consumer gates, Build Core, Governed Surface Queue Guard, Dogfood Regression Gate, Test UI, Test Core (2/8), Plan Test Core shards, Live E2E UI, PR-body guards, Check Changeset, Check PR Size, Auto Label, filter. Skipped by path filter or opt-in: Build Docs, Build UI Deps, Build & E2E UI, Lint UI, Type Check UI, UI Published Artifacts, Dogfood Verify CLI, Temporal Conformance, Schedule gate, 18.x upgrade harness, Packed-tarball smoke, and the matrix-templated placeholder rows for Test UI and the Dogfood shards. Combined status Implemented-by: VERDICT: PASS Generated by Claude Code |
…hat return them Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J8VVAomnWeZNN7jDS3HjjL
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract-review-claim: session_01J8VVAnMUWA9rufXzFaEh4J · head 290d1fc · 2026-11-04T13:02Z The seat delta review (against 6630998230 S1 and S2) runs at CONTRACT_REVIEW_TIER in an isolated subagent (the seat session is not at that tier). No review seat ( Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J Contract reviewServed-tier: Reviewer: the same isolated contract reviewer at CONTRACT_REVIEW_TIER, read-only on GitHub (REST reads only; nothing written, pushed or commented). The full review on 284424b (PASS, should-fixes S1 and S2) stands as read; this record judges only the delta ① Derived judgments
② Semver levelUnchanged: patch, and the changeset still says patch. The delta is one clause in a published skill and one sentence in the changeset's prose; ③ Boundary flags
④ Design judgmentPer hits file, for the delta only:
Must-fix: none. Should-fix: none remaining — S1 and S2 of 6630998230 are both resolved on this head. Check-runs at record time: 44 check-runs on 290d1fc, 28 success, 15 skipped, 0 failure, 1 in progress (Test Core 1/8) on both reads; combined status Implemented-by: VERDICT: PASS Generated by Claude Code |
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J 维护者速读
席位核对 — ACCEPT · domain:skills#1 · head
|
domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J
Requested by Irene · project thread
Fixes #29990
Clause-②: no
Metadata-protocol: none
The maintainer waived the model-tier mandate for
skills/**while that tier had no quota; this PR was developed below it.维护者速读
fields.{field_name}一行,在inlineTitle之后加上relatedListTitle:lookup 或 master_detail 字段在父记录页上画出的相关列表标题;键在子对象的字段上,未翻译时保留作者原文,不会换成子对象的标签。另加一个'@objectstack/skills': patchchangeset。relatedListTitle可翻译(translation.zod.ts的FieldTranslationSchema与i18n-resolver.ts的translateObject),技能表还没列它。getCoverage()/suggestTranslations()无实现,Service Contract 一节已说);+219 / −222 字节;复审 S1 在 Diff & Coverage Schemas 开头句补回两个 schema 与getCoverage()/suggestTranslations()的对应(+111 字节),合计 5646 → 5673 tokens,上限 6333 未动,无 re-wrap。回滚即 revert。skills/objectstack-i18n/SKILL.md第 162 行;对照packages/spec/src/system/translation.zod.ts的relatedListTitleTSDoc。skills/**),需要GOVERNED_APPROVERS的批准;PR 保持 draft。What changes
skills/objectstack-i18n/SKILL.md, thefields.{field_name}row of the object-level table: afterinlineTitleit now listsrelatedListTitle(the title of the related list alookupormaster_detailfield draws on its parent's record page — the key is the child's too; untranslated it keeps its authored text, never the child's label). The wording mirrors theinlineTitleentry beside it.Facts, read on
mainatc23501b2(the merged code of #29989):FieldSchema.relatedListTitle:packages/spec/src/data/field.zod.tsL1952; the field form shows it forlookupandmaster_detail(field.form.tsL320).FieldTranslationSchema.relatedListTitleinpackages/spec/src/system/translation.zod.tsL248-263, addressedobjects.<child>.fields.<field>.relatedListTitle.translateObjectinpackages/spec/src/system/i18n-resolver.tsL4554-4561 overlays the title only when a bundle entry exists, so an authored title with no entry keeps its text; the child's label is never swapped in (docblock L4478-4487).The optional example line was not added: it would cost about 110 bytes the deletion below does not cover.
Token ratchet (no ceiling row moved, no re-wrap)
The added text (219 bytes) is paid by deleting a restatement in the same file: the paragraph under Diff & Coverage Schemas saying
getCoverage()andsuggestTranslations()have no shipped implementation and pointing atos i18n check(222 bytes with its blank line). Its homes stay in the file: Integration with II18nService → Service Contract says the same of the optional methods, and Translation Coverage →os i18n checkopens "The working coverage path is the CLI". No test underpackages/**orscripts/**pins the cut text.The cut paragraph was also the one place that tied the two schemas to the methods returning them (
packages/spec/src/contracts/i18n-service.tsL215, L228). Per the contract review's S1, the section's opening sentence (L340) now carries that tie in one clause: "The spec models coverage results for tooling — the return shapes of the optionalgetCoverage()/suggestTranslations()(see Service Contract below):". Only that line changed; no other line is re-wrapped.skills/objectstack-i18n/SKILL.md.changeset/29990-i18n-related-list-title.md:'@objectstack/skills': patch, with both declaration lines.Tests
node scripts/check-skills-token-ratchet.mjs: exit 0,skills/objectstack-i18n/SKILL.md is 5673 tokens (ceiling 6333; headroom 660).Verification
Head
290d1fc0(two commits onc23501b2;284424b8is the reviewed head,290d1fc0adds the S1 clause and its changeset sentence).Local gates on 284424b and again on 290d1fc: 44 derived, 44 run with exit 0, 0 NOT MEASURED each time (`dispatch-gates --ran`)
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 44 commands for the two changed files. All ran afterpnpm install --frozen-lockfileand a fullpnpm build(exit 0), each with a 900 s timeout and its exit code captured before any pipe.check-skills-token-ratchet.mjs(and--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:skill-docs,check:skill-compatibility,check:skill-frame-sync,check:skill-identifier-liveness,check:dts-closureandcheck:dual-build-cjs-loads.pnpm check:changeset-fixed(artifact roster under.changeset): exit 0.--ranprinted:44 derived famil(ies) accounted for — 44 run, 0 NOT-MEASURED.node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD: exit 0.Human Minimum
packages/specholds no runtime logic. (No schema touched.)main, one pull request.packages/specnot touched.content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_01J8VVAomnWeZNN7jDS3HjjL
Generated by Claude Code