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
skills/docs (currency): four texts teach that a dataset measure's own currency always wins over a fixed field; after #27579 a contradicting code is refused #27994
Filing gate: ① skills and docs text that will contradict the runtime at named locations. Found by the #27579 card thread (PR #27991) and filed by the domain:server seat, because these files are outside the server lane's surface. ⛔ Not a claim.
PR #27991 (#27579, maintainer ruling 6486427200, ADR-0144 Open item 12 letter A) adds two fixed-currency refusals to dataset compile, both DATASET_INVALID / 400:
a measure currency that differs from its aggregated field's fixed code (restating the same code stays legal);
a derived measure, any op, whose monetary operands resolve to two different fixed codes.
Not judged, unchanged: a fixed code against the tenant currency, and a measure currency over a dynamic field.
These texts teach the old rule or only the record-mode refusals from #27338:
skills/objectstack-data/rules/field-types.md:185: "Under 'fixed'/'dynamic' a measure's own currency wins." This becomes false for a contradicting fixed code.
skills/objectstack-ui/rules/dashboards.md:298-300: the currency-chain comment.
content/docs/data-modeling/currency.mdx:165-168 (Roll-ups and datasets): lists only the record-mode refusals.
content/docs/api/data-api.mdx:498-505: the currency chain.
State the two fixed refusals and their fixes next to the record-mode ones, in the words each file already uses. The fix for the first is to delete the measure's currency, so the column takes the field's code. The fix for the second is to derive from measures in one currency, or to drop the operand in the other. Keep the two not-judged cases explicit.
⛔ Do not edit before PR #27991 merges. Until then the texts are still true.
Dedupe
#27579 / PR #27991 (runtime), #27338 (record-mode arms), epic #8345 (the ADR-0144 dated note stays with the epic PM). No open card covers these lines.
Granted (SKILL.md 跨域例外路径): the domain:skills lane claims the one PR, and the claim declares content/docs/data-modeling/currency.mdx and content/docs/api/data-api.mdx (devx). One rule is taught in all four places, in each file's own words. Tier H for skills/**.
Claim: PM loop round 1 · 2026-10-30T07:19Z
Session: session_016WV4czgqyQbG9VgmyNYDNt (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
Account: os-elon-musk
Branch: claude/project-thread-4nhwwo (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
Worktree: objectstack-issue-27994
Domain: domain:skills (cross-domain exception granted by triage 6516910471: two devx content/docs files declared here)
Seat: domain:skills#2 (seat 1 vacant on #7623; p2 rung)
File surface: skills/objectstack-data/rules/field-types.md (:185), skills/objectstack-ui/rules/dashboards.md (:298-300), content/docs/data-modeling/currency.mdx (:165-168), content/docs/api/data-api.mdx (:498-505) — the two fixed-currency dataset refusals and their fixes next to the record-mode ones, the two not-judged cases explicit; a .changeset/ file for @objectstack/skills; scripts/check-skills-token-ratchet.mjs rows only under the standing path — stop on breach; explain in the report
Container & model: S, mode:thread, model: opus (dev; skills/** low-headroom downgrade, fable at review); effort: medium; skills/** owes a CONTRACT_REVIEW_TIER review (fable) before the approver
Clause-②: no
Metadata-protocol: none
Responsibility: after PR #27991 (#27579) dataset compile refuses a measure currency that contradicts its field's fixed code and a derived measure mixing two fixed codes, but four texts still teach that a measure's own currency always wins, so an AI author writes a dataset the compiler refuses.
Thread-read: 6516910471 (triage: p2; cross-domain exception for the two devx docs; one rule in four places in each file's own words; Tier H)
Premise: holds (origin/mainf4826f810: field-types.md:185 「a measure's own currency wins」; PR #27991 merged 2026-10-30T07:17Z, so Blocked-by: #27991 is spent and the card leaves pm:blocked with this claim)
Serial constraints cleared: no open PR touches these four files at claim time (#27958 edits other objectstack-data / objectstack-ui files; #27954 edits datasources.md). Landing tier is read off the register at PR time; triage graded Tier H.
ACCEPT → PR #28015 (register Tier H, skills/**; contract review PASS on head 946f6b4; CI green; approvers requested). Awaiting a GOVERNED_APPROVERS approval, then the seat lands it. Runtime gap found in review → #28019.
Landed: PR #28015 merged (21b2a103e, 2026-10-30T08:35Z), Tier H, approved and queued by os-zhuang, on contract review PASS 6518287213 (ACCEPT 6518288120). pm:dispatched is stripped with this note.
From this commit the skills and docs no longer teach that a dataset measure's own currency always wins over a fixed field. They teach the two fixed-currency refusals that #27579 introduced. The runtime gap the review surfaced, derived-measure currency, is filed separately as #28019 for the server lane. Nothing further owed on this card.
Activity
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①
Triage: p2 ·
domain:skills·area:reports·pm:blockedon PR #27991 · cross-domain exception · 2026-10-30T06:57Z⛔ Not a claim.
Blocked-by: #27991is now in the body).domain:skillslane claims the one PR, and the claim declarescontent/docs/data-modeling/currency.mdxandcontent/docs/api/data-api.mdx(devx). One rule is taught in all four places, in each file's own words. Tier H forskills/**.documentation,pm:blocked.Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Claim: PM loop round 1 · 2026-10-30T07:19Z
Session:
session_016WV4czgqyQbG9VgmyNYDNt(card thread; seatsession_016WV4d1QkPVVzNz3FJqb2iS)Account:
os-elon-muskBranch:
claude/project-thread-4nhwwo(the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)Worktree:
objectstack-issue-27994Domain:
domain:skills(cross-domain exception granted by triage 6516910471: two devxcontent/docsfiles declared here)Seat:
domain:skills#2(seat 1 vacant on #7623; p2 rung)File surface:
skills/objectstack-data/rules/field-types.md(:185),skills/objectstack-ui/rules/dashboards.md(:298-300),content/docs/data-modeling/currency.mdx(:165-168),content/docs/api/data-api.mdx(:498-505) — the twofixed-currency dataset refusals and their fixes next to the record-mode ones, the two not-judged cases explicit; a.changeset/file for@objectstack/skills;scripts/check-skills-token-ratchet.mjsrows only under the standing path — stop on breach; explain in the reportContainer & model:
S,mode:thread,model: opus(dev;skills/**low-headroom downgrade, fable at review);effort: medium;skills/**owes a CONTRACT_REVIEW_TIER review (fable) before the approverClause-②: no
Metadata-protocol: none
Responsibility: after PR #27991 (#27579) dataset compile refuses a measure
currencythat contradicts its field'sfixedcode and a derived measure mixing twofixedcodes, but four texts still teach that a measure's owncurrencyalways wins, so an AI author writes a dataset the compiler refuses.Thread-read: 6516910471 (triage: p2; cross-domain exception for the two devx docs; one rule in four places in each file's own words; Tier H)
Premise: holds (
origin/mainf4826f810:field-types.md:185「a measure's owncurrencywins」; PR #27991 merged 2026-10-30T07:17Z, soBlocked-by: #27991is spent and the card leavespm:blockedwith this claim)Serial constraints cleared: no open PR touches these four files at claim time (#27958 edits other
objectstack-data/objectstack-uifiles; #27954 editsdatasources.md). Landing tier is read off the register at PR time; triage graded Tier H.objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4czgqyQbG9VgmyNYDNt
os-dev-report
{ "issue": 27994, "status": "pr_open", "pr": 28015, "branch": "claude/project-thread-4nhwwo", "head": "946f6b44", "session": "session_016WV4czgqyQbG9VgmyNYDNt", "premise_still_valid": true, "summary": "Two skills files and two docs pages state the two fixed-currency dataset refusals from #27991 (measure currency other than the field's fixed code; derived measure over two different fixed codes), each fix, and the two not-judged cases. Register: Tier H (skills/** x2). Contract review owed.", "gates": { "derived": 85, "run": 84, "exit0": 84, "not_measured": [ "pnpm check:dual-build-cjs-loads (exit 3, needs whole-tree dist)" ], "unrun": 0, "ran_reconciliation": "85 derived, 84 run, 1 NOT-MEASURED, 0 UNRUN (re-derived after the merge commit: identical)", "extra": { "pnpm turbo run build --filter=@objectstack/docs": 0, "node scripts/check-published-list-mirrors.mjs": 0, "pnpm check:changeset-fixed": 0, "pnpm check:engine-double-contract": 0, "pnpm check:i18n-stale-fill": 0, "node scripts/docs-audit/check-affected-docs.mjs": 0, "pnpm check:published-readme-exports": "3 (not measured, needs built dists)", "lychee offline link check": "not run (no link added)", "pnpm lint": "not run (no code)" } }, "line_budget": { "skills/objectstack-data/rules/field-types.md": { "tokens": "3158 -> 3207 (+49)", "paid_down": "Formula example returnType comment restating the Calculated table" }, "skills/objectstack-ui/rules/dashboards.md": { "tokens": "6221 -> 6262 (+41)", "paid_down": "metric example colorVariant comment restating Widget options; currency comment's measure example shrunk to its currency key" }, "path": "standing ruling 2026-10-27 「A:先削重复,余额按实测提高」, recognised path per record 6513306068; quoted in the PR body and beside each ratchet row" }, "deviations": [ "field-types.md has no record-mode refusal text to sit beside; the fixed refusals sit in the Currency resolution paragraph where the old 'measure currency wins' sentence was." ], "files_changed": [ ".changeset/27994-fixed-currency-measure-refusals.md", "content/docs/api/data-api.mdx", "content/docs/data-modeling/currency.mdx", "scripts/check-skills-token-ratchet.mjs", "skills/objectstack-data/rules/field-types.md", "skills/objectstack-ui/rules/dashboards.md" ], "out_of_scope_findings": [], "api_writes": { "count": 2, "endpoints": [ "relay pr_create -> #28015", "relay comment os-dev-report on #27994" ] }, "git_push": 2, "mcp_calls": { "writes": 0, "reads": 2 } }objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
ACCEPT → PR #28015 (register Tier H,
skills/**; contract review PASS on head 946f6b4; CI green; approvers requested). Awaiting a GOVERNED_APPROVERS approval, then the seat lands it. Runtime gap found in review → #28019.objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Landed: PR #28015 merged (
21b2a103e, 2026-10-30T08:35Z), Tier H, approved and queued by os-zhuang, on contract review PASS 6518287213 (ACCEPT 6518288120).pm:dispatchedis stripped with this note.From this commit the skills and docs no longer teach that a dataset measure's own
currencyalways wins over afixedfield. They teach the two fixed-currency refusals that #27579 introduced. The runtime gap the review surfaced, derived-measure currency, is filed separately as #28019 for the server lane. Nothing further owed on this card.