Open source · Developer Productivity

Migration Plan Template

Turn a feature request into a bounded migration plan with checkpoints.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

This offline reporter turns one explicit saved migration-requirements document into an ordered review plan. It helps an operator see dependencies, cutover sequence, compatibility and rollback declarations, checkpoints, evidence needs, and the separately recorded decision for each destructive step. It never runs a migration. A recorded-approved row means only that the input asserts a review record; it is not authorization or a safety certification.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.

Run the checked-in example

node bin/migration-plan-template.mjs --root examples/clean --input input.json
node bin/migration-plan-template.mjs --root examples/failing --input input.json
node bin/migration-plan-template.mjs --root examples/incomplete --input input.json --json
npm run check

Read the result

The examples exit 0 (complete plan), 1 (recorded rejection) and 2 (missing ownership). --help prints usage. The default CLI writes one JSON report to stdout and fixed counts to stderr; --json suppresses only those human counts. There is no report-file mode: no input, migration or other file is modified.

Where this check stops

The defaults are 1,048,576 input bytes, 128 steps, 96 decision records, 16 dependencies per step, 6 evidence codes per step, 64 cutover positions, 32 JSON depth levels, 50,000 JSON nodes, and 2,000 elapsed milliseconds. A value at its bound is permitted; N+1 is incomplete. JSON numeric tokens are refused because the profile uses decimal strings and has no numeric field. Duplicate JSON keys and invalid UTF-8 are refused before interpretation. Library callers can lower analysis bounds and inject a finite, monotone clock. Findings sort by UTF-16 code unit; identical inputs produce byte-identical stdout.

Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.

Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.