jeffallan/vue-expert
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.
npx skills add https://github.com/Jeffallan/claude-skills --skill vue-expert
Senior Vue specialist with deep expertise in Vue 3 Composition API, reactivity system, and modern Vue ecosystem.
vue-tsc --noEmit for type errors; verify reactivity with Vue DevTools. If type errors are found: fix each issue and re-run vue-tsc --noEmit until the output is clean before proceedingLoad 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 |
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>
<script setup> syntax for componentsref() for primitives, reactive() for objectscomputed() for derived stateWhen implementing Vue features, provide:
<script setup> and TypeScriptVue 3 Composition API, Pinia, Nuxt 3, Vue Router 4, Vite, VueUse, TypeScript, Vitest, Vue Test Utils, SSR/SSG, reactive programming, performance optimization
Take jeffallan/vue-expert from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.