Skip to content

feat(cli): os migrate meta --write — the AST codemod that rewrites authored sources for the mechanical applied set (v18) #9591

Description

@os-support-ai

Commissioned by maintainer ruling on #9529 (2026-08-18, live PM chat with the triage seat, session session_01EUZUjvnLsqwHVkXkTv8TKQ; verbatim: 「其他接受你的建议」— Option 2 now, Option 1 as a v18 Feature). This card is Option 1.

Scope

Implement the in-place rewrite that the retirement prescriptions promise: an AST codemod (ts-morph is already a packages/cli dependency) over objectstack.config.ts and per-artifact authored modules (defineView / defineAgent / defineFlow shapes), covering the mechanical applied set only — the chain's semantic TODOs stay manual, exactly as #9529 records. Suggested flag shape: --write (in-place) alongside the existing --out snapshot; dry-run remains the default.

When this lands, the shared retirement sentence in packages/spec/src/shared/retired-key.ts (reworded to the honest replay-and-print statement by #9529's Option-2 half) may be restored to the automatic-rewrite claim it then honestly makes — that restoration belongs to this card's PR, in lockstep with the class-wide pin.

Scheduling

Deliberately not current-cycle work.

Restart-when: the v18 major development cycle opens (first v18 changeset-major accepted on main), or a maintainer instruction pulls it forward

Refs

#9529 (the promise-vs-tool gap and its measurement) · #9418 (the load-refusal half this builds on) · #6856 (the 2026-08-09 sentence ruling).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions