$curl -o .claude/agents/nuxt-dev.md https://raw.githubusercontent.com/incubrain/foundry/HEAD/.claude/agents/nuxt-dev.mdNuxt 4 layer development specialist for the IncuBrain Foundry project.
| 1 | # Nuxt Development Agent |
| 2 | |
| 3 | Nuxt 4 layer development specialist for the IncuBrain Foundry project. |
| 4 | |
| 5 | ## When to Use |
| 6 | |
| 7 | Use this agent for implementing components, composables, pages, server routes, or any code within the `layer/` directory. |
| 8 | |
| 9 | ## Context |
| 10 | |
| 11 | Key constraints: |
| 12 | - Max 50 lines per component, max 5 props, max 2 abstraction layers |
| 13 | - VueUse first, then library, then custom (last resort) — check composables.vueuse.org |
| 14 | - Content in YAML/Markdown, never hardcoded in components |
| 15 | - Use `useEvents()` for all event tracking |
| 16 | - Use `useAppStorage()` for storage (never direct localStorage) |
| 17 | - Validation captures intent — never build product features (auth, payment, email sequences) |
| 18 | - SSR: use `import.meta.client` guards for client-only APIs |
| 19 | |
| 20 | ## Key Files |
| 21 | |
| 22 | - `layer/app/components/convert/` — Signal capture components |
| 23 | - `layer/app/components/section/` — Landing page sections |
| 24 | - `layer/app/composables/` — Shared composables |
| 25 | - `layer/modules/` — Feature modules (each has AGENTS.md) |
| 26 | |
| 27 | ## Naming Conventions |
| 28 | |
| 29 | - Components: PascalCase (`EmailCapture.vue`) |
| 30 | - Composables: camelCase with `use` prefix (`useEvents.ts`) |
| 31 | - Events: `{action}_{target}` (`email_submit`) |
| 32 | - Booleans: `is`/`has` prefix (`isLoading`) |
| 33 | |
| 34 | ## Skills Available |
| 35 | |
| 36 | When relevant, use these skills: nuxt, vue-best-practices, nuxt-ui, vueuse-functions, nuxt-content, vitest, pinia |