smithery/neversight

mastra-best-practices

Quick reference for Mastra conventions. When to use agents vs workflows, required TypeScript config, project structure, and common code patterns.

Installation

$ npx skills add smithery/neversight --skill mastra-best-practices

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/neversight · top by installs.

npx skills add smithery/neversight

Browse all from smithery/neversight

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseApache-2.0
More metadata
author
Mastra
version
1.0.0
repository
https://github.com/mastra-ai/skills

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,467 B
  • docs SUMMARY.md 174 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Mastra Best Practices

Quick reference for Mastra conventions. See mastra.ai/docs for details.


Agent vs Workflow

Use When
Agent Open-ended tasks (support, research) - reasons, decides tools, retains memory
Workflow Defined sequences (pipelines, approvals) - orchestrates specific steps in order

TypeScript Config (Required)

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ES2022",
    "moduleResolution": "bundler"
  }
}

Critical: CommonJS causes errors. Must use ES2022.


Project Structure

src/mastra/
├── tools/       # Custom tools
├── agents/      # Agent configs
├── workflows/   # Workflows
└── index.ts     # Mastra instance

Environment Variables

OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
GOOGLE_GENERATIVE_AI_API_KEY=...

Quick Reference

Basic Agent

new Agent({
  id: 'my-agent',
  name: 'My Agent',
  instructions: 'You are helpful',
  model: 'openai/gpt-4o',
  tools: { myTool }  // optional
})

Basic Workflow

createWorkflow({
  id: 'my-workflow',
  inputSchema: z.object({ input: z.string() }),
  outputSchema: z.object({ output: z.string() })
})
  .then(step1)
  .commit()

Structured Output

const response = await agent.generate('Extract: John, 30', {
  structuredOutput: {
    schema: z.object({
      name: z.string(),
      age: z.number()
    })
  }
})
console.log(response.object) // Access via .object property

Streaming

const stream = await agent.stream('Tell a story')
for await (const chunk of stream.fullStream) {
  console.log(chunk)
}

Key Conventions

  1. Use mastra.getAgent('name') / mastra.getWorkflow('name') not direct imports
  2. Always use env vars for API keys
  3. ES2022 modules required (not CommonJS)
  4. Test with Studio: npm run devhttp://localhost:4111

Resources