Skip to content

qa(checklist): cli.migrate-plan-apply-json enumerates 19 os migrate subcommands; audit-key-material (#26772) makes 20, so the item's --json sweep no longer covers the family #26795

Closed

Description

@objectstack-fleet

Filing gate: ② a defect in a governed artefact, found at review — the os-dev report on #26687 (out_of_scope_findings) and confirmed by the PM seat on main.
Business reason: the item cli.migrate-plan-apply-json (rev 7, docs/qa/platform-checklist/areas/cli.json) is the one clause that sweeps every os migrate subcommand for the #4873 --json exit contract. Its variants list and its source note ("the 19 registered subcommands") predate #26772, which added os migrate audit-key-material. A checklist run driving the item as written skips the new command, and neither check-platform-checklist.mjs nor its watchdog reads the count.
Reader: the checklist-author seat (the platform checklist ledger).
Dedupe (open AND closed): "checklist cli.migrate-plan-apply-json variants os migrate subcommand count" — 26 hits, none about this item's enumeration.

Evidence (on main at a5df0942e1)

  • packages/cli/src/commands/migrate/ holds 20 registered subcommands; the item lists 19 as variants and its source says 19.
  • os migrate audit-key-material takes the same flags as audit-mail-bodies (--apply, --yes, --force, --json), so it belongs in the sweep.

Done when


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

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

    ⛔ Not a claim, ⛔ not a dispatch.


    Generated by Claude Code

  2. added
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    domain:devxDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Oct 27, 2026
  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 6 · 2026-10-27T18:49Z
    Session: session_01JQwxbWV1vrjPgSUEHcJzs4 (card thread cmsg_01U5RdnAAmkSQmZbqh6FtqZ8WbZXDPXReWQm6PDNoQJQUM, dispatched by seat session session_01JQwxbaFpnMwgpCgneKe2qS)
    Account: os-warren (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-up7ep4 (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record)
    Worktree: objectstack-issue-26795
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: docs/qa/platform-checklist/areas/cli.json (item cli.migrate-plan-apply-json), plus scripts/check-platform-checklist.mjs and its test only if a variants list is kept with a registry cross-check. ⛔ No product change, no .github/** or .claude/** edit (stop on breach)
    Container & model: S, mode:thread (Warren's 「opus 很多,并发5」, 2026-10-27), model: default (no path-derived mandate, default opus), effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: #26772 added os migrate audit-key-material without the checklist sweep; found in the #26687 os-dev report (out_of_scope_findings); triage 6448491067
    Thread-read: 6448491067
    Premise: holds on origin/main — packages/cli/src/commands/migrate/ carries audit-key-material.ts, and the item's variants (rev 7) list 19 names without it (read by the seat)
    Serial constraints cleared: none. No open PR edits areas/cli.json now that PR #26818 has merged; no other devx seat is seated


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26795,
      "status": "done",
      "branch": "claude/project-thread-up7ep4",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26870",
      "session": "session_01JQwxbWV1vrjPgSUEHcJzs4",
      "premise_still_valid": true,
      "summary": "Choice: the typed variants list is DROPPED, no registry cross-check gate added. The #26431 rule says a set with an authority keeps the authority and loses the retyped copy, with no new gate or ledger; a gate holding a list equal to the directory would be that transcription pin again, and os migrate --help already gives a runner every name plus its description from the build under test. cli.migrate-plan-apply-json revision 7 to 8 in docs/qa/platform-checklist/areas/cli.json: variants removed; a new last step derives the sweep set from os migrate --help COMMANDS (oclif pattern strategy over packages/cli/src/commands/migrate/, index.ts being the bare command), runs each dry run with --json plus only what that subcommand's own --help USAGE marks required (unmapped-columns takes --object), keeps the duplicates exception explicit (always JSON, no --json flag, run bare, oclif exit 2 is not a 4873 violation) and names audit-key-material with the audit-mail-bodies flags; acceptance[2] verify and evidence name the derived list, clause sentence unchanged; source note drops the 19; history row 8 cites #26772 and #26795. Every Done-when line met, so the PR says Fixes. Card assignee untouched.",
      "pm_hypothesis": "Half right. index.ts does NOT register subcommands: it is the bare os migrate command (extends MigratePlan). The registry is oclif's pattern strategy over dist/commands/**/*.js (packages/cli/package.json oclif.commands); every non-test file in the directory is a command, none hidden. audit-key-material.ts takes the same flags as audit-mail-bodies.ts (--database-url, --apply, -y/--yes, --force, --json): confirmed.",
      "tests": "No product or test code changed. CLI built at the branch (OS_SKIP_DTS=1 turbo build --filter=@objectstack/cli..., 61 tasks, exit 0): node packages/cli/bin/run.js migrate --help exit 0, 20 subcommands under COMMANDS including migrate audit-key-material, equal to the 20 non-test non-index files. USAGE read for the 15 subcommands the earlier steps do not run: only unmapped-columns has a required flag (--object), only duplicates lacks --json. Area file parsed before and after the text surgery: only this item's revision, steps, acceptance, variants, source and history differ. The sweep itself was not driven on a scratch DB (that is a checklist run, not this card).",
      "gates": "At head e0123bfc (rebased on origin/main e9e344a9): dispatch-gates --commands derived 16; all 16 exit 0; --ran: 16 derived, 16 run, 0 NOT-MEASURED. check:doc-formula-expressions needed the formula + lint build first (container state). check-platform-checklist: OK, 16 areas, 329 items. The same 16 also exit 0 at the pre-rebase head. CI check-runs: not read at report time.",
      "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm; no test file changed",
      "mcp_calls": "0",
      "api_writes": "2: fleet-write relay pr_create (PR 26870, draft, assignee os-warren, label skip-changeset; read-back 6063 bytes sent, 6063 stored, identical) and this os-dev-report comment via post-stamped. Plus 3 git pushes (not REST); the last was a force-with-lease after rebasing my own unreviewed branch onto main before the PR existed.",
      "open_questions": [],
      "out_of_scope_findings": [],
      "deviations": "The os-dev template's branch name claude/issue-N-slug is replaced by the platform-pinned thread branch (the seat's Claim 6450769064 records it). Commit trailers are the model-free pair; the first push was refused by check:commit-card-trailers for a Refs #26795 trailer, reworded before publishing. PR body folds .github/PULL_REQUEST_TEMPLATE.md headings into the os-dev order, as in PR 26818. No approvers requested (Tier S, no governed path).",
      "body_amendments": []
    }

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26870 comment 6451544715


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #26870 merged as 1a8b7ebef2 · 2026-10-27T19:44Z

    cli.migrate-plan-apply-json no longer carries a hand-kept variants list; its sweep reads os migrate --help, so audit-key-material and any later subcommand are in scope without a ledger edit (revision 8). ACCEPT on PR #26870. The card leaves pm:dispatched.


    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:devxDomain lane — seat card indexed by label:pm:seatpriority:p2Medium: important, M3qa

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions