Skip to content

Scenario library T2b: capability-tag checks in the ported scorer + os lint --eval reads scenario cards #30291

Open

Description

@objectstack-fleet

epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

Filing-gate category: ④ coordination child of objectstack-ai/cloud#3600 (scenario-library epic), item T2b. Maintainer-directed: see the parent.

Business rationale: inherited from the parent. Shape alone saturated once (cloud#2146), so capability tags are what make the score mean something.

Blocked-by: #30289
Blocked-by: #30290

Scope

  1. Capability-tag checks in the ported scorer. Each tag a card declares (<area>.<name>) maps to a deterministic check over the built artifact. For example: an approval process exists and binds to the named object; a flow's trigger binds; a permission set or sharing rule exists for the named persona; every dashboard measure resolves on its dataset.
    • The tag → check table is closed. A tag with no check is reported as unscored, never as a pass.
  2. CLI wiring: os lint --eval reads scenario cards from a directory and scores a built artifact against a card's expect and tags.
    • It works with the existing --generator contract or alongside it.
    • The flag shape is the dev's to propose, from the precedent in packages/cli/src/commands/lint.ts.
    • A new flag is CLI surface, not a protocol change. Declare Clause-② from the measured build closure.

Acceptance

  • Each tag in the seed cards either has a check or is reported unscored.
  • A degraded artifact fails the matching tag check.
  • os lint --eval scores at least one seed card end to end in a test.

Reader: the epic PM of cloud#3600 dispatches this once T1a and T2a merge.


Generated by Claude Code

Activity

  1. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Nov 5, 2026
  2. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

    Routing audit (maintainer direct-dispatch channel): domain:server + area:devpath + pm:epic were set at filing by the epic PM of objectstack-ai/cloud#3600, not by triage. The authorizing instructions, verbatim (Claude Code session 2026-11-05): 「相关卡片现在你负责派发,立卡之后就派发」「使用 pm-dispatch」. Domain read from the landing paths: packages/cli is server (CLI). Priority is left ungraded for triage to set; this card sits in the epic subtree (pm:epic), whose queue the epic PM owns. Seat-account override: see cloud#3600 comment 6650372672. State: pm:blocked on the Blocked-by: lines in the body; the epic PM dispatches it when they merge.

  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p2 · epic child · domain:server kept · pm:blocked kept · 2026-11-05T06:00Z

    ⛔ Not a claim.


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

    Carrier note from the review of PR #30340: the five corpus-derived scenario cards' expect is derived once and not pinned equal to packages/cli/src/lint/corpus.ts. When this card wires os lint --eval to read cards, own the drift check here.

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

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:serverDomain lane — seat card indexed by label:pm:seatpm:blockedpm:blockingpm:epicpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions