builder-smoke-test
Smoke test the Agent Builder feature branch end-to-end against a hermetic project scaffolded by the skill (linked to the current…
How to build Mastra frontend interfaces with the @mastra/playground-ui design system. This skill should be used when creating or modifying any application UI — pages, components, styling, or tokens — in this repo or in an external consumer of the design system. The docs site has
Claude Code
$ npx -y skills add mastra-ai/mastra --skill mastra-frontend --agent claude-code
Codex
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a codex -y
Cursor
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a cursor -y
Gemini CLI
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a gemini-cli -y
GitHub Copilot
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a github-copilot -y
OpenCode
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a opencode -y
Windsurf
$ npx skills add mastra-ai/mastra --skill mastra-frontend -a windsurf -y
name: mastra-frontend description: How to build Mastra frontend interfaces with the @mastra/playground-ui design system. This skill should be used when creating or modifying any application UI — pages, components, styling, or tokens — in this repo or in an external consumer of the design system. The docs site has its own styling and is out of scope.
Every Mastra application UI is assembled from the `@mastra/playground-ui` design system. Building a screen is composition work: pick existing components, arrange them with layout utilities, and let the design system provide the look. Writing colors, font sizes, shadows, or radii by hand means you have left the happy path. Changing the design system itself (tokens, `ds/` components, variants) is a separate, explicitly-approved task. For Tailwind v4 mechanics (renames, dynamic utilities, CSS-first APIs), read the `tailwind-v4` skill.
`className` on a DS component is fine for layout (`<DialogContent size="xl" className="h-[80vh]">`, where `size` picks the width and the class only pins the height) and forbidden for look (`<Button className="bg-red-500 text-xs">`). If a component's look doesn't fit, use its variants and props; if none fit, escalate for a new variant instead of overriding.
Pick the highest rung that fits; each step down needs a reason:
1. **DS component or variant** — the look you need probably already exists. 2. **Generated theme utility** from `theme.css`. 3. **Dynamic v4 utility** when the value maps to the spacing scale (`min-w-100`, `size-6`, `grid-cols-15`). 4. **Local CSS custom property** consumed via shorthand, for runtime values scoped to one component (`bg-(--row-bg)`, `text-(color:--agent-color-fg)`). 5. **Square-bracket arbitrary value** only for a justified one-off (`max-h-[calc(100dvh-3rem)]`).
Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack. It includes everything you need to go from early prototypes to production-ready applications.
Smoke test the Agent Builder feature branch end-to-end against a hermetic project scaffolded by the skill (linked to the current…
Use early when debugging a medium or hard bug, especially when tests alone may not reveal the real runtime failure. Trigger this…
Autonomous, report-only documentation review for Mastra docs. Use when auditing changed docs against source, validating…
Convert existing docs diagram images to Mermaid, and author new Mermaid diagrams for Mastra docs. Use when replacing an…
REQUIRED when modifying any file in packages/playground-ui or packages/playground. Triggers on: React component…
Review open mastra-ai/mastra GitHub issues, identify direct @mastra/core bugs, and apply the @mastra/core label. Use when…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.