Skip to content

QA run · cli.migrate-meta-codemod (1/1) · fb82f9b1 · 2026-10-16 · 1 PASS / 0 PARTIAL / 0 FAIL / 0 BLOCKED / 0 NOT-RUN #23996

Closed

Description

@objectstack-fleet

Run record for the re-run #23950 asks for, after its six stale clauses were re-pointed. Runner: an os-dev subagent dispatched by the domain:devx seat 2 PM (session session_016PVjjuVPte5XEJvaQx1E4t). Protocol: .claude/skills/checklist-test/SKILL.md + docs/qa/platform-checklist/RUNNER.md. Executed sequentially (no subagent tool in this runner).

Environment fingerprint

  • framework: fb82f9b180bcc6af04ce8d36153fd52d2eb6845c, the tip of branch claude/issue-23950-checklist-stale-clauses at run time. Its product tree is origin/main 022c6e799; the branch adds docs/qa/platform-checklist/areas/*.json only. Built with pnpm install --frozen-lockfile && pnpm build (75/75 tasks green).
  • .objectui-sha: daeb77fc84dd824e74c95b87cdede85afdb248e7 (no console in this item).
  • command: node packages/cli/bin/run.js migrate meta … with stdin from /dev/null, run inside scratch copies of examples/app-showcase (node_modules symlinked). The checked-out app was never the subject of a run.
  • trees: app0 stock; app1 planted (the runs without --write); app2 planted (WRITE MODE) with a byte copy app2.orig; app3 planted (--write --json). The plants are four retired spellings: striped: true on the All Projects list view (17.ui__ListView__striped), currencyConfig.precision: 2 on a plain-literal currency field fee (18.data__CurrencyConfig__precision), errorHandling.retryDelayMs on a flow, and defaultValue: '10:00Z' on a time field.
  • timestamps: 2026-10-16, 16:28Z to 16:34Z.

Scope

Selector cli.migrate-meta-codemod resolves to 1 runnable item: cli.migrate-meta-codemod at revision 5, P1, surface cli. The item text was read at branch head c4bf2ba4e. After the run, step 8's parenthetical about the runtime's protocol major was corrected to 18, which the Chain: line below measures. No pin is declared (automated unset). The supporting suite pnpm --filter @objectstack/cli exec vitest run --maxWorkers=2 test/migrate-meta-write.test.ts passed 23 of 23.

Registry sizes: retired-defs 223 entries, retired-keys 268, semantic 466. The house sentence is in packages/spec/src, prescribing os migrate meta --from 16 at 122 lines and --from 17 at 114.

Per-clause verdicts

item # clause (short) verdict evidence
cli.migrate-meta-codemod 0 every planted spelling listed with its successor pass --from 16 exit 0. Applied 7 mechanical change(s): lists views[1].list.striped: striped → (removed) (view-list-passthrough-keys-removed), objects[14].fields.fee.currencyConfig.precision: precision → (removed) (currency-config-precision-removed), flows[31].errorHandling.backoffMs: retryDelayMs → backoffMs (retry-policy-converged) and objects[14].fields.remind_at.defaultValue: "10:00Z" → "10:00" (time-default-utc-suffix-dropped), plus three flow-decision-mode-inclusive-explicit edits the stock tree carries
cli.migrate-meta-codemod 1 without --write the sources are untouched pass md5 of all 112 files in app1 before and after the seven runs without --write (--from 16 twice, with --out, with --json, --from 5 twice, --from 18): identical; the only new path is the --out target outside the tree
cli.migrate-meta-codemod 2 --out snapshot migrated, verdict honest pass snapshot: striped absent, fee.currencyConfig = {currencyMode: fixed, defaultCurrency: USD}, backoffMs: 2000, remind_at default 10:00, three decisions mode: inclusive; ✓ Migrated stack is schema-valid agrees with --json schemaValid: true (7 applied)
cli.migrate-meta-codemod 3 idempotent replay; empty range answered as empty pass --from 17 over the written tree app2: no Applied block, exit 0, 389 manual change(s) require your judgment:, Chain: protocol 17 → 18 (this runtime implements protocol 18); two identical runs over it, and the two identical planted runs, each diff empty once the (Nms) elapsed stamp is normalized (the raw diff is that stamp alone); --from 18: ⚠ No migration step exists for protocol 18 → 18, so this run replayed nothing — that is not a finding that the metadata is canonical.; control: the stock tree app0 --from 17 lists 3 decision-mode edits, so it is not canonical
cli.migrate-meta-codemod 4 below-floor --from refused pass --from 5: exit 1, ✗ Cannot migrate from protocol 5: the chain's support floor is 16 (ADR-0087 D3). …; --json form: exit 1, {"error":"unsupported_from_major", …}
cli.migrate-meta-codemod 5 semantic entries surface as advisories pass 466 manual change(s) require your judgment: with why/verify text, printed apart from the Applied block; none of them was written by --write (see 7)
cli.migrate-meta-codemod 6 --json exits 0 on success pass --from 16 --json exit 0, keys absentTodos, applied, dataMigrations, duration, from, protocolVersion, schemaValid, specChanges, to, todos
cli.migrate-meta-codemod 7 --write rewrites exactly the provable edits, held to a re-run pass --help lists --write ("Rewrite the authored source files in place for each mechanical change traced to one literal in one project file, … Never writes the manual (semantic) changes.") and --all. app2 --from 16 --write exit 0: Wrote 7 of 7 mechanical change(s) into 4 file(s):, each site with file and line, then ✓ Re-ran the chain over the written sources: no mechanical change remains. diff -r against the byte copy touches only the 4 named files at the 7 named lines. Re-run without --write over the written tree: no Applied block, with the same 466 advisories byte for byte. Second --write: ℹ --write: the chain made no mechanical change here, so no file was written. app3 --write --json: exit 0, write.status written, 7 entries in write.written[] each with file and line, manual [], verification {ok: true}

Refusal path, measured on a separate tree and not scored: the same precision: 2 planted inside the stock Field.currency({ … }) call on semantic-zoo.object.ts gave Wrote 6 of 7, listing it under 1 mechanical change(s) left for you to apply by hand: with not written [helper]: the value is built by Field.currency(…), not written as a literal, and Re-ran the chain over the written sources: only the 1 change(s) left above remain. (exit 0). The item's third knownGap names this as the contract working, so the entry was re-planted as a plain literal for the scored leg above.

Derived item verdict

cli.migrate-meta-codemod r5: pass (8 of 8 clauses).

Timing: about 6 minutes of legs, on the build shared across this re-run's five records.

Checklist-accuracy findings close out on the wave anchor #23878. The one this run found, step 8's protocol-major parenthetical, was corrected inside revision 5 on #23950's branch.

Activity

  1. objectstack-fleet commented on Oct 17, 2026

    @objectstack-fleet
    ContributorAuthor

    Close-out (domain:devx seat 2): every clause PASS; nothing to extract. The re-pointed item landed with #24000 (e18b23fac5), Fixes #23950.


    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

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions