Source attribution. This page reflects
samples/migration-zombie/README.md in the usezombie repo. The zombie is currently README-only — it is a design reference, not yet an install target. Follow zombiectl install migration-zombie progress in the repo.What it does
- Loads a migration playbook (built-in or user-provided).
- Explores the repo, enumerates every file that needs changing.
- Plans the migration in dependency order.
- Makes changes, runs the test suite after each step, rolls back if tests break.
- Iterates until done or the step budget is exhausted.
- Opens a PR with a clean commit history — one commit per migration step.
Built-in playbooks
| Playbook | What it does |
|---|---|
node-major-bump | Node 18→20, 20→22. Handles common breakage. |
cjs-to-esm | CommonJS to ESM migration. |
jest-to-vitest | Testing framework swap. |
express-to-hono | HTTP framework port. |
mongoose-to-drizzle | ORM swap, schema-preserving. |
cra-to-vite | Create React App to Vite. |
Why not just Devin
Devin is a generalist. Migration Zombie is narrow and structured:- Playbook-driven — step-by-step, each step individually verifiable.
- Runs to completion or stops cleanly — no “mostly done” PRs.
- Flat pricing ($29 / migration), not per-token.
- Can run on your own runner — the code stays on your box.
Example run
Tools and policy
Authored as oneSKILL.md + one TRIGGER.md. The tools the zombie invokes — git, shell, github — are named in TRIGGER.md. Policy lives as prose inside SKILL.md: “clone into a sandbox; make one commit per migration step; run the test suite after every step and roll back on failure; never force-push; open a draft PR, never merge it.”
Credential: a GitHub token with repo scope. Worker placement is cloud with at least 2 GiB RAM.
See samples/migration-zombie/README.md in the repo for the full manifest.