vue-expert
jeffallan/claude-skills
Vue 3 Composition API specialist for components, Nuxt SSR/SSG, Pinia state, and mobile apps.
What is vue-expert?
Builds Vue 3 applications using Composition API patterns, manages state with Pinia, configures Nuxt 3 for SSR/SSG, scaffolds hybrid mobile apps with Quasar/Capacitor, and optimizes Vite builds. Use when creating Vue 3 components, writing composables, setting up PWA features, or tuning build configuration.
- Builds Vue 3 components with Composition API and <script setup> syntax
- Creates and manages Pinia stores for global state management
- Configures Nuxt 3 projects with SSR/SSG and file-based routing
- Scaffolds hybrid mobile apps using Quasar and Capacitor frameworks
- Implements PWA features including service workers and offline support
- Optimizes Vite builds, sourcemaps, and TypeScript configuration
How to install vue-expert
npx skills add https://github.com/jeffallan/claude-skills --skill vue-expert- Node.js and npm/yarn installed
- Basic familiarity with Vue 3 and JavaScript/TypeScript
- Vite as the build tool (for Vue 3 projects)
How to use vue-expert
- 1.Analyze your application requirements and component hierarchy
- 2.Design the architecture including composables, stores, and component structure
- 3.Implement components using Composition API with <script setup> and TypeScript
- 4.Run vue-tsc --noEmit to validate types and fix any errors
- 5.Use Vue DevTools to verify reactivity and component state
- 6.Write tests with Vue Test Utils and Vitest, fixing failures until all pass
- 7.Optimize re-renders, computed properties, and lazy loading as needed
Use cases
- Building a multi-page Vue 3 SPA with client-side routing and Pinia state management
- Setting up a Nuxt 3 application with server-side rendering and API integration
- Creating reusable composables for common logic across components
- Scaffolding a hybrid mobile app with Quasar that runs on iOS and Android
- Configuring a PWA with service worker for offline functionality
- Frontend developers building Vue 3 applications
- Full-stack developers setting up Nuxt 3 projects
- Mobile developers creating hybrid apps with Quasar or Capacitor
- Teams implementing PWA features and offline-first architectures
- Developers optimizing build tooling and TypeScript integration
vue-expert FAQ
Use ref() for primitives (strings, numbers, booleans) and reactive() for objects. ref() is more flexible and works better with destructuring in Composition API.
Extract reusable logic into composables (functions starting with 'use'). Composables can contain reactive state, computed properties, and lifecycle hooks that multiple components can import and use.
Use component state (ref/reactive) for local UI state. Use Pinia stores for global state that needs to be shared across multiple components or persisted.
Prefer computed() for derived state that updates automatically. Use watch() only when you need side effects (API calls, DOM updates) or when computed isn't sufficient.
Return cleanup functions from composables or use lifecycle hooks like onUnmounted. Always unsubscribe from watchers, timers, and event listeners to prevent memory leaks.
Full instructions (SKILL.md)
Source of truth, from jeffallan/claude-skills.
name: vue-expert description: Builds Vue 3 components with Composition API patterns, configures Nuxt 3 SSR/SSG projects, sets up Pinia stores, scaffolds Quasar/Capacitor mobile apps, implements PWA features, and optimises Vite builds. Use when creating Vue 3 applications with Composition API, writing reusable composables, managing state with Pinia, building hybrid mobile apps with Quasar or Capacitor, configuring service workers, or tuning Vite configuration and TypeScript integration. license: MIT metadata: author: https://github.com/Jeffallan version: "1.1.0" domain: frontend triggers: Vue 3, Composition API, Nuxt, Pinia, Vue composables, reactive, ref, Vue Router, Vite Vue, Quasar, Capacitor, PWA, service worker, Fastify SSR, sourcemap, Vite config, build optimization role: specialist scope: implementation output-format: code related-skills: typescript-pro, fullstack-guardian
Vue Expert
Senior Vue specialist with deep expertise in Vue 3 Composition API, reactivity system, and modern Vue ecosystem.
Core Workflow
- Analyze requirements - Identify component hierarchy, state needs, routing
- Design architecture - Plan composables, stores, component structure
- Implement - Build components with Composition API and proper reactivity
- Validate - Run
vue-tsc --noEmitfor type errors; verify reactivity with Vue DevTools. If type errors are found: fix each issue and re-runvue-tsc --noEmituntil the output is clean before proceeding - Optimize - Minimize re-renders, optimize computed properties, lazy load
- Test - Write component tests with Vue Test Utils and Vitest. If tests fail: inspect failure output, identify whether the root cause is a component bug or an incorrect test assertion, fix accordingly, and re-run until all tests pass
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Composition API | references/composition-api.md | ref, reactive, computed, watch, lifecycle |
| Components | references/components.md | Props, emits, slots, provide/inject |
| State Management | references/state-management.md | Pinia stores, actions, getters |
| Nuxt 3 | references/nuxt.md | SSR, file-based routing, useFetch, Fastify, hydration |
| TypeScript | references/typescript.md | Typing props, generic components, type safety |
| Mobile & Hybrid | references/mobile-hybrid.md | Quasar, Capacitor, PWA, service worker, mobile |
| Build Tooling | references/build-tooling.md | Vite config, sourcemaps, optimization, bundling |
Quick Example
Minimal component demonstrating preferred patterns:
<script setup lang="ts">
import { ref, computed } from 'vue'
const props = defineProps<{ initialCount?: number }>()
const count = ref(props.initialCount ?? 0)
const doubled = computed(() => count.value * 2)
function increment() {
count.value++
}
</script>
<template>
<button @click="increment">Count: {{ count }} (doubled: {{ doubled }})</button>
</template>
Constraints
MUST DO
- Use Composition API (NOT Options API)
- Use
<script setup>syntax for components - Use type-safe props with TypeScript
- Use
ref()for primitives,reactive()for objects - Use
computed()for derived state - Use proper lifecycle hooks (onMounted, onUnmounted, etc.)
- Implement proper cleanup in composables
- Use Pinia for global state management
MUST NOT DO
- Use Options API (data, methods, computed as object)
- Mix Composition API with Options API
- Mutate props directly
- Create reactive objects unnecessarily
- Use watch when computed is sufficient
- Forget to cleanup watchers and effects
- Access DOM before onMounted
- Use Vuex (deprecated in favor of Pinia)
Output Templates
When implementing Vue features, provide:
- Component file with
<script setup>and TypeScript - Composable if reusable logic exists
- Pinia store if global state needed
- Brief explanation of reactivity decisions
Knowledge Reference
Vue 3 Composition API, Pinia, Nuxt 3, Vue Router 4, Vite, VueUse, TypeScript, Vitest, Vue Test Utils, SSR/SSG, reactive programming, performance optimization
Related skills
More from jeffallan/claude-skills and the wider catalog.

vue-expert-js
Build Vue 3 apps in JavaScript with JSDoc typing—no TypeScript required.

websocket-engineer
Build real-time bidirectional communication systems with WebSockets and Socket.IO, including clustering and presence tracking.

wordpress-pro
Expert WordPress theme, plugin, and Gutenberg development with security hardening and performance optimization.

angular-architect
Generates Angular 17+ standalone components, NgRx state management, RxJS patterns, and optimized routing for enterprise applications.

backtesting-trading-strategies
Backtest crypto and traditional trading strategies with performance metrics, equity curves, and parameter optimization.

mindmap-generator
|