migrate-to-meteor-3listed
Install: claude install-skill meteor/agent-skills
# Migrate a Meteor 2.x application to Meteor 3.x
Meteor 3 removed Fibers. Server-side Mongo APIs are async. The module system
enforces strict mode. Client reactivity inside async code needs care.
Atmosphere packages often need forking or replacement. Approach the migration
in phases. Do not flip the framework version flag first.
## Recommended strategy
1. Update the project to the latest 2.x release.
2. Run the app with `WARN_WHEN_USING_OLD_API=true meteor run`. The console
logs every sync-API call that needs an async sibling, giving you a
to-do list before the framework flip.
3. Migrate server-side sync Mongo calls to `*Async` siblings while still
on 2.x. Trace each changed function through every server-side caller:
await where the caller consumes the value, forward Promises deliberately,
and restructure sync-only boundaries. Stop only at an async-capable
framework boundary. See `references/async-rewrites.md` and
`references/call-vs-callAsync.md`. A community jscodeshift codemod automates
the easy cases, but it misses non-standard collection imports (for example,
`meteor/<publisher>:collections`). Review the diff by hand, then audit
callback Promise ownership and collection argument shapes.
4. Audit Atmosphere packages. Find replacements or fork outdated ones;
pin `api.versionsFrom(['2.x', '3.0'])`. See
`references/package-triage.md`. Save `.meteor/versions` and npm lockfile
checkpoints so package-major changes remain distinguishable