agentsclimarketplace

Vue best practices

Skill ngocsangyem/MeowKit/.claude/skills/vue-best-practices

Use for deep Vue 3 best-practices review, recommendations, and the full ordered authoring workflow — built-in components (Teleport, Suspense, KeepAlive, Transition, TransitionGroup), animation techniques, slots, fallthrough attrs, custom directives, async components, render functions, plugins, and the post-functionality performance pass. Complements mk:vue (the everyday Composition API quick-reference). Invoke for "review my Vue", "Vue best practices", "recommend improvements", or non-trivial feature work needing the ordered workflow.From its SKILL.md

Install
npx -y skills add ngocsangyem/MeowKit --skill vue-best-practices

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

9.1 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it

Vue 3 Best Practices

Deep, 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.

When to Use

Invoke-only — this skill does NOT auto-activate on .vue. Activate it for:

  • /mk:vue-best-practices [concern] (explicit).
  • "review my Vue code", "Vue best practices", "recommend Vue improvements".
  • A non-trivial Vue feature where the full ordered workflow earns its cost (built-in components, animations, optional features, a performance pass).

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).

Foundations Live in mk:vue

This skill does not restate the basics. For day-to-day foundations, read mk:vue:

  • ref/reactive/computed/watch, toRefs, destructuring → mk:vue ../vue/references/reactivity-performance.md
  • props / emits / defineModel / naming / basic slots → mk:vue ../vue/references/components.md
  • composable naming, default export, state scope, shared→Pinia → mk:vue ../vue/references/composables.md
  • Pinia / Pinia Colada / file-based routing → mk:vue references/{state-pinia,pinia-colada*,routing-pages}.md

This skill adds the deltas and the topics mk:vue does not cover (below).

Workflow

Follow in order unless the user asks otherwise.

1. Confirm architecture (required)

  • Default stack: Vue 3 + Composition API + <script setup lang="ts">.
  • Options API or JSX only if the project explicitly uses them.
  • For a non-trivial feature, sketch a brief component map first: one-sentence responsibility per component, props/emits contract per child, feature-folder layout (components/<feature>/..., composables/use<Feature>.ts). Keep entry/root and route-view components as thin composition surfaces.

2. Apply foundation deltas (required)

Read these for the guidance beyond mk:vue basics:

  • Reactivity deltas (shallowRef/shallowReactive, computed purity, class/style computed, watch immediate, async cleanup) → reactivity-advanced
  • Data-flow deltas (provide/inject + InjectionKey, imperative refs via defineExpose + useTemplateRef, event re-emit) → component-data-flow-advanced
  • SFC structure, scoped-style performance, template safety (v-html, v-for+v-if, v-if vs v-show) → sfc-structure-and-templates
  • Composable organization (compose from primitives, options object, readonly + actions, utilities-not-composables, organize by feature) → composables-organization

3. Optional features — load only when the requirement exists

Do 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.

4. Performance pass — after behavior is correct

Optimize only once core behavior is implemented and verified. Measure with Vue DevTools before changing anything.

5. Final self-check

  • Core behavior matches requirements; all relevant deltas applied.
  • Reactivity is minimal and predictable; derive with computed.
  • SFC structure + template safety rules followed.
  • Components are focused; entry/root/view components stay thin composition surfaces.
  • Data-flow contracts are explicit and typed.
  • Composables used where reuse/complexity justifies them.
  • Optional features used only when required.
  • Performance changes applied only after functionality was complete.

Review & Recommendations Mode

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
  • Ground each finding in a specific best-practice from this skill or a mk:vue reference.
  • Defer foundation-basics findings to mk:vue; defer non-Vue structural/security findings to mk:review / the project's security rules (do not duplicate them here).
  • End with a one-line verdict: ready / changes recommended / changes required.

Gotchas

  • (grow this from observed failures)
  • Reactivity foundation belongs to mk:vue. Follow the repository convention first, then mk:vue's ref() guidance for primitives unless the advanced reference documents a task-specific reason to use shallowRef().
  • Cross-skill gotchas (destructuring reactive(), storeToRefs, defineExpose, :slotted(), watchEffect cleanup, SSR store hydration, Pinia Colada keys) live in mk:vue — read them there rather than duplicating.

Anti-Patterns

Gap-topic anti-patterns only (foundation anti-patterns live in mk:vue):

Don'tDo Instead
Reach for a render function when a template worksKeep templates; render functions only when templates cannot express it
Add <Transition> for non-enter/leave motionUse a class-based or state-driven animation technique
Optimize (v-memo/virtualization) before behavior is correctPerformance pass last; measure with DevTools first
Hoist a ref to module scope for shared statePinia (global) or Pinia Colada (data) — see mk:vue
Install app-wide behavior ad hoc in componentsA plugin when behavior is genuinely app-wide

Provenance

Ported from an upstream Vue best-practices skill — see SOURCE.md for the upstream path and pinned commit (for future re-syncs).

What ships with it: 22 files

86.5 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.