From lt-dev
Handles ALL Nuxt 4 and Vue frontend development tasks including composables, forms (Valibot), API integration (types.gen.ts, sdk.gen.ts), authentication (Better Auth), SSR, and Playwright E2E testing. Supports monorepos (projects/app/, packages/app/). Activates when working with .vue files, nuxt.config.ts, Nuxt UI, TailwindCSS, or files in app/components/, app/composables/, app/pages/, app/interfaces/, app/layouts/. NOT for NestJS backend (use generating-nest-servers). NOT for security theory (use general-frontend-security).
How this skill is triggered — by the user, by Claude, or both
Slash command
/lt-dev:developing-lt-frontendThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Developers typically work in a **Lerna fullstack monorepo** created via `lt fullstack init`:
reference/api.mdreference/authentication.mdreference/browser-testing.mdreference/colors.mdreference/components.mdreference/composables.mdreference/e2e-testing.mdreference/forms.mdreference/modals.mdreference/nuxt.mdreference/patterns.mdreference/security.mdreference/service-health-check.mdreference/troubleshooting.mdreference/typescript.mdDevelopers typically work in a Lerna fullstack monorepo created via lt fullstack init:
project/
├── projects/
│ ├── api/ ← nest-server-starter (depends on @lenne.tech/nest-server)
│ └── app/ ← nuxt-base-starter (depends on @lenne.tech/nuxt-extensions)
├── lerna.json
└── package.json (workspaces: ["projects/*"])
Package relationships:
@lenne.tech/nest-serverprojects/app/ and any code using nuxt-base-starter or nuxt-extensionsapp/components/, app/composables/, app/pages/, app/interfaces/types.gen.ts, sdk.gen.ts)projects/app/ or packages/app/ structureNOT for: NestJS backend development (use generating-nest-servers skill instead)
ALWAYS read actual source code from node_modules/@lenne.tech/nuxt-extensions/ before guessing framework behavior. The framework ships documentation with the npm package.
File (in node_modules/@lenne.tech/nuxt-extensions/) | When to Read |
|---|---|
CLAUDE.md | Start of any frontend task — composables, components, config |
dist/runtime/composables/ | Available composables (useAuth, useApi, etc.) |
dist/runtime/components/ | Available components |
dist/runtime/utils/ | Available utilities |
dist/runtime/types/ | TypeScript type definitions |
Also read the nuxt-base-starter documentation:
README.md — Project overview, tech stack, auth setupAUTH.md — Better Auth integration detailsNever use placeholder data, TODO comments, or manual interfaces!
sdk.gen.ts from the starttypes.gen.ts (never manual interfaces for DTOs)pnpm run generate-types with API running before starting frontend workBefore starting: Ensure services are running. See reference/service-health-check.md
| User Intent | Correct Skill |
|---|---|
| "Build a Vue component" | THIS SKILL |
| "Create a Nuxt page" | THIS SKILL |
| "Style with TailwindCSS" | THIS SKILL |
| "Create a NestJS module" | generating-nest-servers |
| "Security audit of frontend" | general-frontend-security |
| "Implement with TDD" | building-stories-with-tdd |
Works closely with:
generating-nest-servers - For NestJS backend development (projects/api/)using-lt-cli - For Git operations and Fullstack initializationbuilding-stories-with-tdd - For complete TDD workflow (Backend + Frontend)/lt-dev:frontend:env-migrate - Migrate env variables to NUXT_ prefix conventionIn monorepo projects:
projects/app/ or packages/app/ → This skillprojects/api/ or packages/api/ → generating-nest-servers skillapp/ # Application code (srcDir)
├── components/ # Auto-imported components
├── composables/ # Auto-imported composables
├── interfaces/ # TypeScript interfaces
├── lib/ # Utility libraries (auth-client, etc.)
├── pages/ # File-based routing
├── layouts/ # Layout components
├── utils/ # Auto-imported utilities
└── api-client/ # Generated types & SDK
server/ # Nitro server routes
public/ # Static assets
nuxt.config.ts
| Priority | Source | Use For |
|---|---|---|
| 1. | ~/api-client/types.gen.ts | All backend DTOs (REQUIRED) |
| 2. | ~/api-client/sdk.gen.ts | All API calls (REQUIRED) |
| 3. | Nuxt UI types | Component props (auto-imported) |
| 4. | app/interfaces/*.interface.ts | Frontend-only types (UI state, forms) |
| Rule | Value |
|---|---|
| UI Labels | German (Speichern, Abbrechen) |
| Code/Comments | English |
| Styling | TailwindCSS only, no <style> |
| Colors | Semantic only (primary, error, success) |
| Types | Explicit, no implicit any |
| Backend Types | Generated only (types.gen.ts) |
| Composables | app/composables/use*.ts |
| Shared State | useState() for SSR-safe state |
| Local State | ref() / reactive() |
| Forms | Valibot (not Zod) |
| Modals | useOverlay() |
1. Backend API must be complete (API tests pass)
2. Write E2E tests BEFORE implementing frontend
3. Implement components/pages until E2E tests pass
4. Debug with Chrome DevTools MCP
Complete E2E testing guide: reference/e2e-testing.md
| Topic | File |
|---|---|
| Core Patterns | reference/patterns.md |
| Service Health Check | reference/service-health-check.md |
| Browser Testing | reference/browser-testing.md |
| TypeScript | reference/typescript.md |
| Components | reference/components.md |
| Composables | reference/composables.md |
| Forms | reference/forms.md |
| Modals | reference/modals.md |
| API | reference/api.md |
| Colors | reference/colors.md |
| Nuxt Patterns | reference/nuxt.md |
| Authentication | reference/authentication.md |
| E2E Testing | reference/e2e-testing.md |
| Troubleshooting | reference/troubleshooting.md |
| Security | reference/security.md |
sdk.gen.ts, all types from types.gen.tsuseOverlay, forms use ValibotanyuseBetterAuth(), protected routes use middleware: 'auth'v-html with user content, tokens stored securely/lt-dev:review for general scan)npx claudepluginhub lennetech/claude-code --plugin lt-devGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.