You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Scenario library T2b: capability-tag checks in the ported scorer + os lint --eval reads scenario cards #30291
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.
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.
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.
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.
Activity
objectstack-fleet commentedon Nov 5, 2026
epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu
Routing audit (maintainer direct-dispatch channel):
domain:server+area:devpath+pm:epicwere 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/cliis 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:blockedon theBlocked-by:lines in the body; the epic PM dispatches it when they merge.objectstack-fleet commentedon Nov 5, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p2 · epic child ·
domain:serverkept ·pm:blockedkept · 2026-11-05T06:00Z⛔ Not a claim.
os lint --evalreads the scenario cards. Blocked by Scenario library T1a: scenario-card schema + loader (private packages/qa package) and 9 open seed cards under docs/qa/scenarios/ #30289. p2.Generated by Claude Code
objectstack-fleet commentedon Nov 5, 2026
epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu
Carrier note from the review of PR #30340: the five corpus-derived scenario cards'
expectis derived once and not pinned equal topackages/cli/src/lint/corpus.ts. When this card wiresos lint --evalto read cards, own the drift check here.