From mk
Deep Vue 3 best-practices review and ordered authoring workflow covering built-in components, animations, slots, directives, render functions, plugins, and performance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mk:vue-best-practicesWhen to use
Use when reviewing/recommending Vue 3 code against best practices, or following the full ordered workflow for a non-trivial feature (built-in components, animations, optional features, performance pass). NOT for everyday Vue authoring quick-reference (use mk:vue), generic diff/PR structural review (use mk:review), or TypeScript/React/Angular.
This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Deep, ordered Vue 3 best-practices workflow plus a review/recommendations mode. Complements
SOURCE.mdreferences/animation-class-based.mdreferences/animation-state-driven.mdreferences/async-components.mdreferences/component-data-flow-advanced.mdreferences/component-fallthrough-attrs.mdreferences/component-keep-alive.mdreferences/component-slots.mdreferences/component-suspense.mdreferences/component-teleport.mdreferences/component-transition-group.mdreferences/component-transition.mdreferences/composables-organization.mdreferences/custom-directives.mdreferences/perf-avoid-abstraction-in-lists.mdreferences/perf-updated-hook.mdreferences/perf-v-once-v-memo.mdreferences/perf-virtualize-large-lists.mdreferences/plugins.mdreferences/reactivity-advanced.mdDeep, ordered Vue 3 best-practices workflow plus a review/recommendations mode. Complements
mk:vue: mk:vue is the everyday Composition API quick-reference (auto-activates on .vue);
this skill is the opinionated workflow + best-practices reviewer you invoke deliberately.
Invoke-only — this skill does NOT auto-activate on .vue. Activate it for:
/mk:vue-best-practices [concern] (explicit).Do NOT invoke for: everyday Vue authoring quick-reference (mk:vue), generic diff/PR
structural review (mk:review), TypeScript fundamentals (mk:typescript), React
(mk:react-patterns), Angular (mk:angular), visual design (mk:frontend-design), testing
(mk:testing / mk:qa; Vue test design/review → mk:vue-testing-best-practices).
This skill does not restate the basics. For day-to-day foundations, read mk:vue:
ref/reactive/computed/watch, toRefs, destructuring → mk:vue references/reactivity-performance.mddefineModel / naming / basic slots → mk:vue references/components.mdmk:vue references/composables.mdmk:vue references/{state-pinia,pinia-colada*,routing-pages}.mdThis skill adds the deltas and the topics mk:vue does not cover (below).
Follow in order unless the user asks otherwise.
<script setup lang="ts">.components/<feature>/..., composables/use<Feature>.ts). Keep entry/root and route-view
components as thin composition surfaces.Read these for the guidance beyond mk:vue basics:
shallowRef/shallowReactive, computed purity, class/style computed,
watch immediate, async cleanup) → reactivity-advancedInjectionKey, imperative refs via defineExpose +
useTemplateRef, event re-emit) → component-data-flow-advancedv-html, v-for+v-if,
v-if vs v-show) → sfc-structure-and-templatesDo not add these by default. Read the matching reference when the need is real.
Built-in components
Teleport/Suspense authoring (when to use, API, fallback) is owned here; Teleport/Suspense test-setup (stubs,
flushPromises,attachTo,mountSuspense) →mk:vue-testing-best-practices.
Animation techniques (pick the simplest that matches the motion)
Less-common features (explicit product/technical need only)
State management is owned by mk:vue (Pinia + Pinia Colada) — route there, not here.
Optimize only once core behavior is implemented and verified. Measure with Vue DevTools before changing anything.
computed.When asked to review or recommend, walk the section-5 self-check as a rubric against the target code and emit a structured findings list — one row per finding:
[severity: high|med|low] · path:line · issue · fix
mk:vue reference.mk:vue; defer non-Vue structural/security findings to
mk:review / the project's security rules (do not duplicate them here).mk:vue. This skill follows shallowRef()
for primitives (see references/reactivity-advanced.md); mk:vue states ref() for
primitives. Both are accepted in this codebase — prefer the project's existing convention
when one is established. The reactivity-advanced reference carries the full divergence note.reactive(), storeToRefs, defineExpose, :slotted(),
watchEffect cleanup, SSR store hydration, Pinia Colada keys) live in mk:vue — read them
there rather than duplicating.Gap-topic anti-patterns only (foundation anti-patterns live in mk:vue):
| Don't | Do Instead |
|---|---|
| Reach for a render function when a template works | Keep templates; render functions only when templates cannot express it |
Add <Transition> for non-enter/leave motion | Use a class-based or state-driven animation technique |
Optimize (v-memo/virtualization) before behavior is correct | Performance pass last; measure with DevTools first |
Hoist a ref to module scope for shared state | Pinia (global) or Pinia Colada (data) — see mk:vue |
| Install app-wide behavior ad hoc in components | A plugin when behavior is genuinely app-wide |
Ported from an upstream Vue best-practices skill — see SOURCE.md for the upstream path and pinned commit (for future re-syncs).
npx claudepluginhub ngocsangyem/meowkit --plugin mkGuides Vue 3 development enforcing Composition API with <script setup>, TypeScript, reactivity, SFC structure, and component planning workflows.
Guides Vue 3 development enforcing Composition API with <script setup>, TypeScript, reactivity, SFC structure, and component planning workflows.
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.