From godmode
Guides Vue.js projects using Composition API, Pinia, Vue Router, Nuxt SSR/SSG, Vite optimization, and testing. Assesses setup and recommends patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/godmode:vueThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- `/godmode:vue`, "Vue app", "Vue component"
/godmode:vue, "Vue app", "Vue component"cat package.json 2>/dev/null \
| grep -E '"vue"|"nuxt"|"@vue/"'
cat node_modules/vue/package.json 2>/dev/null \
| grep '"version"'
Vue version: <2.x / 3.x>
Build tool: Vite | Webpack | Nuxt
API style: Composition | Options | Mixed
State: Pinia | Vuex | none
Router: Vue Router | file-based (Nuxt)
CSS: Tailwind | UnoCSS | SCSS | scoped
TypeScript: yes | no
Meta-framework: Nuxt 3 | none
IF starting fresh: "Need SSR? Use Nuxt."
| Factor | Composition API | Options API |
|-------------|-----------------|-------------|
| Vue version | Vue 3 (native) | Vue 2 & 3 |
| TypeScript | Excellent | Requires decorators|
| Logic reuse | Composables | Mixins (fragile)|
| Organization| By feature | By option type|
| Bundle | Tree-shakeable | Full runtime |
| Complex comp| Scales well | Gets unwieldy|
IF new Vue 3 project: Composition API + <script setup>
IF existing Vue 2: keep Options unless migrating
IF mixed codebase: plan migration, don't stay mixed
WHEN team is new to Vue: Options first, then migrate
<script setup lang="ts">
import { ref, computed, onMounted } from 'vue'
import type { User } from '@/types'
const props = defineProps<{ userId: string }>()
const emit = defineEmits<{ save: [user: User] }>()
</script>
Composable rules:
use prefix: useAuth, useCart| Store | Purpose | Persistence |
|--------------|---------------|-------------|
| useAuthStore | Authentication| localStorage |
| useUserStore | User profile | Session only |
| useCartStore | Shopping cart | localStorage |
Rules:
| Path | Component | Guard |
|---------------|-----------|-------------|
| / | Home.vue | none |
| /dashboard | Dashboard | auth-required|
| /admin/* | Admin | admin-only |
| /:pathMatch(*)| NotFound | none |
Rules:
| Route | Strategy | Reason |
|---------------|---------|---------------|
| / | SSG | Static, fast |
| /blog/:slug | ISR 60s | Content, SEO |
| /dashboard | SPA | Auth-gated |
| /products/:id | SSR | Dynamic, SEO |
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
'/blog/**': { isr: 60 },
'/dashboard/**': { ssr: false },
}
})
Rules:
# Run unit/component tests
npx vitest run
# Run e2e tests
npx playwright test
# Type check
npx vue-tsc --noEmit
Coverage target: >80% statements, >70% branches.
| Check | Status |
|-------------------------------|--------|
| API style consistent | PASS |
| <script setup> used | PASS |
| TypeScript strict | PASS |
| Composables use* convention | PASS |
| Pinia setup syntax | PASS |
| Routes lazy-loaded | PASS |
| Props typed (defineProps<T>) | PASS |
| Emits typed (defineEmits<T>) | PASS |
| No v-html with user input | PASS |
| Every v-for has :key | PASS |
Log to .godmode/vue-results.tsv:
timestamp\taction\tcomponents\tstores\tcomposables\tstatus
Print: Vue: {action}. Components: {N}. Stores: {N}. vue-tsc: {status}. Status: {DONE|PARTIAL}.
KEEP if: vue-tsc passes AND tests pass
AND audit shows no regressions
DISCARD if: type errors OR test failures
OR bundle exceeds budget. Revert immediately.
STOP when:
- All audit checks PASS
- vue-tsc --noEmit exits 0
- vitest run exits 0
- No v-for without :key, no v-html, no mixins
npx claudepluginhub arbazkhan971/godmodeGuides Vue.js 3 Composition API patterns, component architecture, reactivity, Pinia state management, Vue Router, and Nuxt SSR. Activates for Vue, Nuxt, Vite, or Pinia projects.
Delivers Vue 3 best practices for Composition API script setup, composables, ref/reactive patterns, Pinia state management, and Nuxt apps. Activates on .vue files and Vue triggers.
Provides Vue 3 expertise on Composition API, Pinia stores, Nuxt 3, Vue Router, custom directives, provide/inject, transitions, and Volar config. Use for building components, state design, routing, and reactivity debugging.