Skip to content

qa(checklist): automation — provisioning recipes for a second packaged caller and the 503 STORE_UNAVAILABLE trigger arm #26622

Closed

Description

@objectstack-fleet

Filing gate: ③ a maintainer-directed task — in the 18.2.0 wave-2 session (2026-10-27), on the PM's list of improvements ("补测试数据配方: write the recurring fixture gaps up as area-level provisioning recipes"), the maintainer answered, verbatim: 「补测试数据配方。立卡」.
Business reason: two automation clauses scored blocked(fixture) in both 18.2.0 waves (#25817, #26476) for want of an environment stock seeds do not provide.
Reader: the lane owning docs/qa/platform-checklist/** and packages/qa/** (domain:devx). The shape to copy is the area-level fixtures recipe block in docs/qa/platform-checklist/README.md ("Area-level fixtures"), the worked instance qa-scratch-authz in areas/attachments-storage.json; items opt in with fixtures.provisioning.use.
Dedupe (open AND closed): "checklist fixture provisioning recipe blocked fixture knownGaps org-less approval request" → 29 hits; the nearest is #21851 (closed: four other recipes, landed). None covers the gaps below.

Gaps

  • automation.packaged-flow-subflow-disable-refusal N1 — needs a SECOND packaged caller of the subflow, which only a package-loader-installed package can provide (a ?package=-authored flow counts as deployment-authored, so it does not stand in). Recipe: a scratch package installed through the package loader whose flow calls the showcase subflow.
  • automation.trigger-status-contract A4 — the 503 STORE_UNAVAILABLE arm has no stock trigger. Recipe: the boot or config that makes the run store unavailable while the trigger door stays mounted, or a pinned in-process case if no live arm exists (then say so in the item).

Done when

  • The recipe is written once at the area level (a keyed block beside items), with the exact call sequence a runner replays on a stock showcase boot, and each listed item references it with fixtures.provisioning.use + why.
  • Each listed clause is re-driven once on the recipe and its verdict recorded in the item history (citing this card); the item's knownGaps line for the gap is removed or reworded.
  • node scripts/check-platform-checklist.mjs stays green (it resolves every provisioning.use and refuses an unreferenced recipe).
  • A gap that turns out to be a product limit rather than a fixture (no door exists at all) is filed as its own card and stays blocked with that card as blocked.ref.

Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — tests · priority:p2 · domain:devx · area:devpath · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T11:04Z

    ⛔ Not a claim, ⛔ not a dispatch.

    • p2, maintainer-directed (wave-2 session, 「补测试数据配方。立卡」): write the provisioning recipe so the named clauses can be scored, in docs/qa/platform-checklist/** / packages/qa/**, with the item revisions bumped. domain:devx. ⛔ No product change rides this card. If a recipe needs a door the platform lacks, that is a separate product card.

    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 6 · 2026-10-27T16:04Z
    Session: session_01JQwxbYrT5jXrc7zvLFLnyA (card thread cmsg_01U5RdnAAmkSQmZbqh6FtqZ8DcJexQ1vAppgxsiiNUjjkf, dispatched by seat session session_01JQwxbaFpnMwgpCgneKe2qS)
    Account: os-warren (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-edxrda (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record)
    Worktree: objectstack-issue-26622
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: docs/qa/platform-checklist/areas/automation.json (area-level fixtures recipes for automation.packaged-flow-subflow-disable-refusal N1 and automation.trigger-status-contract A4: fixtures.provisioning.use, knownGaps, revision, history), and packages/qa/** only if a recipe needs a helper. ⛔ No product change; a missing door is its own product card with the clause left blocked (stop on breach)
    Container & model: M, mode:thread (Warren's 「opus 很多,并发5」, 2026-10-27), model: default (dispatch-gates --tier: "no path-derived mandate … default opus"), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — maintainer-directed filing (wave-2 session, quoted in the card body); triage 6440320029
    Thread-read: 6440320029
    Premise: holds by the paths (the card's items are read on origin/main by the thread before its first edit; its report records any item already pinned)
    Serial constraints cleared: none blocking. Draft #26337 touches docs/qa/platform-checklist/coverage.json and packages/qa/dogfood/test (merge origin/main before each push); sibling card threads (#26571, #26572, #26573, #26621, #26622) each edit their own areas/<area>.json; no other devx seat is seated


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26622,
      "status": "done",
      "branch": "claude/project-thread-edxrda",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26802",
      "session": "session_01JQwxbYrT5jXrc7zvLFLnyA",
      "premise_still_valid": true,
      "summary": "N1: new area recipe qa-second-packaged-caller installs an inline-manifest package through POST /api/v1/marketplace/install-local (the package loader; packagedArtifactOwner counts it packaged), giving showcase_notify_owner a second packaged caller; automation.packaged-flow-subflow-disable-refusal revision 9 to 10 opts in. A4: the 503 STORE_UNAVAILABLE resume arm is step 5 of the existing qa-flow-status-doors recipe (sys_automation_run renamed away in the boot's telemetry DB for one resume, then back), because an item carries one provisioning.use and trigger-status-contract already uses that recipe; revision 6 to 7. Both clauses re-driven once on a fresh stock showcase boot at d31329f1, verdicts pass, recorded in history citing #26622. No product card needed: no door was missing. Fixes #26622.",
      "tests": "No code changed. Live re-drive, REST only, fresh boot built from d31329f1: N1 install-local 200 hotLoaded true; toggle showcase_notify_owner off 409 DELETE_RESTRICTED naming 2 packaged callers (showcase_task_done_notify_owner, qasub_second_notify_caller); sys_metadata_activation empty; teardown DELETE 200, then the refusal names the stock caller alone. A4: wizard paused, table renamed in PRIMARY.telemetry.db, resume 503 STORE_UNAVAILABLE; renamed back, run reads paused, same resume 200. No ablation: no tested behaviour changed.",
      "gates": "At head 185f67df: dispatch-gates --commands derived 16; all 16 exit 0; --ran reconciles 16 derived, 16 run, 0 NOT-MEASURED. check:platform-checklist OK: 7 area recipes, 12 item references, 7/7 referenced, symbol anchors 1006/1016 (10 named residual). CI check-runs on PR 26802 not yet read: in_progress at report time.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "0",
      "api_writes": "2 — relay pr_create (objectstack-ai/objectstack#26802, draft, assignee os-warren, label skip-changeset); this os-dev-report comment via post-stamped. Plus 2 git pushes (not REST).",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none · noted, not filed — the install-local ledger is written under the project tree (examples/app-showcase/.objectstack/installed-packages/) even on a --fresh boot, so a throwaway run leaves a package the next boot rehydrates unless the teardown DELETE runs; recorded in the recipe's requires and teardown"
      ]
    }

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26802 comment 6448184325


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #26802, merged as 59441b6268 · 2026-10-27T17:26Z

    Both recipes are in areas/automation.json: qa-second-packaged-caller (N1 of packaged-flow-subflow-disable-refusal) and step 5 of qa-flow-status-doors (the 503 STORE_UNAVAILABLE arm of trigger-status-contract). ACCEPT → PR #26802 comment 6448184325. pm:dispatched removed; the card's slot is free.


    Generated by Claude Code

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:devxpriority:p2Medium: important, M3tests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions