mastra-skills

yuann3's avatarfrom yuann3

Use when building or working with Mastra agents - establishes best practices for agent development, tool creation, and workflow orchestration

⭐0stars🔀0forks📁View on GitHub🕐Updated Nov 28, 2025⬇️1downloads

When & Why to Use This Skill

This Claude skill provides a comprehensive framework and best practices for building, orchestrating, and scaling AI agents using the Mastra framework. It focuses on creating composable, observable, and testable agentic systems by enforcing rigorous standards for tool integration, Zod-based schema validation, and multi-step workflow design. By following these guidelines, developers can ensure their AI agents are reliable, maintainable, and production-ready.

Use Cases

  • Architecting complex AI agents: Establishing clear instructions, proper model selection, and explicit tool registration to ensure predictable and high-quality agent behavior.
  • Developing type-safe agent tools: Utilizing Zod schemas for input validation and implementing robust error handling to prevent runtime failures during external API integrations.
  • Orchestrating multi-step workflows: Designing sophisticated task sequences with clear trigger schemas and observability hooks (beforeAll/afterAll) for better process transparency.
  • Implementing agent observability and debugging: Setting up structured logging and testing patterns to monitor agent performance and quickly identify logic bottlenecks.
  • Standardizing agent development: Using standardized checklists and 'Red Flag' audits to maintain code quality and security across large-scale AI engineering projects.
namemastra-skills
descriptionUse when building or working with Mastra agents - establishes best practices for agent development, tool creation, and workflow orchestration

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

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

  1. Clear purpose and instructions - Specific, not generic
  2. Descriptive name - Not 'agent1' or 'myAgent'
  3. Appropriate model selection - Choose based on task complexity
  4. Explicit tool registration - No implicit assumptions

Every Tool Must Have

  1. Descriptive ID - Clear what it does
  2. Clear description - For the LLM to understand
  3. Zod schema validation - Type-safe inputs
  4. Error handling - Never let tools crash agents
  5. Logging - For debugging and observability

Every Workflow Must Have

  1. Clear trigger schema - Validated inputs
  2. Proper step sequencing - Sequential vs parallel
  3. Error handling - In each step
  4. 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

  1. Need API details? → Check reference.md
  2. Need examples? → Check examples.md
  3. Building something? → Follow checklists above, use TodoWrite
  4. 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.