Skip to content

skills: teach the view filter any-of group { or: [...] } in the objectstack-ui list-views rule #28476

Closed

Description

@objectstack-fleet

domain:ui#5 · os-sales · session_01L6bhgUhKx1XHzkoikGjRB4

Filing gate: ③ the Skills-docs: follow-up owed line of PR #28475 (#28370), filed by the seat before ACCEPT as the claim template requires. ⛔ Not a claim. Triage sets the lane and grade.
Reach: an AI author writing a list view from the objectstack-ui skill learns only flat AND rules, so for "open, or completed in the last 7 days" it either writes two views or invents an or key the spec refuses.

Wanted

Links back: #28370, PR #28475, #28020.

Activity

  1. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p3 · domain:skills · agreed · 2026-10-31T22:53Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 1, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-tesla · session_01L9qibzCtJt8Q2Z63fyRNix

    Claim: skills seat 1 round 2 (single card) · card thread · 2026-11-01T03:57Z
    Session: session_01L9qibzCtJt8Q2Z63fyRNix (the seat); card thread session_01L9qibz4G9FrLR4TRExx6gn
    Account: os-tesla (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-0tmmio (restarted from origin/main; its earlier PR #28488 merged as 3b45d4a4)
    Worktree: the card thread's own container checkout
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: skills/objectstack-ui/rules/list-views.md (§ Filtering), skills/objectstack-ui/evals/views-apps-actions-pages.json, and a .changeset/28476-*.md. ⛔ No SKILL.md, rules/pages*, references/pages.md (ui seat 1's #27059), no references/_index.md. Stop on breach.
    Container & model: S, mode:thread, model: claude-fable-5-1 (MANDATORY by dispatch-gates.mjs --tier for this surface), effort high; contract-review tier before the queue; Tier H
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — a Skills-docs: follow-up owed line of PR #28475
    Thread-read: 6550228889
    Premise: holds (list-views.md on main teaches flat AND rules only; ViewFilterOrGroupSchema and PR #28475 are on main; the dev re-checks first)
    Ruling-ref: none — triage route 6550228889; p3 under the maintainer's 「任务有一大堆啊,都可以派,包括 p3」 (2026-11-01)
    Serial constraints cleared: PR #28488 (same two files) merged as 3b45d4a4; ui seat 1's #27059 stays off these files
    Resume-from: none (fresh from origin/main)
    Order: /mnt/project-files/skills-seat-1/r2026-10-31/dispatch-28476.md (project file)

    State: no state label (triage left it at p3 without pm:queue) → pm:dispatched, assigned to os-tesla, recorded by this claim.

  3. objectstack-fleet commented on Nov 1, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-tesla · session_01L9qibz4G9FrLR4TRExx6gn
    os-dev-report

    Card thread report for #28476, written 2026-11-01T04:26Z. Draft PR #28517 at head af460eb.

    {
      "issue": 28476,
      "status": "done",
      "branch": "claude/project-thread-0tmmio",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28517",
      "session": "session_01L9qibz4G9FrLR4TRExx6gn",
      "premise_still_valid": true,
      "summary": "skills/objectstack-ui/rules/list-views.md § Filtering teaches the view filter any-of group `{ or: [rule, ...] }` (ViewFilterOrGroupSchema, view.zod.ts:1189): an element of the `filter` list that matches when any of its flat rules does, still ANDed with the elements beside it; no group in a group, no empty `or`; `$or` / `any` / `anyOf` / `logic` / `conditions` on a rule are refused naming the shape; the Console builder saves its OR toggle as one group, edits a filter that is exactly one group, and shows a group beside other elements read-only (filter-converter.ts:1406, viewFilterFold.ts:228, viewFilterOrGroup.roundTrip-28370.test.tsx:142). Example: open OR urgent, AND `{current_user_id}`. Eval 12 asks for an either-of list in one `listViews` entry. Changeset `.changeset/28476-skills-ui-view-filter-any-of-group.md` ('@objectstack/skills': patch). One commit af460eb4 on main 23d1303d; branch restarted from main after PR #28488 squash-merged (GitHub had deleted the head branch, so a plain push). Token growth paid by deletion in the same file (nine deletions named in the PR body); list-views.md 3114 → 3106 / 3129. In-place fix in the same section, declared in Acceptance notes: the old operator line taught `this_week` / `this_month` / `this_quarter` / `last_n_days`, which VIEW_FILTER_OPERATORS (view.zod.ts:315-325) and the alias table (:375-400) both refuse, and omitted eight real operators; replaced by the enum verbatim.",
      "tests": "Docs-only diff, no package source touched, so no package test suite is owed or was run; no ablation. `node scripts/check-skills-token-ratchet.mjs` exit 0 (56 authored files within ceilings; list-views.md headroom 23). `pnpm --filter @objectstack/spec run check:skill-examples` exit 0 ('277 prose examples type-check across 3 surface(s)'); the file's three os:check blocks are byte-identical to main (extracted and compared). The eval fixture parses as JSON (12 cases) and was appended in its own inline-array style.",
      "gates": "Local subset = the derivation: `dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` at af460eb4 = 43 lines (the #28488 fold's 45 minus check:skill-docs and check:merge-driver), each run with stdin closed, exit captured before any pipe, all `:: exit 0`; `--ran` reconciliation: '43 derived famil(ies) accounted for — 43 run, 0 NOT-MEASURED'. check:skill-examples (owed outside the derivation) exited 3 PREREQUISITE NOT MET twice (spec dist, then client-react dist predated the sources after main moved) and 0 after `pnpm --filter @objectstack/spec build` (79 s) and `pnpm --filter '@objectstack/client-react...' build` (4m19s) under the verify lock; the recorded code is the re-run's. Record: /mnt/project-files/skills-seat-1/r2026-10-31/out/28476-gates-ran-af460eb4.list (+ -extras.list). Every other family is CI's: PR #28517 check-runs, in_progress at report time.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "3 — all reads: github issue_read get on #28476 and get_comments on #28476 twice (triage, then the Claim). 0 writes; the harness's assignee/reviewer MCP step was skipped as the frame forbids MCP writes.",
      "api_writes": "1 — git push (not a REST write; one push of af460eb4 after `git fetch --prune`) and one relay stroke `pr_create` (fleet-write run 41273003537, PR #28517, 12018 bytes stored identical, no assignees, no labels); this report comment via post-stamped.mjs is the second relay write.",
      "open_questions": [],
      "out_of_scope_findings": [
        "class: stale-docblock · reach: the spec source and the /meta/types describe text of ViewFilterOrGroupSchema · carrier: none — view.zod.ts:1152-1162 and :1217-1223 still read '[PLANNED — not yet rendered] … No console reads it yet', and filter-rule-array.ts:193-199 'declared, but no console applies it yet', although the console half (#28370, PR #28475) is on main. Not this PR's file surface (skills/**). Dedup words: PLANNED not yet rendered, ViewFilterOrGroupSchema, 28370, filter-rule-array.",
        "class: docs-token-unresolved · reach: content/docs/ui/views.mdx § Base filter and the schema docblock example · carrier: none — the `{7_days_ago}` value in the `completed_at after` example appears only in spec docblocks and the docs page; no console resolver reads it (filter-converter.ts resolves `{current_user_id}` only), so an author copying it stores a literal string. The skill example avoids it. Dedup words: 7_days_ago, date macro, current_user_id, filter-converter."
      ]
    }
  4. objectstack-fleet commented on Nov 1, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-tesla · session_01L9qibzCtJt8Q2Z63fyRNix

    Landed · 2026-11-01T05:19Z

    probe reading
    PR #28517 merged through the queue at 2026-11-01T05:18Z, merge commit f662c719 (enqueued by os-zhuang, Tier H; seat ACCEPT 6553674477, contract review PASS 6553630360)
    this card closed completed by the PR's Fixes line
    follow-up #28522 (spec lane): ViewFilterOrGroupSchema still reads [PLANNED] / "no console applies it yet"

    State: pm:dispatched removed (closed card).

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

Metadata

Metadata

Assignees

Labels

area:recordsBusiness objects, records, the views that show data, usable forms, searchdocumentationImprovements or additions to documentationdomain:skillspriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions