|
| 1 | +--- |
| 2 | +name: use-mastra |
| 3 | +description: 'Answer questions about the Mastra AI framework and help build agents, workflows, tools, memory, and RAG features. Use when developers: (1) ask about Mastra APIs like `Mastra`, `Agent`, `createWorkflow`, `createTool`, `createStep`, `Memory`, or run the `mastra` CLI; (2) wire up agents, workflows, or step-based orchestration; (3) integrate `@mastra/*` packages (`@mastra/core`, `@mastra/memory`, `@mastra/rag`, `@mastra/evals`, `@mastra/deployer`, `@mastra/server`, `@mastra/pg`, `@mastra/libsql`, `@mastra/mcp`); (4) debug TypeScript errors from Mastra APIs or model-router strings. Triggers on: "Mastra", "@mastra/core", "mastra agent", "mastra workflow", "createWorkflow", "createTool", "createStep", "mastra memory", "semantic recall", "mastra rag", "mastra deployer", "mastra evals", "mastra studio", "provider/model".' |
| 4 | +--- |
| 5 | + |
| 6 | +## Prerequisites |
| 7 | + |
| 8 | +Before writing Mastra code, verify the relevant package is installed in the current project: |
| 9 | + |
| 10 | +```bash |
| 11 | +ls node_modules/mastra 2>/dev/null # CLI + project scaffolding + platform API |
| 12 | +ls node_modules/@mastra/ 2>/dev/null # scoped packages (core, memory, rag, ...) |
| 13 | +``` |
| 14 | + |
| 15 | +If the needed package is missing, install **only** what the task requires using the project's package manager (detect via lockfile): |
| 16 | + |
| 17 | +```bash |
| 18 | +# root CLI / platform (only when invoking `mastra dev`, `mastra build`, etc.) |
| 19 | +pnpm add mastra # or: bun add mastra / npm i mastra / yarn add mastra |
| 20 | + |
| 21 | +# scoped packages — add what you actually use |
| 22 | +pnpm add @mastra/core @mastra/memory @mastra/rag |
| 23 | +``` |
| 24 | + |
| 25 | +Do not install packages you do not yet need. Mastra is opinionated about module format — confirm TypeScript target before writing: `target: ES2022`, `module: ES2022`, `moduleResolution: bundler`. |
| 26 | + |
| 27 | +## Critical: Do Not Trust Internal Knowledge |
| 28 | + |
| 29 | +Mastra evolves rapidly. Constructor signatures, exported symbol names, workflow step APIs, memory option shapes, and model-router providers shift between minor versions. Training-data recollection of Mastra APIs is likely wrong. |
| 30 | + |
| 31 | +When working with Mastra: |
| 32 | + |
| 33 | +1. Resolve the installed version first (`node_modules/<pkg>/package.json`). |
| 34 | +2. Read the SKILL.md shipped *inside that version* at `node_modules/<pkg>/dist/docs/SKILL.md` before coding. |
| 35 | +3. Verify every constructor, export, and option against `dist/docs/references/*.md` or `dist/docs/assets/SOURCE_MAP.json`. |
| 36 | +4. Run typecheck after every change — Mastra APIs are type-heavy and silent drift is rare. |
| 37 | +5. Never invent provider strings, plugin names, or adapter imports. Enumerate first. |
| 38 | +6. Surface deprecations to the user instead of silently picking one pattern. |
| 39 | + |
| 40 | +If documentation cannot be found locally or remotely to back an answer, say so explicitly. |
| 41 | + |
| 42 | +## Finding Documentation |
| 43 | + |
| 44 | +### Bundled docs in `node_modules/` |
| 45 | + |
| 46 | +Every Mastra package that ships documentation places it at `<pkg>/dist/docs/`: |
| 47 | + |
| 48 | +``` |
| 49 | +node_modules/<pkg>/dist/docs/ |
| 50 | +├── SKILL.md # package overview + links |
| 51 | +├── assets/SOURCE_MAP.json # export → source file mapping |
| 52 | +└── references/ # one .md per topic or exported symbol |
| 53 | + ├── docs-<topic>.md # concept guides |
| 54 | + └── reference-<symbol>.md # API reference |
| 55 | +``` |
| 56 | + |
| 57 | +Packages confirmed to ship `dist/docs/` (v1.6.2 / core 1.27.0 as of 2026-04): |
| 58 | + |
| 59 | +| Package | What it covers | |
| 60 | +| --- | --- | |
| 61 | +| `mastra` | CLI commands (`mastra dev`, `mastra build`), platform REST API | |
| 62 | +| `@mastra/core` | `Mastra`, `Agent`, `createTool`, `createWorkflow`, `createStep`, processors, guardrails, browser/editor | |
| 63 | +| `@mastra/memory` | `Memory`, threads, working memory, semantic recall, storage | |
| 64 | +| `@mastra/rag` | `MDocument`, chunking, embeddings, retrieval, GraphRAG, rerankers | |
| 65 | +| `@mastra/evals` | Scorers, datasets, experiments, CI harness | |
| 66 | +| `@mastra/deployer`, `@mastra/server` | Build / deploy / serve Mastra projects | |
| 67 | +| `@mastra/pg`, `@mastra/libsql`, `@mastra/mcp` | Storage adapters, MCP server integration | |
| 68 | + |
| 69 | +See [`references/packages.md`](references/packages.md) for purpose + SKILL path per package, plus which packages currently lack bundled docs (remote-only). |
| 70 | + |
| 71 | +### Canonical lookup flow |
| 72 | + |
| 73 | +```bash |
| 74 | +# 1. Start from the overview shipped with the installed version |
| 75 | +cat node_modules/@mastra/core/dist/docs/SKILL.md |
| 76 | + |
| 77 | +# 2. Grep references/ for the topic or symbol |
| 78 | +grep -rli "Agent" node_modules/@mastra/core/dist/docs/references/ |
| 79 | +grep -rli "createWorkflow" node_modules/@mastra/core/dist/docs/references/ |
| 80 | + |
| 81 | +# 3. Resolve an exported symbol back to its type definition |
| 82 | +cat node_modules/@mastra/core/dist/docs/assets/SOURCE_MAP.json | jq '."Agent"' |
| 83 | +cat node_modules/@mastra/core/dist/<path-from-source-map> |
| 84 | +``` |
| 85 | + |
| 86 | +### Remote fallbacks |
| 87 | + |
| 88 | +If the package is not installed, or a doc is missing from `dist/docs/`: |
| 89 | + |
| 90 | +1. `https://mastra.ai/llms.txt` — index of current docs (fetch and grep). |
| 91 | +2. `https://mastra.ai/docs/` — full documentation site. |
| 92 | +3. The `@mastra/mcp-docs-server` MCP server (configured by this plugin in `plugin.json`) — returns the same docs over MCP tool calls. |
| 93 | + |
| 94 | +Remote docs track `main` and may be ahead of the installed version; always prefer bundled docs when both are available. |
| 95 | + |
| 96 | +## Mastra Package Map |
| 97 | + |
| 98 | +Concise map of what each package exports and where its docs live. Full table with docs paths and verification notes: [`references/packages.md`](references/packages.md). |
| 99 | + |
| 100 | +| Need | Package | Typical import | |
| 101 | +| --- | --- | --- | |
| 102 | +| `Mastra`, `Agent`, `createTool`, `createWorkflow`, `createStep` | `@mastra/core` | `@mastra/core`, `@mastra/core/agent`, `@mastra/core/workflows`, `@mastra/core/tools` | |
| 103 | +| Threads, working memory, semantic recall | `@mastra/memory` | `@mastra/memory` | |
| 104 | +| RAG pipeline — chunk, embed, retrieve, rerank | `@mastra/rag` | `@mastra/rag` | |
| 105 | +| Scorers, datasets, experiments | `@mastra/evals` | `@mastra/evals` | |
| 106 | +| Postgres / LibSQL storage + vectors | `@mastra/pg`, `@mastra/libsql` | `@mastra/pg`, `@mastra/libsql` | |
| 107 | +| MCP server integration | `@mastra/mcp` | `@mastra/mcp` | |
| 108 | +| CLI + Studio + platform API | `mastra` | `mastra` (dev dependency for CLI; runtime for platform clients) | |
| 109 | +| Build & deploy | `@mastra/deployer`, `@mastra/server` | usually only invoked via CLI | |
| 110 | + |
| 111 | +## Building Agents & Workflows |
| 112 | + |
| 113 | +Concise recipes — each one ends with "verify against `dist/docs/` before shipping": [`references/agents-and-workflows.md`](references/agents-and-workflows.md). |
| 114 | + |
| 115 | +Rules of thumb: |
| 116 | + |
| 117 | +- **Agent vs Workflow.** Use `Agent` for open-ended tasks (research, chat, triage). Use `createWorkflow` + `createStep` for deterministic pipelines with a fixed shape and explicit state. |
| 118 | +- **Register everything on `Mastra`.** Tools, agents, workflows, storage, and logger all hang off a single `Mastra` instance. Passing tools to an agent without also registering them on `Mastra` is a common bug. |
| 119 | +- **Model strings.** Always `provider/model` (e.g. `openai/gpt-5.4`, `anthropic/claude-sonnet-4-5`). Never bare model IDs. The provider-registry script shipped with the existing `mastra` skill (`plugins/mastra/.agents/skills/mastra/scripts/provider-registry.mjs`) enumerates valid provider keys and current model names — run it before generating code that references a model. |
| 120 | +- **`.commit()`** is required on workflows. Forgetting it is the #1 cause of `Cannot read property 'then' of undefined`. |
| 121 | +- **`threadId` + `resourceId`** must be stable across turns for memory to persist. |
| 122 | +- **Typecheck** after every change: `pnpm tsc --noEmit` (or `bun tsc --noEmit`, `npm run typecheck`). |
| 123 | + |
| 124 | +## When Typecheck or Runtime Fails |
| 125 | + |
| 126 | +Before searching source code, grep [`references/common-errors.md`](references/common-errors.md) for the failing symptom. It indexes the most frequent Mastra failure modes (ESM/CJS mismatch, tools registered but not called, memory without storage, semantic recall without a vector store, workflow missing `.commit()`, invalid model string, wrong `threadId`) against the canonical fix. |
| 127 | + |
| 128 | +If the symptom is not listed: |
| 129 | + |
| 130 | +```bash |
| 131 | +# resolve the error string inside installed source |
| 132 | +rg -n "error string fragment" node_modules/@mastra/core/dist |
| 133 | +rg -n "error string fragment" node_modules/@mastra/<subpkg>/dist |
| 134 | +``` |
| 135 | + |
| 136 | +## Relationship to the `mastra` skill |
| 137 | + |
| 138 | +This plugin ships a separate, richer primer at `plugins/mastra/.agents/skills/mastra/SKILL.md` (v2.0.0, sourced from `mastra-ai/skills`). That skill is a **framework primer** — concepts, doc-lookup strategy, upgrade guides, migration notes, extensive common-errors coverage. |
| 139 | + |
| 140 | +`use-mastra` is the **task-triggered workflow skill** — concise, trigger-heavy, focused on redirecting agents to version-accurate `dist/docs/` and stopping training-data hallucinations. The two are complementary; Claude Code will auto-activate whichever matches the task framing. |
| 141 | + |
| 142 | +When in doubt, read the primer first (`plugins/mastra/.agents/skills/mastra/SKILL.md`) and use this skill's references for quick per-package lookup paths and concise recipes. |
| 143 | + |
| 144 | +## References |
| 145 | + |
| 146 | +- [`references/packages.md`](references/packages.md) — every Mastra package, its purpose, and the exact `dist/docs/` path to read |
| 147 | +- [`references/agents-and-workflows.md`](references/agents-and-workflows.md) — canonical recipes: agent with tools + memory, workflow with steps, Mastra-instance registration |
| 148 | +- [`references/common-errors.md`](references/common-errors.md) — symptom → cause → fix for the most frequent Mastra failures |
0 commit comments