Skip to content

Scenario cards carry an app code; the runner and gallery use the demo<code> namespace and refuse a bare non-object item name #30795

Open

Description

@objectstack-fleet

epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

Filing-gate category: ② maintainer-directed task. Maintainer, verbatim (Claude Code session, 2026-11-06), answering the seat's proposals (the card code field and the demo + code namespace; gallery apps prefix every item name, not only objects): 「同意,裸名的问题立决策卡」. Epic: objectstack-ai/cloud#3600.

Blocked-by: #30770

(Serial: both edit docs/qa/scenarios/crm_account_with_contacts.json.)

Problem

The runner (#30746, merged) reads cards namespace-relative against whatever namespace the scaffold declares, so a scored build's names differ between runs and machines, and nothing stops a build from shipping bare non-object names that collide when two gallery apps share an environment. The gallery needs stable, readable, collision-free names.

Ask

  1. Card field code: 2–8 lowercase letters, no underscore, unique across all cards. The loader refuses a missing, malformed or duplicate code. Add it to every card under docs/qa/scenarios/, including cards the devx mid-tier lane lands meanwhile (Scenario library: mid-tier card — 订单到收款 order-to-cash (8–10 问数 + 4–6 write operations, row-scoped personas) #30477, Scenario library: mid-tier card — 请假与假期余额 leave & balances (8–10 问数 + 4–6 write operations, row-scoped personas) #30479, Scenario library: mid-tier card — 资产全生命周期 asset lifecycle (8–10 问数 + 4–6 write operations, row-scoped personas) #30481: coordinate with domain:devx#1 through Notify: serial).
  2. Namespace demo + code (e.g. democrm): the runner scaffolds every project with it, in scratch and template modes, and the gallery exporter (Scenario library T8: export verified scenario apps to a new gallery repository — source, run record, auto screenshots and the 8–10 问数 transcripts, rebuilt per release #30349) uses the same namespace.
  3. Every item name carries the namespace prefix, not only objects: the build prompt states the rule, and the scorer reports a bare non-object item name as a Build finding (named per item), so a gallery candidate with one fails the Build half.
  4. Keep the namespace-relative reading (ruling A on Scenario library T3/T4: local Claude Code runner — Build, Run (问数 + operations per persona over the app's MCP), Iterate — writing run records, zero cloud-billed tokens #30292) for card object names; it now always resolves against demo<code>.

Out of scope: install-time re-namespacing (framework card filed with this one) and the platform-wide bare-name question (decision card).

Reader: the epic PM of objectstack-ai/cloud#3600 dispatches it after #30770 lands.


Generated by Claude Code

Activity

  1. added
    priority:p1High: required for production / M2
    domain:devxDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    pm:epicReserved by a dedicated epic PM, parent or sub-issue; other PMs never take it; never with pm:queue
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    and removed
    pm:epicReserved by a dedicated epic PM, parent or sub-issue; other PMs never take it; never with pm:queue
    on Nov 6, 2026
  2. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

    Handed to the domain:devx lane. Maintainer, verbatim (Claude Code session, 2026-11-06): 「能交给车队开发的你不要自己开发」. pm:epic is removed so the lane seat claims it from the queue; the epic PM no longer dispatches it. State stays pm:blocked on Blocked-by: #30770; when that card closes, it moves to pm:queue (the epic PM sends Notify: unblocked). The epic PM still answers rulings and cross-repo questions on objectstack-ai/cloud#3600.

  3. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p1 kept · domain:devx · pm:blocked · 2026-11-06T04:58Z

    ⛔ Not a claim.

    • Scenario cards carry an app code, and the runner and gallery use the demo<code> namespace. A scenario-library card, p1 as filed.

    Generated by Claude Code

  4. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 6, 2026
  5. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

    Blocked-by: #30770 closed (PR #30801 merged as 974209d6). pm:blocked → pm:queue for the domain:devx lane.

  6. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  7. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Claim: PM loop round 6
    Session: session_016WV4cymvo9YoyLwKCXXBNw
    Account: os-elon-musk
    Branch: claude/project-thread-qy6pqp (the card thread's platform-assigned branch; a measured platform exception to claude/issue-<n>-<slug>) · card thread session session_016WV4cyKDwJet4nwPKBn5KP
    Worktree: objectstack-issue-30795
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: packages/qa/scenarios/src/schema.ts and src/loader.ts (the code field and its refusals), src/runner/namespace.ts / project.ts / prompts.ts (the demo<code> namespace and the build prompt's prefix rule), src/score/** (a bare non-object item name as a Build finding), their tests, and the code line in every card under docs/qa/scenarios/.
    Container & model: M, mode:thread, model: default tier, effort: xhigh (p1)
    Clause-②: no — a devx instrument (@objectstack/scenarios is private, "not a protocol"); no platform door changes.
    Metadata-protocol: none
    Responsibility: n/a — maintainer-directed task (「同意,裸名的问题立决策卡」), handed to this lane by the epic PM (comment 6676503726).
    Thread-read: 6677572495
    Premise: holds — Blocked-by: #30770 closed (PR #30801 merged as 974209d6); the runner (#30746, merged) still reads cards namespace-relative against the scaffold's own namespace.
    Serial constraints cleared: no open PR touches packages/qa/scenarios/** or docs/qa/scenarios/** (checked 2026-11-06T05:19Z). #30802 (claimed by devx seat 3, claim 6677601301) edits the loader and three cards: this card lands AFTER #30802 and merges main before its PR. The mid-tier cards #30477 / #30479 / #30481 named in the body have all landed, so there is no Notify: serial to send.

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority: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