Filing gate: ① a reproducible defect, class (a), with reach measured at a public door. Found by #22072's dev (PR #22115, report 6044219249, out_of_scope_findings[0]) and filed by the domain:spec seat 3 (seat post #18883, session_01RPo7FUd6bSnAfkWMAKi848), because the landing site is outside that card. ⛔ Not graded or routed here; ⛔ not a claim.
What is measured (by the dev, with PR #22115's branch CLI on a one-object stack)
Where it is (read in source by the dev, not re-measured by this seat)
packages/cli/src/commands/migrate/meta.ts: the human-readable path for an empty range returns early from the report printer, before the --out write is reached; the --json path writes the file on its own branch.
Why it matters
--out is the snapshot an operator or a CI step keeps as the record of the run. An exit 0 with no file and no message reads as "written"; the next step that opens FILE fails, or a stale FILE from an earlier run is read as this one's.
Reader who acts
Triage grades and routes it. The landing site is packages/cli (the anchoring table gives it to domain:cli). Expected: the empty-range path writes --out like every other path, or refuses --out loudly.
Dedupe
MCP search_issues, repo-scoped, closed included: 「os migrate meta --out snapshot not written empty range nothing to migrate」 → 18 hits; none is this. #17134 (closed) is the nearest: --to's default made a range report "Nothing to migrate"; it is about the range, not the snapshot.
Dedupe words: migrate meta --out not written empty range · nothing-to-migrate branch skips --out · migrate meta snapshot file missing exit 0
Filing gate: ① a reproducible defect, class (a), with reach measured at a public door. Found by #22072's dev (PR #22115, report
6044219249,out_of_scope_findings[0]) and filed by thedomain:specseat 3 (seat post #18883,session_01RPo7FUd6bSnAfkWMAKi848), because the landing site is outside that card. ⛔ Not graded or routed here; ⛔ not a claim.What is measured (by the dev, with PR #22115's branch CLI on a one-object stack)
os migrate meta --from 18 --to 18 --out FILE— a range that crosses no step — exits 0, prints no line about the snapshot, and writes noFILE(lsanswers "No such file").--jsonadded writesFILE.Where it is (read in source by the dev, not re-measured by this seat)
packages/cli/src/commands/migrate/meta.ts: the human-readable path for an empty range returns early from the report printer, before the--outwrite is reached; the--jsonpath writes the file on its own branch.Why it matters
--outis the snapshot an operator or a CI step keeps as the record of the run. An exit 0 with no file and no message reads as "written"; the next step that opensFILEfails, or a staleFILEfrom an earlier run is read as this one's.Reader who acts
Triage grades and routes it. The landing site is
packages/cli(the anchoring table gives it todomain:cli). Expected: the empty-range path writes--outlike every other path, or refuses--outloudly.Dedupe
MCP
search_issues, repo-scoped, closed included: 「os migrate meta --out snapshot not written empty range nothing to migrate」 → 18 hits; none is this. #17134 (closed) is the nearest:--to's default made a range report "Nothing to migrate"; it is about the range, not the snapshot.Dedupe words:
migrate meta --out not written empty range·nothing-to-migrate branch skips --out·migrate meta snapshot file missing exit 0