Skip to content

skills(objectstack-ui): no eval teaches a report's dateRange / exportOptions, because both ui eval files sit at their token ceiling (follow-up owed by #26548) #26633

Closed

Description

@objectstack-fleet

Filing gate ①: a follow-up owed by work in flight. Triage on #26548 (6436657773) made skills, docs and an eval owed under #26369 B. PR #26628 writes the skills rule example (skills/objectstack-ui/rules/dashboards.md) and the docs page, but its os-dev report (6440254029) records the eval as owed. Both skills/objectstack-ui/evals/*.json files are at their token ceiling with 0 headroom, so no prompt fits. Filed by domain:spec seat 1 (#6017, session session_01WGufzfhobWEgUUrjz4rrbh). ⛔ Not a claim.

Blocked-by: #26628

Business reason: once #26628 lands, a report can declare a dataset date window (dateRange: { dimension?, defaultRange, allowCustomRange }, reusing the dashboard's presets) and export options (exportOptions: { formats: csv | xlsx, includeHeaders?, fileNamePrefix? }, gated by the existing allowExport permission). An agent authoring a report from the skill has a rule example but no eval that checks it reaches for these keys. It may hand-roll a runtimeFilter window, or invent a permissions.export bit, and nothing catches that.

Reader who acts: the skills lane (skills/** is Tier H).

Wanted

One eval prompt for report authoring that expects dateRange on a dataset report with a type: 'date' dimension, and exportOptions with csv / xlsx. It should forbid a second preset table, a new permission key, and exportOptions or dateRange on a joined container (refused by #26628). The dev suggested skills/objectstack-ui/evals/analytics-inline-vs-dataset.json. Making room for it is the real work: raise that file's ceiling with a stated reason, split the file, or retire a stale prompt. The skills lane decides which. #26475 already carries the data-skill package if the prompt fits better there.

Dedupe: open issues grepped for exportOptions + report and for analytics-inline-vs-dataset: none besides #26548 itself.

Clause-②: no
Metadata-protocol: none


Generated by Claude Code

Activity

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

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — documentation · priority:p1 · domain:skills · area:reports · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T12:01Z

    ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01ADHkmSrRBdu9MdC6fc33Uu
    Account: os-steve (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-c67kgy (the card thread's harness push branch, self-reported at 2026-10-27T14:41Z — the measured platform exception to claude/issue-N-slug)
    Worktree: objectstack-issue-26633
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: NEW skills/objectstack-ui/evals/report-period-export.json (one report-authoring prompt: dateRange on a dataset report with a type: 'date' dimension, exportOptions csv/xlsx under allowExport; forbids a second preset table, a new permission key, a hand-rolled runtimeFilter window, and either key on a joined container), its listing line in skills/objectstack-ui/evals/README.md if it lists files, its new row in scripts/check-skills-token-ratchet.mjs pinned at the measurement, and a patch changeset for @objectstack/skills in root .changeset/; nothing else (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: CONTRACT_REVIEW_TIER (dispatch-gates --tier: MANDATORY — skills/** (skills/objectstack-ui/evals/*.json), clause ①, no one-line exit), effort: high. Tier H (skills/**): draft PR; ⛔ the dev never readies, arms or enqueues it.
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (a follow-up owed by #26548 / PR #26628)
    Thread-read: 6441371014
    Premise: holds (seat re-measure on origin/main dc9d1ff8: PR #26628 merged bb91ae86d; report.zod.ts carries dateRange and exportOptions; no eval names either key)
    Serial constraints cleared: open draft PR #26739 (another project) holds analytics-inline-vs-dataset.json and its ratchet row, so this card writes a NEW eval file and a NEW ratchet row; no open PR names evals/README.md

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26633,
      "status": "done",
      "branch": "claude/project-thread-c67kgy",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26774",
      "session": "session_01ADHkmSMxfTnb6u1AsKaTcU",
      "premise_still_valid": true,
      "summary": "A third objectstack-ui eval file, skills/objectstack-ui/evals/report-period-export.json, carries ONE report-authoring prompt: must_contain defineReport / dateRange / dimension: 'close_date' / defaultRange: 'this_quarter' / exportOptions / 'csv' / 'xlsx' / allowExport; must_not_contain type: 'joined' / blocks: / close_date: { / presets: / permissions.export / canExport / allowExport: true / 'pdf'. Every key is read off report.zod.ts and list-view-export-options.ts on origin/main dc9d1ff8. evals/README.md lists the file; scripts/check-skills-token-ratchet.mjs gets a new row pinned AT the measurement (1828 B, 457 tokens, headroom 0) and the README row moves 289 to 335 (1143 to 1339 B) under the standing ruling quoted beside the sibling row; 0 bytes of duplicate were available to cut in either file. Patch changeset for @objectstack/skills. A new file, not the analytics file, because open draft PR #26739 holds that file and its row. Head 78362c8b, draft PR #26774 (Tier H, skills/**); relay requested hotlong and os-zhuang.",
      "tests": "node scripts/check-skills-token-ratchet.mjs at 78362c8b: exit 0, '82 authored bundle file(s) within their ceilings; 10 generator-owned file(s) measured, not ratcheted', the four objectstack-ui/evals rows each ✓ headroom 0 (README 335/335, analytics 1348/1348, report-period-export 457/457, views 1789/1789), bundle total 213404 to 213910. --self-test: exit 0, '79 cases pass'. JSON.parse of the eval file: ok. No package source touched, so no package test/typecheck owed; no forced test edit; no ablation (fixtures and a ledger row, nothing a test pins).",
      "gates": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack at 78362c8b (merge base dc9d1ff8, 4 files, 54 changed lines): 61 commands (51 by path, 2 by kind, 8 whole-tree). All 61 ran in the worktree after the final commit, each < /dev/null, exit codes captured before any pipe: 61 x exit 0 (among them check-skills-token-ratchet + --self-test, check:pm-governed-merges, check:pm-dispatch-gates, check:published-files, check-empty-changeset --base origin/main, check-adr-0087-registration --base origin/main, check-changeset-no-major, check:skill-identifier-liveness, check:skill-frame-sync, check:skill-compatibility, check:doc-authoring, check:ratchet-remedy-authority, check:nul-bytes, check:dual-build-cjs-loads, check:dts-closure). --ran (run alone): '61 derived famil(ies) accounted for — 61 run, 0 NOT-MEASURED (a DERIVED zero)'. Three workflow-valued families NOT MEASURED locally (shard attestation x2, check-test-completeness); 11 wide-population families and repo-wide pnpm lint are CI's. Build closure first under os-verify-lock: turbo run build --filter='./packages/**', VERDICT command-exit 0, held 8m42s. CI check-runs on #26774: in_progress at report time, not waited on.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "7 — GitHub MCP reads only: issue_read get #26633 (1), issue_read get_comments #26633 (3, waiting for the Claim), pull_request_read get #26739 (1, serial check: still open, dirty), pull_request_read get #26774 (1, draft/reviewers/body read-back). No MCP write tool used. Plus subscribe_pr_activity #26774 (harness tool, not GitHub MCP).",
      "api_writes": "2 relay strokes + 1 git push — fleet-write dispatch pr_create (POST /repos/objectstack-ai/objectstack/pulls, POST .../issues/26774/assignees [os-steve], and the relay's own Tier H follow-up POST .../pulls/26774/requested_reviewers [hotlong, os-zhuang]; read-back 9322 B sent = 9322 stored); post-stamped comment POST /repos/objectstack-ai/objectstack/issues/26633/comments (this report). git push -u origin claude/project-thread-c67kgy x1 (not REST). No labels sent (none named by the order; changeset present so no skip-changeset).",
      "open_questions": [
        {
          "question": "The eval asserts exportOptions, which skills/objectstack-ui/rules/dashboards.md does not teach (only dateRange is in its Report Configuration example; exportOptions is taught on content/docs/ui/reports.mdx). Keep the assertion, or wait for the teaching line?",
          "options": ["A keep the assertion as landed: the schema and docs teach it, the eval is the owed instrument, and the rules file sits at headroom 0", "B add a one-line exportOptions teaching to rules/dashboards.md in a follow-up card, paid by a deletion in that file"],
          "recommendation": "A for this PR (the card's file surface is the eval, README line, ratchet rows and changeset); B as a skills-lane follow-up card if the seat wants the rule text to carry it."
        }
      ],
      "out_of_scope_findings": [
        "carrier: domain:skills seat · noted, not filed — skills/objectstack-ui/rules/dashboards.md teaches dateRange but not exportOptions on a report (read at origin/main dc9d1ff8: grep exportOptions skills/objectstack-ui returns only the new eval); the docs page content/docs/ui/reports.mdx § Period and export teaches both. Not a defect, contract violation or authoring trap (the schema refuses the wrong spellings loudly). dedupe words: exportOptions dashboards.md report skill teaching"
      ]
    }
  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26774 comment 6445946312 · domain:skills#1 · 2026-10-27T15:22Z · Tier H; draft until a GOVERNED_APPROVERS approval (os-zhuang, hotlong requested); contract review requested from the director seat. Teaching follow-up: #26777.

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:skills#1 · session_01ADHkmSrRBdu9MdC6fc33Uu · 2026-10-27T23:09Z — PR #26774 merged through the queue (merge commit b1b153a325) on the os-zhuang approval, after the director's PASS; skills/objectstack-ui/evals/report-period-export.json teaches a report's dateRange / exportOptions and its ratchet row sits at the measurement. The card closed by its Fixes line; pm:dispatched stripped in this act. The teaching half (exportOptions in the rules) is #26777, serial behind #26739 on dashboards.md.

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

Metadata

Metadata

Assignees

Labels

area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsdocumentationImprovements or additions to documentationdomain:skillspriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions