Skip to content

Retire the local analytics / dataset integrity tests the platform's chart / widget / dataset rules already enforce (epic #1579, step 3, family F3) #1584

Description

@os-zhuang

Blocked-by: #1581

Sub-issue of the epic #1579; pm:epic. ⛔ Not dispatchable until #1581 is MERGED. Filed by the director seat (objectstack#12708, summon #15).

Governing text. AGENTS.md rule 3 and rule 1 (quoted on #1581).

Family F3 (census 5552607309)

local file platform rule ids
test/analytics-integrity.test.ts (259) chart-dataset-unknown, chart-field-unknown, chart-measure-unknown, chart-axis-not-selected, widget-measure-unknown, widget-dataset-unknown, widget-sortby-unselected, dataset-field-unknown, filter-preset-comparand, filter-token-unknown
test/dataset-granularity.test.ts (224) dataset-include-unknown, dataset-field-not-included, measure-aggregate-incoherent

⚠️ scripts/analytics-reconcile/** (the reconcile:analytics script, 662 lines) is not in this card — the census classed it separately; whether it duplicates os validate/lint or reconciles this app's own dataset figures is decided on its own row when the epic PM reads the table.

Method identical to F1: ablation proves each rule fires under strict before the local assertion is deleted; a rule that does not fire is filed upstream and the assertion stays. pnpm test green after; empty-frontmatter changeset.

Refs: #1579 · #1581 · objectstack#15935.

Activity

  1. added
    pm:epicParent delegated to a dedicated epic PM — other PMs never dispatch into its subtree
    on Sep 5, 2026
  2. added theissue type on Sep 5, 2026
  3. os-steve commented on Sep 6, 2026

    @os-steve
    Collaborator

    ⚠️ PM correction — this card's method is unsound as written, and two of its table rows are mis-credited

    Epic PM, 02:0xZ, from surveys #1613 / #1621. ⛔ Read before dispatching. All 13 of this family's ids were measured — the densest coverage of any family.

    The method is amended to THREE gates

    "Delete only the local assertions whose rule fired" does not hold. Delete only when all three hold:

    1. Non-vacuous — the assertion inspects a non-empty set and reds on its own defect.
    2. Reachable — the rule fires on this repo at all.
    3. Subsuming — the rule fires on that assertion's own defect, ⛔ not merely on some defect of its class. ⭐ The gate that was missing.

    Full statement: #1582's body · epic #1579 comment 5555869319.

    ⛔ Two mis-credits — these rows were never duplicates

    ⚠️ Both are the same failure: a table row asserting a relationship that was never checked. ⛔ Deleting on either would have removed real coverage while citing a rule that does not cover it.

    Upstream gap found in this family

    objectstack#16105 — validateChartBindings never checks a report without a chart, so rows / columns go unvalidated on every such report. A local assertion covering that is not a duplicate; it is the only thing checking it. ⛔ Keep it; the row is blocked on that card, not on #1581.

    Any row proven retirable through all three gates is already being taken by #1625.

    Refs: #1613 · #1621 · #1625 · objectstack#16105.


    Generated by Claude Code

  4. added and removed
    pm:epicParent delegated to a dedicated epic PM — other PMs never dispatch into its subtree
    on Oct 8, 2026
  5. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    Contributor

    Ruling: batch hotcrm-R74 item 4 · letter B · maintainer 「同意」 2026-10-08T03:17Z

    repo:hotcrm seat, session_012zh91QzFgePbkmuHnugLN3. Epic #1579 is dissolved by this ruling; the full reading and the destination of every child are in #1579's closing comment.

    Transition: no pm:* state → pm:blocked on the Blocked-by: #1581 line already in this body · pm:epic is removed in the same write · source: the maintainer's 「同意」 to batch hotcrm-R74, in this seat's chat.

    What happens when #1581 lands: this card is re-graded once, under the three-gate, per-case method (non-vacuous, reachable, subsuming: 5555869319, 5556310099). The surviving retirable rows of every family fold into ONE card; this card closes not_planned if it has none. This card is family F3, the analytics / dataset family. All 13 ids were measured in the surveys; chart-dimension-unknown / A3 still owes its per-case gate-3 measurement.


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round R74
    Session: session_012zh91QzFgePbkmuHnugLN3
    Account: os-zhuang (the seat's linked user as GET /user answers it; always the card's assignee)
    Branch: claude/issue-1582-family-regrade
    Worktree: hotcrm-issue-1582
    Domain: repo:hotcrm (single-lane repo, no domain:* taxonomy)
    Seat: repo:hotcrm#1
    File surface: as on the chain head #1582: read-only measurement, nothing committed (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: default (dispatch-gates --tier --repo objectstack-ai/hotcrm answers "no path-derived mandate … the tier stays the PM's per-card judgment call")
    Clause-②: no
    Responsibility: n/a — not a defect card (family F3 analytics / dataset)
    Thread-read: 6051455829
    Serial constraints cleared: member of the folded family dispatch whose chain head is #1582; the full serial check is on that claim. Ruling-ref: hotcrm-R74 item 4 B (on #1579 and on each family card).


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    Contributor

    Verdict on the re-grade report 6053840674 (on #1582) — ACCEPT (a measurement round: nothing deleted, no PR; the empty marker branch claude/issue-1582-family-regrade stays at c529de2b). repo:hotcrm seat, session_012zh91QzFgePbkmuHnugLN3, 2026-10-08T06:34Z.

    This card's share of the fold: F3 (analytics), 4 rows: A1 chart-dataset-unknown, A3 chart-dimension-unknown (the per-case gate 3 that was owed is now measured), A4 dimension and measure, and A8 filter-preset-comparand (objectstack#16105, #16106). dataset-granularity stays a mis-credit.

    These rows retire in the ONE retirement PR folded under #1582, whose comment carries the full plan: per-row deletion, re-ablation on the PR's base, and one Fixes line per member. The serial order is after hotcrm#1907 / PR #2011. Rows marked keep stay byte-identical.

    Release: claim 6052968373 (fold member) · reason: the measurement round is delivered, and the retirement waits on a sibling PR's files · destination: pm:queue. The assignee is cleared in the same act.


    Generated by Claude Code

  8. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    on Oct 8, 2026
  9. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Oct 8, 2026
  10. objectstack-fleet commented on Oct 8, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round R74
    Session: session_012zh91QzFgePbkmuHnugLN3
    Account: os-zhuang (the seat's linked user as GET /user answers it; always the card's assignee)
    Branch: claude/issue-1582-family-regrade
    Worktree: hotcrm-issue-1582
    Domain: repo:hotcrm (single-lane repo, no domain:* taxonomy)
    Seat: repo:hotcrm#1
    File surface: as on the chain head #1582 (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: default (dispatch-gates --tier --repo objectstack-ai/hotcrm answers "no path-derived mandate … the tier stays the PM's per-card judgment call")
    Clause-②: no
    Responsibility: n/a — not a defect card (retirement share, F3: A1, A3, A4, A8)
    Thread-read: 6053969119
    Serial constraints cleared: member of the folded family dispatch whose chain head is #1582; the full serial check is on that claim. Ruling-ref: hotcrm-R74 item 4 B.


    Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions