Repository navigation
docs(skills): a dataset measure's currency no longer always wins over a fixed field; teach the two fixed-currency refusals - #28015
Conversation
…e currency chain A dataset measure's own `currency` no longer always wins over a `fixed` field: compile refuses a code other than the field's, and a derived measure over two different `fixed` codes, both DATASET_INVALID / 400. Two skills files and two docs pages now state both refusals, their fixes, and the two not-judged cases. The skills rows are paid down by deleting restating comments; the remainder raises two token-ratchet rows on the standing path. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4czgqyQbG9VgmyNYDNt
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract-review-claim: session_016WV4d1QkPVVzNz3FJqb2iS · head 946f6b4 · 2026-10-30T08:05Z |
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS Contract reviewServed-tier: ① Derived judgmentsBase of the PR is
② Semver level
③ Boundary flags
④ Design judgmentRules face, per
No file in Implemented-by: VERDICT: PASS Must-fix: none. Should-fix:
|
|
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS 维护者速读
席位意见:ACCEPT。契约复核 PASS,没有 must-fix:四处文字逐句对照 main 上的编译代码和测试,没有说多也没有说少。三条 should-fix 都是措辞,不阻塞,留到下次改这些文件:dashboards.md:305 补「different」,field-types.md 补 席位核对
|
Requested by Elon · project thread
Fixes #27994
Clause-②: no
Metadata-protocol: none
Cross-domain exception: triage 6516910471 grants this one
domain:skillsPR the two devx pagescontent/docs/data-modeling/currency.mdxandcontent/docs/api/data-api.mdx; claim 6517255606 declares them.维护者速读
fixed币种拒收:度量的currency与字段的fixed币种不同会被拒(删掉度量的currency即可,写同一币种照收);派生度量的金额操作数落在两个不同fixed币种会被拒(改用同一币种的度量,或去掉另一币种的操作数)。两种不判的情况也写明了。currency总是优先」,fix(service-analytics): a dataset refuses a measure currency that contradicts its field's fixed code, and a derived measure across two different fixed codes #27991 合入后这句对冲突的fixed币种已不成立,AI 按旧文写出的数据集会在编译时被拒。skills/objectstack-data/rules/field-types.md的 Currency resolution 段,skills/objectstack-ui/rules/dashboards.md的数据集币种注释。node scripts/check-skills-token-ratchet.mjs预期全绿;对照packages/services/service-analytics/src/measure-currency-coherence.ts的两个fixed分支读四处文字。skills/**受管面(Tier H),契约复审与 ACCEPT 后需要审批人批准。What changes
Each file states, in its own words, the two
fixed-currency refusals PR #27991 added to dataset compile (DATASET_INVALID/ 400), each fix, and the two cases that stay unjudged:currencyother than its field'sfixedcode is refused. Fix: delete the measure'scurrency, and the column takes the field's code. Restating the code is accepted.fixedcodes is refused. Fix: derive from measures in one currency, or drop the operand in the other.fixedcode against the tenant currency; a measurecurrencyover adynamicfield.skills/objectstack-data/rules/field-types.md(Currency resolution): the sentence "Under'fixed'/'dynamic'a measure's owncurrencywins" is replaced by thedynamic/fixedsplit, the two refusals and their fixes, and the not-judged tenant case.skills/objectstack-ui/rules/dashboards.md(the dataset currency comment in the date-granularity example): the two refusals, their fixes and both not-judged cases follow the record-mode sentence.content/docs/data-modeling/currency.mdx(Roll-ups and datasets): three bullets after the record-mode ones, including that a derivedsum/differenceover onefixedcode carries that code, so a measure built on it is judged the same way.content/docs/api/data-api.mdx(the currency chain): one paragraph after the chain..changeset/27994-fixed-currency-measure-refusals.md:@objectstack/skillspatch.skills/**token budget (standing path)Ruling quoted (maintainer, 2026-10-27, skills-lane decision card, verbatim and untranslated): 「A:先削重复,余额按实测提高」; the gate-recognised path per ruling record 6513306068 on #27847.
field-types.md3158 -> 3207 (+49). Paid down first: the Formula example'sreturnTypecomment, which restated the Calculated table's return types, becomes a pointer to that table.dashboards.md6221 -> 6262 (+41). Paid down first: the metric example'scolorVariantcomment no longer restates that the measure'sformat/currencydrive the number (Widgetoptionssays it), and the measure example in the currency comment shrinks to itscurrencykey (thedefineDatasetabove shows the measure shape).scripts/check-skills-token-ratchet.mjs.Why
After #27991 (#27579, ruling 6486427200, ADR-0144 Open item 12 letter A) the four texts taught a rule the compiler now refuses for a contradicting
fixedcode, and they named only the record-mode refusals from #27338. Taught from the mergedmeasure-currency-coherence.tsandrecord-currency-analytics.test.ts, not from the card summary.Verification
Head
946f6b44(commit0776905eplus a plain merge oforigin/main, which touches none of these files; the derivation is identical after the merge).node scripts/pm/dispatch-gates.mjs --commands: 85 derived families, all run.--ran: "85 derived, 84 run, 1 NOT-MEASURED, 0 UNRUN". 84 exited 0, includingcheck-skills-token-ratchet,check:skill-examples(the editedos:checkblock indashboards.md),check:docs,check:doc-anchors,check:doc-authoring,check:docs-transcript-driftandcheck-docs-section-name. NOT MEASURED:check:dual-build-cjs-loads, exit 3 (needs every package's dist). CI runs it.pnpm turbo run build --filter=@objectstack/docs(theapps/docs/vercel.jsonproduction command), exit 0.check-published-list-mirrors,check:changeset-fixed,check:engine-double-contract,check:i18n-stale-fill,check-affected-docsexit 0;check:published-readme-exportsexit 3 (needs built dists, not measured).Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (No formatter ran;pnpm lintwas not run locally, the diff carries no code. CI runs it.)main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.🤖 Generated with Claude Code
https://claude.ai/code/session_016WV4czgqyQbG9VgmyNYDNt