Skip to content
Back to skills

Vue Nuxt

ASecurity

Use when creating or modifying Vue/TypeScript files under src/frontend/ in a Nuxt 3 app — pages, components, composables, Pinia stores, and Nitro server routes. Triggers on any .vue or .ts change under src/frontend/. Covers file-based routing, auto-imports, SSR-safe data fetching, and composable conventions. Generic frontend principles live in the core frontend-fundamentals skill.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 4, 2026
developmenttypescriptshellreactvuetestingapifrontend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add kouroshez/coding-os --skill vue-nuxt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vue Nuxt?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vue Nuxt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kouroshez-vue-nuxt/badge)](https://www.skillsdirectory.com/skills/kouroshez-vue-nuxt)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vue-nuxt
tier: stack
domain: [frontend]
description: Use when creating or modifying Vue/TypeScript files under src/frontend/ in a Nuxt 3 app — pages, components, composables, Pinia stores, and Nitro server routes. Triggers on any .vue or .ts change under src/frontend/. Covers file-based routing, auto-imports, SSR-safe data fetching, and composable conventions. Generic frontend principles live in the core frontend-fundamentals skill.
globs: "src/frontend/**/*.{vue,ts}"
depends_on:
  - clean-code
  - frontend-fundamentals
  - state-management
last_reviewed: "2026-06-11"
---

REQUIRED BACKGROUND: You MUST also follow the core `frontend-fundamentals` and `clean-code` skills. This skill adds Nuxt-3-specific conventions on top.

# vue-nuxt

## Routing & layout

- File-based routing only — a page is a file under `pages/`; never hand-wire
  vue-router. Dynamic segments: `pages/users/[id].vue`.
- `app.vue` stays a shell (`<NuxtLayout><NuxtPage/></NuxtLayout>`); layouts
  live in `layouts/`.

## Auto-imports (use them, don't fight them)

Components (`components/`), composables (`composables/`) and Vue/Nuxt APIs
auto-import. NO manual `import { ref } from 'vue'` — the linter treats a
redundant import as noise. Composables are named `useThing()` and live one
per file.

## Data fetching (SSR-safe)

- `useFetch`/`useAsyncData` in pages and components — never bare `$fetch` in
  setup (double-fetches on hydration).
- Bare `$fetch` is correct inside event handlers and server routes.
- Server-only secrets stay in `server/` — anything imported by a page ships
  to the client.

## State

Component-local `ref`/`computed` first; cross-page state in Pinia stores
(`stores/`, `useXStore` naming) per the state-management skill hierarchy —
no global reactive bags.

## Server routes

`server/api/<name>.<method>.ts` exporting `defineEventHandler`. Validate
input fail-closed; error responses use the shared problem shape
(`docs/api-contracts/error-format.md`) via `createError`.

## Testing

- Composables: unit tests, pure functions extracted where possible.
- Components: @vue/test-utils with minimal mounting; assert behavior, not
  markup details.
- Server routes: direct handler invocation with a mocked event.

Files in this skill

  • SKILL.md2.2 KB
  • references/anatomy.md2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.