← ClaudeAtlas

migrate-to-meteor-3listed

Use when migrating a Meteor 2.x application to Meteor 3.x. Triggers on callAsync, *Async Mongo, removed Fibers, implicit-global ReferenceError, lost Blaze reactivity, a publish function returning a Promise, a scheduler dropping a Promise, a read API receiving update modifiers, async allow/deny, an Iron Router controller not running, "Method stub took too long", Atmosphere resolution, Express 5 WebApp handlers, lost async context, rawCollection callbacks, meteor/* TypeScript types, useTracker, and useSubscribe. Use this skill when the user asks about upgrading Meteor, async caller propagation, iterators with await, zodern:types, or replacing and forking packages.
meteor/agent-skills · ★ 7 · API & Backend · score 74
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