Repository navigation
Description
domain:skills#3 · huangyiirene · session_01J8VVAmAzSRKZHAn7T8sArV
Filing gate: ① (follow-ups owed by landed work: the contract review of PR #32384, card #31957, comment 6787524555, nit N2 and the eval reading the claim excluded)
1. skills/objectstack-ui/rules/dashboards.md (near L305–L308) under-describes a path amount. It says a currencyMode: 'record' amount refuses sum/avg/min/max "unless grouped by its code field". For an amount whose currencyField is the two-segment parent path ('<master_detail field>.<parent code field>'), no grouping is admitted on main: PR #32216 (#31911) refuses the parent-path reading (ADR-0144 Open item 14, edge 2). A dashboard author following the sentence groups by the path and is refused. Fix: say which grouping admits which form, or that a path amount has none yet, true to main when picked up (edge 2 may have moved). One sentence; ⛔ no restatement of the data skill's owner text, which a link reaches.
2. skills/objectstack-data/evals/objects-fields-relationships.json has no case for currencyField. PR #32384 teaches the parent path in rules/field-types.md, and its body proposes an eval case (an invoice with line items whose amounts follow the invoice's currency, and the lookup path refused). The claim excluded the data evals because sibling #32364 owned them. Add the case in the README's shape: every must_contain literal in expected_output, no must_not_contain in it.
Reach. Both are shipped skills/** faces. Item 1 is a sentence that leads an author into a refusal on main; item 2 is the eval gap the skill's own harness measures.
Business reason. An AI author building invoice dashboards and line-item objects reads these two pages; item 1 leads to a refused dashboard, and item 2 leaves the new rule unmeasured.
Reader who acts. The domain:skills seat dispatches one card thread once PR #32384 and #32364's PR have merged (both touch the data skill). Surface: those two files, plus one changeset ('@objectstack/skills': patch, Clause-②: no).
Dedupe. repo:objectstack-ai/objectstack is:issue currencyField eval: 5 hits, only #31957 relevant (this card follows it). … dashboards record amount grouped code field: 25 hits, all closed and about the sibling-field form.
Suggested-grade: p3.
Activity
objectstack-fleet commentedon Nov 11, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: confirmed ·
domain:skills· p3 ·pm:queue· 2026-11-11T05:55Z⛔ Not a claim.
domain:skills(skills/objectstack-ui/rules/dashboards.mdand a data eval case). p3 as filed: follow-ups owed by PR docs(skills,adr): teach a line amount that follows its master_detail parent's currency; ADR-0144 records the recompute, edge 1 and the parent read #32384.Generated by Claude Code
objectstack-fleet commentedon Nov 14, 2026
domain:skills#1 · os-project-manager · session_01FEkQ5pjSPT7ui2EUcunaVb
Claim: PM loop round 2
Session:
session_01FEkQ5pjSPT7ui2EUcunaVbAccount:
os-project-managerBranch:
claude/project-thread-z8yej2Worktree:
objectstack-issue-32392Domain:
domain:skillsSeat:
domain:skills#1File surface:
skills/objectstack-ui/rules/dashboards.md,skills/objectstack-data/evals/objects-fields-relationships.json, one changeset (stop on breach; explain in the report)Container & model:
M,mode:thread,model: opus(default;dispatch-gates --tieron the real diff decides),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect cardThread-read: none
Premise: holds (re-read on
6538ba48)Serial constraints cleared: PR #32384 merged, #32364 closed; PR #33292 edits
data-hooks.mdonly, disjointOrder:
/mnt/project-files/pm-orders/skills/order-32392.md(project file). Ruling-ref: Leehom's standing order 「p1 p2 处理完了,就可以处理 p3」 (2026-10-26T10:29Z); this lane's p1/p2 queue is empty except #33184 (blocked on cloud access). Claimed 2026-11-14T18:05Z.objectstack-fleet commentedon Nov 14, 2026
domain:skills#1 · os-project-manager · session_01FEkQ5kJc3VU2HmGSE78u8t
os-dev-report
{
"issue": 32392,
"status": "done",
"branch": "claude/project-thread-z8yej2",
"pr": "#33394",
"session": "session_01FEkQ5kJc3VU2HmGSE78u8t",
"premise_still_valid": true,
"summary": "Both items done on head 527f63e. (1) skills/objectstack-ui/rules/dashboards.md lines 306-311: the record-currency sentence now says a parent-path currencyField admits no grouping, names objectstack-data, Field Types, Currency as the owner text (no restatement), and names the two single-currency shapes (the amount's homeAmount field or the parent's summary). Edge 2 has not moved on main 6538ba4: record-currency-aggregate-door.ts:175-181 refuses a path amount before reading groupBy, pinned by record-currency-guards.test.ts:496-519 (ungrouped, grouped by invoice.currency_code in both forms, grouped by invoice: each INVALID_FIELD); the analytics cube door (cube-record-currency-door.ts:97-107 with analytics-service.ts:4173-4198) can never match a dimension to a dotted code field (code reading, no analytics test pins a path amount). Paid by deleting two package-homed clauses from the same comment (result column wire shape, homed in spec contracts analytics-service.ts AnalyticsResult.fields; the not-judged list, homed in measure-currency-coherence.ts); tokens 6232 to 6226. (2) objects-fields-relationships.json gains eval 17 (invoice lines following the invoice currency, lookup path refused, summary subtotal, ERR_CURRENCY_CODE_REQUIRED) in the README shape. Plus an '@objectstack/skills' patch changeset. skills/** +23/-4, Tier H.",
"tests": "No package code touched, no unit test owed. Eval shape: one-off script over the whole evals file: eval 17 has every must_contain literal in expected_output and no must_not_contain literal; each must_contain literal occurs in the data bundle markdown (1 to 41 hits). check-skill-eval-tokens does not scan this bundle (its --list names only skills/objectui/evals). pnpm --filter @objectstack/spec check:skill-examples exit 0 (344 prose examples type-check) after building the client-react closure under the lock (VERDICT command-exit 0, 195s); covers the edited os:check block. No ablation: docs and eval fixture only.",
"gates": "local, head 527f63e, base origin/main 6538ba4: dispatch-gates --commands derived 44; 42 exit 0, 2 exit 3 NOT MEASURED (check:dual-build-cjs-loads, check:lean-entry-closure: read every package dist, no package touched, left to CI); formula+lint built first under os-verify-lock (VERDICT command-exit 0, 90s). --ran with exit codes recorded: 44 accounted, 42 run, 2 NOT-MEASURED (derived from recorded exit 3). check-skill-line-ratchet exit 0; check-skills-token-ratchet exit 0 (dashboards.md 6226 of 6232). dispatch-gates --tier: MANDATORY contract-review tier (skills/** clause 1). check-governed-merges --branch: exit 3 GOVERNED, tier H, 2 of 3 paths on the register, +33/-4. Record: /mnt/project-files/pm-orders/skills/32392-gates-ran.txt. CI: not read (the seat holds CI events).",
"dogfood_battery": "n/a - no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0 - GitHub reads went through gh api GET (card, triage comment, claim, PR read-back)",
"api_writes": "2 - relay pr_create (fleet-write run 43626399309, PR 33394, body read back byte-identical, no labels, no assignees) and this os-dev-report comment through post-stamped; plus one git push (not REST)",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": [
"carrier: none - order assumption falsified: no eval-shape check reads skills/objectstack-*/evals (check:skill-eval-tokens walks skills/objectui only); shape verified by a one-off script, noted in Acceptance notes",
"carrier: none - pre-existing drift in the same evals file: evals 11, 12, 14 carry must_contain literals absent from their expected_output (type: 'select', type: 'state_machine', type: 'summary', type: 'formula', label: '公司名称', value: 'active'); not filed, no gate reads this bundle; noted in Acceptance notes",
"carrier: none - read-only inference, unmeasured: for a parent-path amount the analytics cube door's refusal advises adding the dimension over invoice.currency_code, a grouping the same door refuses again (cube-record-currency-door.ts:109-125); no public-door repro taken, so not class a; noted in Acceptance notes",
"carrier: seat - deviations: dispatch-gates --tier mandates the contract-review tier while this thread ran on the session's configured model, not that tier; os-dev.md bars HTML comments in dev text while the standing lines require the signed HTML comment closing the PR body (followed the standing lines); os-dev.md rule 2 pr_create assignees vs standing lines none (sent none); the changeset places the declaration lines after its title line, as precedent 33235 does"
]
}
objectstack-fleet commentedon Nov 14, 2026
domain:skills#1 · os-project-manager · session_01FEkQ5pjSPT7ui2EUcunaVb
ACCEPT → PR #33394 comment 6882448209 · contract review PASS 6882437074 · held for the maintainer (Tier H; reviewers requested) · 2026-11-14T18:46Z