Claude-skill-registry-data mastra-skills
Use when building or working with Mastra agents - establishes best practices for agent development, tool creation, and workflow orchestration
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mastra-skills" ~/.claude/skills/majiayu000-claude-skill-registry-data-mastra-skills && rm -rf "$T"
manifest:
data/mastra-skills/SKILL.mdsource content
Mastra Skills
Core principle: Build composable, observable, and testable AI agents.
When to Use This Skill
Always use when:
- Creating new Mastra agents
- Implementing agent tools
- Setting up workflows
- Debugging agent behavior
- Integrating external APIs with agents
Don't use for:
- Non-agent-related code
- Pure frontend components without agent interaction
Documentation Quick Links
- reference.md - Official API documentation links
- examples.md - Official examples and how to use them
- Official Mastra Docs - https://mastra.ai/docs/
Development Checklist
When creating a new agent, use TodoWrite to track:
- Define clear agent purpose and capabilities
- Identify required tools and integrations
- Plan observability and logging strategy
- Design agent memory and state management
- Consider error handling and fallbacks
- Write tests for key scenarios
Essential Requirements
Every Agent Must Have
- Clear purpose and instructions - Specific, not generic
- Descriptive name - Not 'agent1' or 'myAgent'
- Appropriate model selection - Choose based on task complexity
- Explicit tool registration - No implicit assumptions
Every Tool Must Have
- Descriptive ID - Clear what it does
- Clear description - For the LLM to understand
- Zod schema validation - Type-safe inputs
- Error handling - Never let tools crash agents
- Logging - For debugging and observability
Every Workflow Must Have
- Clear trigger schema - Validated inputs
- Proper step sequencing - Sequential vs parallel
- Error handling - In each step
- Observability hooks - beforeAll/afterAll for logging
Core Patterns
Basic Agent
import { Agent } from '@mastra/core'; const agent = new Agent({ name: 'descriptive-name', instructions: 'Clear, specific instructions', model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-5', }, tools: { /* ... */ }, });
📚 More details: reference.md | https://mastra.ai/docs/agents/
Basic Tool
import { z } from 'zod'; const tool = { id: 'descriptive-id', description: 'What this tool does', inputSchema: z.object({ param: z.string().describe('Parameter description'), }), execute: async ({ context }) => { try { const result = await operation(); return { success: true, data: result }; } catch (error) { logger.error('Operation failed', { error, context }); return { success: false, error: error.message }; } }, };
📚 More examples: examples.md | https://mastra.ai/docs/tools/
Basic Workflow
import { Workflow } from '@mastra/core'; const workflow = new Workflow({ name: 'workflow-name', triggerSchema: z.object({ input: z.string() }), }); workflow .step({ id: 'step1', execute: async () => { /* ... */ } }) .then({ id: 'step2', execute: async () => { /* ... */ } }) .commit();
📚 More examples: examples.md | https://mastra.ai/docs/workflows/
Red Flags - Stop If You See
- Agent without clear purpose
- Tools without input validation
- No error handling in tools
- Missing observability/logging
- Hardcoded credentials
- No rate limiting for external APIs
- Unbounded memory growth
Common Rationalizations
| Excuse | Reality |
|---|---|
| "Agent instructions don't need to be specific" | Vague instructions → unpredictable behavior |
| "Error handling adds complexity" | Unhandled errors → crashed agents |
| "We can add observability later" | Can't debug what you can't observe |
| "Tool schemas are optional" | Invalid inputs → runtime failures |
Integration Checklist
When integrating external services, use TodoWrite to track:
- Create typed tool interface
- Add input validation with Zod
- Implement error handling
- Add logging for debugging
- Consider rate limiting
- Handle authentication securely
- Test with edge cases
- Document tool usage
Testing Requirements
// Unit test for tools describe('myTool', () => { it('should handle valid input', async () => { const result = await myTool.execute({ context: { param: 'test' }, mastra: mockMastra, }); expect(result.success).toBe(true); }); }); // Integration test for agents describe('myAgent', () => { it('should respond to queries', async () => { const response = await myAgent.generate([ { role: 'user', content: 'test query' } ]); expect(response.role).toBe('assistant'); }); });
📚 More examples: examples.md
Quick Workflow
- Need API details? → Check reference.md
- Need examples? → Check examples.md
- Building something? → Follow checklists above, use TodoWrite
- Stuck? → Check official docs at https://mastra.ai/docs/
Final Rule
Every agent must have: 1. Clear purpose and instructions 2. Type-safe tools with validation 3. Error handling and observability 4. Tests covering key scenarios
Follow these principles for reliable, maintainable Mastra agents.