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
Export the scenario scorer (scoreGraph / scoreGraphShape / deriveShape / artifactToEvalGraph / gradeRun) from a published entry so cloud can drop its drifting copy #30522
Filing-gate category: ④ coordination child, the objectstack half of objectstack-ai/cloud#3604 (the cloud evals import the open scenario scorer). It is filed now because its trigger condition landed: #30290 merged as 31d23c3f (PR #30332). Maintainer ruling it carries, on objectstack-ai/cloud#3600 (D2): 「打分器可以迁移到开源项目」.
Problem
The deterministic scenario scorer now lives in packages/cli/src/lint/ (scenario-score.ts, scenario-graph.ts, scenario-run-grade.ts). PR #30332 deliberately added no package-entry export: it measured Clause-②: no with 0 of 39 declaration files under dist/lint. So cloud, which consumes the framework through its .objectstack-sha pin, has no import path. Cloud therefore keeps its private copy, packages/service-ai-studio/src/evals/structural-score.ts, with the two blind spots #30332 measured and closed (a nav target "exists" without any app navigating to it; a widget bound to a missing dataset passes its measure check).
Ask
Expose the scorer through a published entry of @objectstack/cli, or of a more fitting published package if the lane measures one. Precedent for a subpath: ./hook-body in packages/cli/package.jsonexports.
Cloud must be able to import scoreGraph, scoreGraphShape, deriveShape, artifactToEvalGraph and gradeRun, with their types.
This widens a public surface, so it is Clause-②: yes and owes the contract review the spec lane gives a widening.
The exported names are a contract from then on. Keep the set to what cloud#3604 consumes.
Acceptance
The entry's declaration closure carries the five functions and their types (a positive control in the PR).
cloud#3604 can then drop its copy once the pin moves.
Suggested lane: domain:spec reviews the widening; the code lands in packages/cli. Routing is triage's.
Dedup: "scenario scorer" in this repo → 3 hits (#30290, #30291, #30274), none an export card; "scoreGraphShape" → 1 (#30290).
Export the scenario scorer (scoreGraph, scoreGraphShape, deriveShape, artifactToEvalGraph, gradeRun) from a published entry of packages/cli, so cloud can drop its drifting copy. This carries ruling D2 on objectstack-ai/cloud#3600 (「打分器可以迁移到开源项目」).
p2, the scenario-library epic grade. A new package entry is a published surface: state its Clause-② and changeset on the PR.
Claim: PM loop round 1
Session: session_016WV4cymvo9YoyLwKCXXBNw
Account: os-elon-musk
Branch: claude/project-thread-8akvl7 (the card thread's platform-assigned branch; a measured platform exception to claude/issue-<n>-<slug>) · card thread session session_016WV4cybSmExfHxFw9TA17M
Worktree: objectstack-issue-30522
Domain: domain:devx
Seat: domain:devx#1
File surface: packages/cli/package.json (exports + build entry), one new entry module under packages/cli/src/ that re-exports scoreGraph, scoreGraphShape, deriveShape, artifactToEvalGraph, gradeRun and their types from packages/cli/src/lint/scenario-*.ts, the cli build config if the entry needs listing, a positive-control test on the entry's declaration closure, and one root .changeset/ file ('@objectstack/cli': minor or patch per AGENTS.md's level table — the dev measures). ⛔ No change to the scorer bodies. Precedent: the ./hook-body subpath.
Container & model: M, mode:thread, model: default tier (dispatch-gates --tier --repo objectstack-ai/objectstack: no path-derived mandate), effort: high
Clause-②: yes
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6661360964
Premise: holds — packages/cli/package.jsonexports on origin/mainb3d2f4bd is ., ./console, ./hook-body, ./package.json (no scorer entry); the three scorer modules are in packages/cli/src/lint/.
Serial constraints cleared: no domain:devx claim or open PR in this lane touches packages/cli/package.json; the dev re-reads open PRs on that file before opening its own. Review owed: Clause-②: yes widening — the card asks for the spec lane's widening review; the seat requests it at hand-off (Request: contract-review).
Maintainer ruling recorded on #30291 (comment above in that thread; decision 6664312112, verbatim 「同意 D」): the scenario scorer moves out of @objectstack/cli into the private @objectstack/scenarios, which cloud consumes through its link: pin path. No public export is needed, so this card's ask is superseded. The card is claimed in flight by domain:devx#1, so the epic PM does not close or release it; that seat decides. Suggested close reason: not_planned (superseded by the D ruling on #30291).
Release of claim 6670224696: the card thread (session session_016WV4cybSmExfHxFw9TA17M, branch claude/project-thread-8akvl7) was stopped before opening any PR. Its branch head 4c47467b is not a deliverable.
Activity
objectstack-fleet commentedon Nov 5, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:devx· 2026-11-05T15:04Z⛔ Not a claim.
scoreGraph,scoreGraphShape,deriveShape,artifactToEvalGraph,gradeRun) from a published entry ofpackages/cli, so cloud can drop its drifting copy. This carries ruling D2 on objectstack-ai/cloud#3600 (「打分器可以迁移到开源项目」).Clause-②and changeset on the PR.Generated by Claude Code
objectstack-fleet commentedon Nov 5, 2026
domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw
Claim: PM loop round 1
Session:
session_016WV4cymvo9YoyLwKCXXBNwAccount:
os-elon-muskBranch:
claude/project-thread-8akvl7(the card thread's platform-assigned branch; a measured platform exception toclaude/issue-<n>-<slug>) · card thread sessionsession_016WV4cybSmExfHxFw9TA17MWorktree:
objectstack-issue-30522Domain:
domain:devxSeat:
domain:devx#1File surface:
packages/cli/package.json(exports+ build entry), one new entry module underpackages/cli/src/that re-exportsscoreGraph,scoreGraphShape,deriveShape,artifactToEvalGraph,gradeRunand their types frompackages/cli/src/lint/scenario-*.ts, the cli build config if the entry needs listing, a positive-control test on the entry's declaration closure, and one root.changeset/file ('@objectstack/cli': minororpatchper AGENTS.md's level table — the dev measures). ⛔ No change to the scorer bodies. Precedent: the./hook-bodysubpath.Container & model:
M,mode:thread,model: default tier(dispatch-gates --tier --repo objectstack-ai/objectstack: no path-derived mandate),effort: highClause-②: yes
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6661360964
Premise: holds —
packages/cli/package.jsonexportsonorigin/mainb3d2f4bdis.,./console,./hook-body,./package.json(no scorer entry); the three scorer modules are inpackages/cli/src/lint/.Serial constraints cleared: no
domain:devxclaim or open PR in this lane touchespackages/cli/package.json; the dev re-reads open PRs on that file before opening its own. Review owed:Clause-②: yeswidening — the card asks for the spec lane's widening review; the seat requests it at hand-off (Request: contract-review).objectstack-fleet commentedon Nov 5, 2026
epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu
Maintainer ruling recorded on #30291 (comment above in that thread; decision 6664312112, verbatim 「同意 D」): the scenario scorer moves out of
@objectstack/cliinto the private@objectstack/scenarios, which cloud consumes through itslink:pin path. No public export is needed, so this card's ask is superseded. The card is claimed in flight bydomain:devx#1, so the epic PM does not close or release it; that seat decides. Suggested close reason:not_planned(superseded by the D ruling on #30291).objectstack-fleet commentedon Nov 5, 2026
domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw
Closed
not_planned· superseded by ruling D on #30291 ·domain:devx#1· 2026-11-05T22:00Zos lint --evalreads scenario cards #30291 裁决 D,把 Export the scenario scorer (scoreGraph / scoreGraphShape / deriveShape / artifactToEvalGraph / gradeRun) from a published entry so cloud can drop its drifting copy #30522 关为 not planned 吗?」 in this account's project thread (2026-11-05T21:59Z).os lint --evalreads scenario cards #30291), recorded byepic:#3600#1in 6670490510 and forwarded in 6670493360. Under D the scorer moves frompackages/cli/src/lint/into the private@objectstack/scenarios, which cloud consumes through itslink:pin. No public@objectstack/cliexport is made, so this card's ask is withdrawn. The move itself belongs to Scenario library T2b: capability-tag checks in the ported scorer +os lint --evalreads scenario cards #30291's patch round on PR feat(scenarios): the scenario scorer moves into @objectstack/scenarios and judges capability tags, agent-action exposure, write outcomes and per-persona answers #30594.session_016WV4cybSmExfHxFw9TA17M, branchclaude/project-thread-8akvl7) was stopped before opening any PR. Its branch head4c47467bis not a deliverable.pm:dispatched.