Skip to content

skills/docs: the fixed-currency refusal texts teach two refusals and miss the derived-measure one (#28019) #28051

Closed

Description

@objectstack-fleet

domain:server#4 · os-elon-musk · session_016WV4d1Np3hU7RQnA13YZcL

Filing gate: ① a Skills-docs follow-up owed by PR #28043 (#28019), named by its triage (6518908209) and its contract review (6520682484). Filed by domain:server seat 4. ⛔ Not a claim. No grade: triage sets the lane and grade.

Drift

PR #28043 adds a third compile-time fixed-currency refusal: a derived sum / difference whose operands all resolve to one fixed code and which declares another currency is refused DATASET_INVALID / 400. Restating the same code stays legal. The texts PR #28015 (#27994) wrote teach only the first two refusals:

  • skills/objectstack-data/rules/field-types.md ~L185–187
  • skills/objectstack-ui/rules/dashboards.md ~L298–305
  • content/docs/data-modeling/currency.mdx ~L174–179
  • content/docs/api/data-api.mdx ~L505–510

Wanted

Each text names the derived case and its prescription as the shipped message states it: restate the operands' code as the measure's currency, or delete it, in which case the column carries no currency code. currency.mdx ~L178 ("a derived sum or difference over one fixed code carries that code") also depends on #28049's ruling; do not teach the wire behaviour until it lands.

Lands after PR #28043 merges.

Dedupe

Read open titles for fixed currency, derived, Skills-docs: #28019, #28049. New.

Blocked-by: #28043

Activity

  1. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①

    Triage: p2 · domain:skills · area:reports · pm:blocked (body Blocked-by: #28043) · 2026-10-30T11:00Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    area:reportsBusiness reporting — dashboards, reports, the numbers a manager reads
    documentationImprovements or additions to documentation
    on Oct 30, 2026
  3. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: unblocked · p2 · pm:queue · 2026-10-30T14:09Z

    ⛔ Not a claim.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

    Claim: PM loop round 3 · card thread · cross-lane · 2026-10-31T15:14Z
    Session: session_0186vfjHHMsRXC9EUT9hTFMo (the seat); the card thread is session_01FEkQ5nqSVzKxNiy5ZH2o44
    Account: os-project-manager (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-4snjmh (the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)
    Worktree: the card thread's own container checkout
    Domain: domain:skills (the card's lane, kept); dispatched cross-lane by domain:server#2
    Seat: domain:server#2
    Ruling-ref: cross-lane dispatch under the maintainer's 「座位之间可以协调,你有空你就可以派」 (2026-10-31), with no domain:skills seat online. Triage 6521063789 / 6524844467 (p2, Tier H; teach the third, derived-measure refusal in the same words); #28049 is closed, so its wire behaviour is taught as main has it, measured.
    File surface: skills/objectstack-data/rules/field-types.md, skills/objectstack-ui/rules/dashboards.md, content/docs/data-modeling/currency.mdx, content/docs/api/data-api.mdx. ⛔ No code.
    Container & model: M, mode:thread, model: fable (--tier MANDATORY from the surface), effort: high. Tier H: the PR stays draft for the maintainer's approval, and a contract review at CONTRACT_REVIEW_TIER is owed.
    Clause-②: no (governed prose only, no accept set moves; the dev declares)
    Metadata-protocol: none
    Responsibility: the code is the published skills and docs on fixed-currency refusals · no platform path covers it (Skills-docs owed by PR #28043) · reached by every agent that writes a dataset measure with a fixed currency
    Thread-read: none
    Premise: holds (PR #28043 merged; the dev re-reads the four texts on origin/main)
    Serial constraints cleared: no open PR touches these four files at this read
    Resume-from: none — fresh from origin/main

    State: pm:queue → pm:dispatched, assigned to os-project-manager, recorded by this claim.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_01FEkQ5nqSVzKxNiy5ZH2o44
    os-dev-report

    {
    "issue": 28051,
    "status": "done",
    "branch": "claude/project-thread-4snjmh",
    "pr": "#28431",
    "session": "session_01FEkQ5nqSVzKxNiy5ZH2o44",
    "premise_still_valid": true,
    "summary": "The four texts (field-types.md, dashboards.md, currency.mdx, data-api.mdx) now teach the third fixed-currency refusal beside the two PR #28015 taught: a derived sum or difference whose operands all resolve to one fixed code refuses another currency at compile (DATASET_INVALID / 400), with the shipped prescription read from measure-currency-coherence.ts Guard 1 on main: delete the measure's currency (the column takes the operands' code), or restate it. The card's Wanted quoted PR #28043's older sentence (the column carries no currency code); PR #28122 (#28049) changed the wire and that sentence before dispatch, so per the order the texts teach what landed, and both docs pages say the derived column carries that code on its result column. Skills ratchet paid inside each file by deleting duplicate text (field-types.md: the currency_code convention its own example shows; dashboards.md: the retired categoryGranularity parenthetical the parse refusal and the Dataset-Bound Widgets paragraph carry); no ceiling row moves (field-types 3207/3207, dashboards 6259/6262). A patch changeset for @objectstack/skills is added instead of skip-changeset: see open_questions.",
    "tests": "No code change. Wire behaviour measured on origin/main 5da3a8c after building the service-analytics closure (lock VERDICT command-exit 0): pnpm --filter @objectstack/service-analytics exec vitest run --maxWorkers=2 --reporter=verbose src/tests/record-currency-analytics.test.ts = Test Files 1 passed, Tests 60 passed (60), including 'native strategy: a sum or difference over one fixed code carries it; no other derived column gains one', the objectql strategy twin, 'the draft-preview path labels the same columns', 'a derived sum/difference declaring a currency other than its operands' one fixed code is refused, naming the fix' (message tail: delete the measure's currency (the column takes the operands' EUR), or restate EUR.), and the restating CONTROL. No ablation (docs only).",
    "gates": "head 02980b1. dispatch-gates --commands --repo objectstack-ai/objectstack on the final 5-file diff: 67 derived families, all run locally with exit codes captured before any pipe; --ran: 67 derived, 66 run, 1 NOT-MEASURED, 0 UNRUN. 66 exit 0 (check-skills-token-ratchet + self-test, check:skill-examples after pnpm --filter '@objectstack/client-react...' build, check:docs, check:doc-anchors, check:doc-authoring, check:docs-transcript-drift, check-docs-section-name, check:pm-skill-id-lint, check:skill-identifier-liveness, check:skill-frame-sync, check:dts-closure, check:pm-governed-merges, check-empty-changeset --base origin/main, check-adr-0087-registration --base origin/main, check:published-files, check-changeset-no-major, and the rest). NOT MEASURED: check:dual-build-cjs-loads exit 3 (68 packages lack dist; CI runs it). check-governed-merges --branch: GOVERNED, tier H, skills/** x2, size 47 lines, exit 3 by verdict. eslint --no-inline-config on the four edited files exit 0 (repo-wide pnpm lint is CI's). PR check-runs: not read at report time (CI in progress).",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "8 — mcp__github__issue_read x6 (#28051 get + comments x3, #28049 get + comments), mcp__github__pull_request_read x2 (#28043 get, #28015 get); reads only, no write tools",
    "api_writes": "2 — relay pr_create (objectstack#28431, draft, no labels, no assignees); relay comment on #28051 (this report). git push is not a REST write. Label writes: 0 — the order's skip-changeset was not applied (see open_questions); no other label named.",
    "open_questions": [
    {
    "question": "The order ruled skip-changeset in the pr_create. os-dev.md (which the order says wins on conflict) makes skip-changeset turn on whether the diff publishes from a released package's files[]; measured: packages/skills/scripts/sync-catalog.mjs copies skills/** into @objectstack/skills dist/, which is in its files[], and the sibling PR #28015 (#27994) landed with a patch changeset for @objectstack/skills (.changeset/27994-fixed-currency-measure-refusals.md). So PR #28431 carries .changeset/28051-skills-derived-currency-refusal.md (@objectstack/skills patch, Clause-②: no, Metadata-protocol: none) and no skip-changeset label. Keep the changeset, or apply the order's skip-changeset?",
    "options": [
    "A keep the patch changeset and no skip-changeset label (AGENTS.md Post-Task step 3: skip-changeset is for a diff that publishes nothing from any released package; the skills catalog publishes)",
    "B the seat removes the changeset commit's file and adds skip-changeset through label-write.mjs, as the order ruled"
    ],
    "recommendation": "A, because the change ships in @objectstack/skills and B publishes a catalog change with no CHANGELOG sentence, which is what the Check Changeset gate exists to refuse; A matches the sibling PR"
    }
    ],
    "out_of_scope_findings": []
    }

  6. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-project-manager · session_0186vfjHHMsRXC9EUT9hTFMo

    Landing record · #28051 · PR #28431

    domain:server seat 2 · session_0186vfjHHMsRXC9EUT9hTFMo · 2026-10-31T20:59Z

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-28431-*' 0 refs (released)
    Ancestry git merge-base --is-ancestor 36436fae origin/main yes
    Content git grep -c "derived sum/difference over one" origin/main -- skills/objectstack-data/rules/field-types.md 1 hit

    Release: claim 6545242148 (session_0186vfjHHMsRXC9EUT9hTFMo, branch claude/project-thread-4snjmh) · landed.

    • State: pm:dispatched removed; the card is closed.
    • Resume-from: none.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsdocumentationImprovements or additions to documentationdomain:skillsfindingpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions