Use this skill whenever building, modifying, planning, scaffolding, testing, or debugging Meteor 3.x applications (Meteor 3.0 through 3.5+). Triggers on requests involving Meteor, Meteor.js, DDP, Minimongo, Atmosphere packages, `meteor create`, Blaze, Tracker, `Meteor.methods`, `Meteor.publish`, `Mongo.Collection`, `Meteor.callAsync`, `findOneAsync`, `insertAsync`, `updateAsync`, or any Meteor 3.x API. Also use when the user mentions Galaxy, MUP, Cordova with Meteor, or is migrating from Meteor 2.x (Fibers) to 3.x (async/await). Covers full-stack reactive architecture, collections/methods/publications, accounts, routing, security, testing, deployment, mobile, and package authoring. Provides scaffold scripts for fast, token-efficient agentic coding. Do NOT use for non-Meteor Node.js apps or Meteor 1.x/2.x projects that have not begun async migration.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Use this skill whenever building, modifying, planning, scaffolding, testing, or debugging Meteor 3.x applications (Meteor 3.0 through 3.5+). Triggers on requests involving Meteor, Meteor.js, DDP, Minimongo, Atmosphere packages, `meteor create`, Blaze, Tracker, `Meteor.methods`, `Meteor.publish`, `Mongo.Collection`, `Meteor.callAsync`, `findOneAsync`, `insertAsync`, `updateAsync`, or any Meteor 3.x API. Also use when the user mentions Galaxy, MUP, Cordova with Meteor, or is migrating from Meteor 2.x (Fibers) to 3.x (async/await). Covers full-stack reactive architecture, collections/methods/publications, accounts, routing, security, testing, deployment, mobile, and package authoring. Provides scaffold scripts for fast, token-efficient agentic coding. Do NOT use for non-Meteor Node.js apps or Meteor 1.x/2.x projects that have not begun async migration.
license
MIT
compatibility
Meteor 3.0+ (Node 22-24.15), MongoDB 6+ required for change streams
Meteor 3 is a full-stack JavaScript platform built on Node 22-24.15, Express 5, and MongoDB driver 6.x. The defining change from Meteor 2 is the removal of Fibers: all server-side APIs that were synchronous are now and return Promises. This skill targets Meteor 3.5+ and assumes async-first patterns throughout. New apps use the (Rspack + SWC) by default.
async
modern build stack
Gotchas (read these first)
Server collections are async-only.findOne, insert, update, remove, fetch, count, forEach, map, observe, observeChanges all throw on the server. Use the *Async variants: findOneAsync, insertAsync, updateAsync, removeAsync, fetchAsync, countAsync, forEachAsync, mapAsync, observeAsync, observeChangesAsync. On the client, sync methods still work for reactivity — only use *Async on the client when sharing isomorphic code.
Meteor.call → Meteor.callAsync. On the client, use await Meteor.callAsync('name', ...args) for any method with an async stub. Meteor.call still works for sync-stub methods but logs a warning otherwise. On the server, Meteor.call is gone — use Meteor.callAsync or call the function directly.
Meteor.user() is async on the server. Use await Meteor.userAsync(). On the client, Meteor.user() is still synchronous and reactive.
Meteor.wrapAsync is removed. Convert callback APIs with util.promisify or wrap in new Promise(...).
HTTP.call is deprecated. Use import { fetch } from 'meteor/fetch' (WHATWG fetch).
Email.send is removed. Use await Email.sendAsync({...}).
Assets.getText / Assets.getBinary are removed. Use await Assets.getTextAsync(path) / await Assets.getBinaryAsync(path).
Accounts.setPassword → Accounts.setPasswordAsync.Accounts.addEmail → Accounts.addEmailAsync. Many accounts methods are now async — see references/async-api-map.md.
Tracker + async gotcha. In Tracker.autorun(async fn), code after the first await loses reactivity. Wrap reactive reads in Tracker.withComputation(computation, () => ...) to restore it. The react-meteor-datauseTracker hook handles this internally.
bindEnvironment is still needed for callbacks from external libraries (Express middleware, setTimeout, etc.) to preserve Meteor context. Use Meteor.bindEnvironment(fn).
Top-level await is enabled on the server by default. Enable on client with METEOR_ENABLE_CLIENT_TOP_LEVEL_AWAIT=true (breaks client/compatibility and HMR — test carefully).
MongoDB change streams are the default reactivity mechanism in 3.5. Requires MongoDB 6+ with replica set. Falls back to oplog/polling automatically. Revert via settings: "packages": { "mongo": { "reactivity": ["oplog", "polling"] } }.
DDP session resumption changes onConnection behavior (3.5). Clients resume within disconnectGracePeriod (default 15s) without triggering onConnection again. Use DDP.onReconnect on the client and heartbeat-based presence tracking instead of onConnection counting. See references/performance.md.
Rspack is the default bundler for new apps (3.4+). New apps use the modern build stack (Rspack + SWC) by default. Existing apps enable it with meteor add rspack and "modern": true in package.json. Rspack requires entry points in meteor.mainModule and does not support nested imports. See references/build-stack.md.
This skill bundles scripts that generate consistent, idiomatic Meteor 3 code. Always prefer these scripts over hand-writing boilerplate — they produce correct async patterns, naming conventions, and file structure without burning LLM tokens on repetitive code.
When to use meteor generate vs skill scripts:
meteor generate <name> (built-in CLI): Use for basic CRUD modules. Produces idiomatic Meteor 3 async code (exported async functions + Meteor.methods wrapper). Fastest, no script dependency.
scaffold-module.sh: Use when you need --with-schema (simpl-schema), --with-tests, or a custom --path.
scaffold-method.sh / scaffold-publication.sh: Use to add individual methods/publications to existing modules.
scaffold-react-component.sh / scaffold-blaze-template.sh: Use for UI components (not covered by meteor generate).
scaffold-migration.sh / scaffold-settings.sh: Use for migrations and settings (not covered by meteor generate).
Run scripts from the project root (where .meteor/ lives).
scripts/scaffold-module.sh — Generate a complete API module
Generates a collection, methods, publications, schema, tests, and index file for a domain entity in imports/api/:
bash scripts/scaffold-settings.sh
# Creates: settings/development.json, settings/production.json with Meteor 3 defaults
scripts/check-async.sh — Scan for old sync APIs (migration helper)
bash scripts/check-async.sh
# Scans server/ and imports/ for sync collection methods, Meteor.call, etc.# Outputs a report of lines that need migration to *Async variants
Reference Files (must read before coding)
Before writing any code for a task, you MUST read the corresponding reference file. These files contain detailed API signatures, edge cases, and security patterns that are not repeated in this main skill file. Skipping them will produce incorrect or insecure code.
Validate inputs — check() or simpl-schema in every method and publication.
Use this.userId — never pass userId from the client.
Restrict publication fields — always set projection (or fields).
Check if Rspack is configured — new apps use Rspack by default; existing apps may need meteor add rspack and "modern": true in package.json.
Read the relevant reference file for detailed API signatures and edge cases.
Run meteor lint to catch issues after changes.
Test with meteor test --driver-package meteortesting:mocha.
Meteor 3.5 Highlights
Modern Build Stack: Rspack bundler integration (3.4+) + SWC transpiler (3.3+) — 4x faster builds, 8x smaller bundles. New apps use this by default. See references/build-stack.md.
MongoDB Change Streams as default reactivity (MongoDB 6+ required). Major resource savings, works on serverless/Atlas Shared tiers. See references/performance.md.
DDP Session Resumption: clients resume within disconnectGracePeriod (default 15s) after reconnect. onConnection is NOT called on resume — use DDP.onReconnect and heartbeat-based presence.
Pluggable DDP Transport: DDP_TRANSPORT=uws for lower latency, DISABLE_SOCKJS=true to drop SockJS entirely.
accounts-express: authenticated REST endpoints via Accounts.auth() middleware.
Async DDPRateLimiter rules: matchers can be async (fetch from DB to gate by role/tier).
MongoDB Collation: case-insensitive queries via { collation: { locale, strength } } on both client and server.