Agent skill

Vue Expert (JavaScript)

by Jeffallan in Jeffallan/claude-skills

Builds Vue 3 apps in plain JavaScript with JSDoc typing instead of TypeScript: script setup components, composables, Pinia and Vitest, with ESLint JSDoc coverage checks.

MITAuto-check passedFrontend & Design

Install Vue Expert (JavaScript)

skills CLI
$ npx skills add Jeffallan/claude-skills --skill vue-expert-js -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Jeffallan/claude-skills vue-expert-js --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Jeffallan/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/vue-expert-js .claude/skills/vue-expert-js && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
vue-expert-js
GitHub stars
12k
Token cost
~1.6k tokens
SKILL.md length
363 words
Files
6 (incl. references)
Skills in repo
58
Repo updated
First seen
Licence
MIT

At a glance

Builds Vue 3 apps in plain JavaScript with JSDoc typing instead of TypeScript: script setup components, composables, Pinia and Vitest, with ESLint JSDoc coverage checks.

  • Works in 4 steps: Design architecture — Plan component… → Implement — Build with (no lang="ts"),… → Annotate — Add comprehensive JSDoc… → …
  • Building Vue 3 apps without TypeScript
  • SKILL.md covers Core Workflow, Reference Guide, Code Patterns and Constraints, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The agent plans component structure and composables with JSDoc annotations, builds with script setup and no lang=ts, using .mjs modules where needed, and annotates public functions with @typedef, @param, @returns and @type. It then runs ESLint with eslint-plugin-jsdoc to find missing or malformed annotations, and tests with Vitest on JavaScript files, correcting logic or annotations whenever something fails.

The skill defers to a companion vue-expert skill for shared Vue concepts such as core reactivity, props and emits, and Pinia stores. Its own reference files cover JSDoc typing, composable patterns, component architecture, state management and testing. Examples include a component with JSDoc-typed props and emits, a useCounter composable and a shared @typedef for a user object. It also suits moving a Vue 2 Options API project to the Composition API in JavaScript.

When your agent uses it

  • Building Vue 3 apps without TypeScript
  • Adding JSDoc type hints to composables and component props
  • Migrating a Vue 2 Options API project to the Composition API in JavaScript
  • Prototyping quickly without a TypeScript setup
  • Checking JSDoc coverage with ESLint

Example prompts

  • “Write a UserCard component using script setup with JSDoc-typed props and emits.”
  • “Convert this Options API form to the Composition API and keep the project in plain JavaScript.”
  • “Create a useCounter composable in a .mjs file with @param and @returns annotations.”
  • “Run ESLint with the JSDoc plugin and fix the missing annotations.”

Requirements

  • Node.js with ESLint and `eslint-plugin-jsdoc`
  • Vitest for the test step

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Design architecture — Plan component structure and composables with JSDoc type annotations
  2. Implement — Build with (no lang="ts"), .mjs` modules where needed
  3. Annotate — Add comprehensive JSDoc comments (@typedef, @param, @returns, @type) for full type coverage; then run ESLint with the JSDoc…
  4. Test — Verify with Vitest using JavaScript files; confirm JSDoc coverage on all public APIs; if tests fail, revisit the relevant…

What it can do on your machine

Read from SKILL.md and the folder at commit 1be15d8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and vue).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • synergetic.solutions
    • jeffallan.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Vue Expert (JavaScript) loads about 1.6k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 147 tokens; SKILL.md has 363 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~147
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Jeffallan/claude-skills at commit 1be15d8, republished under its MIT licence (© Jeffallan). 363 words, ~1,562 tokens.

Download SKILL.mdSave it as .claude/skills/vue-expert-js/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
vue-expert-js
description
Creates Vue 3 components, builds vanilla JS composables, configures Vite projects, and sets up routing and state management using JavaScript only — no TypeScript. Generates JSDoc-typed code with @typedef, @param, and @returns annotations for full type coverage without a TS compiler. Use when building Vue 3 applications with JavaScript only (no TypeScript), when projects require JSDoc-based type hints, when migrating from Vue 2 Options API to Composition API in JS, or when teams prefer vanilla JavaScript, .mjs modules, or need quick prototypes without TypeScript setup.
license
MIT
metadata.author
https://github.com/Jeffallan
metadata.company
https://synergetic.solutions
metadata.version
1.1.0
metadata.domain
frontend
metadata.triggers
Vue JavaScript, Vue without TypeScript, Vue JSDoc, Vue JS only, Vue vanilla JavaScript, .mjs Vue, Vue no TS
metadata.role
specialist
metadata.scope
implementation
metadata.output-format
code
metadata.related-skills
vue-expert, javascript-pro

Vue Expert (JavaScript)

Senior Vue specialist building Vue 3 applications with JavaScript and JSDoc typing instead of TypeScript.

Core Workflow

  1. Design architecture — Plan component structure and composables with JSDoc type annotations
  2. Implement — Build with <script setup> (no lang="ts"), .mjs modules where needed
  3. Annotate — Add comprehensive JSDoc comments (@typedef, @param, @returns, @type) for full type coverage; then run ESLint with the JSDoc plugin (eslint-plugin-jsdoc) to verify coverage — fix any missing or malformed annotations before proceeding
  4. Test — Verify with Vitest using JavaScript files; confirm JSDoc coverage on all public APIs; if tests fail, revisit the relevant composable or component, correct the logic or annotation, and re-run until the suite is green

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
JSDoc Typingreferences/jsdoc-typing.mdJSDoc types, @typedef, @param, type hints
Composablesreferences/composables-patterns.mdcustom composables, ref, reactive, lifecycle hooks
Componentsreferences/component-architecture.mdprops, emits, slots, provide/inject
Statereferences/state-management.mdPinia, stores, reactive state
Testingreferences/testing-patterns.mdVitest, component testing, mocking

For shared Vue concepts, defer to vue-expert:

  • ../vue-expert/references/composition-api.md - Core reactivity patterns
  • ../vue-expert/references/components.md - Props, emits, slots
  • ../vue-expert/references/state-management.md - Pinia stores

Code Patterns

Component with JSDoc-typed props and emits
vue
<script setup>
/**
 * @typedef {Object} UserCardProps
 * @property {string} name - Display name of the user
 * @property {number} age - User's age
 * @property {boolean} [isAdmin=false] - Whether the user has admin rights
 */

/** @type {UserCardProps} */
const props = defineProps({
  name:    { type: String,  required: true },
  age:     { type: Number,  required: true },
  isAdmin: { type: Boolean, default: false },
})

/**
 * @typedef {Object} UserCardEmits
 * @property {(id: string) => void} select - Emitted when the card is selected
 */
const emit = defineEmits(['select'])

/** @param {string} id */
function handleSelect(id) {
  emit('select', id)
}
</script>

<template>
  <div @click="handleSelect(props.name)">
    {{ props.name }} ({{ props.age }})
  </div>
</template>
Composable with @typedef, @param, and @returns
js
// composables/useCounter.mjs
import { ref, computed } from 'vue'

/**
 * @typedef {Object} CounterState
 * @property {import('vue').Ref<number>} count - Reactive count value
 * @property {import('vue').ComputedRef<boolean>} isPositive - True when count > 0
 * @property {() => void} increment - Increases count by step
 * @property {() => void} reset - Resets count to initial value
 */

/**
 * Composable for a simple counter with configurable step.
 * @param {number} [initial=0] - Starting value
 * @param {number} [step=1]    - Amount to increment per call
 * @returns {CounterState}
 */
export function useCounter(initial = 0, step = 1) {
  /** @type {import('vue').Ref<number>} */
  const count = ref(initial)

  const isPositive = computed(() => count.value > 0)

  function increment() {
    count.value += step
  }

  function reset() {
    count.value = initial
  }

  return { count, isPositive, increment, reset }
}
@typedef for a complex object used across files
js
// types/user.mjs

/**
 * @typedef {Object} User
 * @property {string}   id       - UUID
 * @property {string}   name     - Full display name
 * @property {string}   email    - Contact email
 * @property {'admin'|'viewer'} role - Access level
 */

// Import in other files with:
// /** @type {import('./types/user.mjs').User} */

Constraints

Show full SKILL.md (162 more words)Show less
MUST DO
  • Use Composition API with <script setup>
  • Use JSDoc comments for type documentation
  • Use .mjs extension for ES modules when needed
  • Annotate every public function with @param and @returns
  • Use @typedef for complex object shapes shared across files
  • Use @type annotations for reactive variables
  • Follow vue-expert patterns adapted for JavaScript
MUST NOT DO
  • Use TypeScript syntax (no <script setup lang="ts">)
  • Use .ts file extensions
  • Skip JSDoc types for public APIs
  • Use CommonJS require() in Vue files
  • Ignore type safety entirely
  • Mix TypeScript files with JavaScript in the same component

Output Templates

When implementing Vue features in JavaScript:

  1. Component file with <script setup> (no lang attribute) and JSDoc-typed props/emits
  2. @typedef definitions for complex prop or state shapes
  3. Composable with @param and @returns annotations
  4. Brief note on type coverage

Knowledge Reference

Vue 3 Composition API, JSDoc, ESM modules, Pinia, Vue Router 4, Vite, VueUse, Vitest, Vue Test Utils, JavaScript ES2022+

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation

© Jeffallan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in skills/vue-expert-js of Jeffallan/claude-skills.

  • SKILL.md
  • references/component-architecture.md
  • references/composables-patterns.md
  • references/jsdoc-typing.md
  • references/state-management.md
  • references/testing-patterns.md

Open the folder on GitHubat commit 1be15d8

Compare with similar skills

Vue Expert (JavaScript) next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Vue Expert (JavaScript) compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vue Expert (JavaScript) this skillJeffallan/claude-skills12k—~1.6kAutomated safety check: PassMIT
Vuetify Playgroundvuetifyjs/vuetify41k—~730Automated safety check: PassCustom licence
Tabler Bootstrap Component Rulestabler/tabler42k—~2.2kAutomated safety check: PassMIT
Cursor BYOK Frontend Guideleookun/cursor-byok3.2k—~1.9kAutomated safety check: PassMIT
UI CraftMemTensor/memmy-agent2.1k—~2.9kAutomated safety check: PassMIT
Vue Patternsaffaan-m/ECC276k1 repos~3.3kAutomated safety check: PassMIT

Similar skills

  • Vuetify Playground

    vuetifyjs/vuetify

    Maintains the Vuetify repo's local Playground.vue so contributors get a realistic reproduction and a short demo they can paste into a pull request description.

    41k GitHub stars~730 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Cursor BYOK Frontend Guide

    leookun/cursor-byok

    Sets the rules for building the Cursor BYOK desktop app's React and Tauri frontend, especially its HTTP boundary and component state architecture.

    3.2k GitHub stars~1.9k tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • UI Craft

    MemTensor/memmy-agent

    Design, build, redesign, or modify browser-visible web interfaces with product-quality composition, visual systems, interaction states, responsive behavior, accessibility, and browser visual QA.

    2.1k GitHub stars~2.9k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Vue Patterns

    affaan-m/ECC

    Vue.js 3 Composition API patterns, component architecture, reactivity best practices, Pinia state management, Vue Router navigation, and Nuxt SSR patterns.

    276k GitHub starsUsed in 1 repo~3.3k tokens
    Frontend & DesignAuto-check passed
  • Pinia

    JetBrains/skills

    Official

    Pinia official Vue state management library, type-safe and extensible.

    366 GitHub starsUsed in 9 repos~682 tokens
    Frontend & DesignAuto-check passed

More from Jeffallan/claude-skills

All 58 skills in this repo
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • CLI Developer

    Jeffallan/claude-skills

    Walks through designing, building and polishing a command-line tool: user workflow and command hierarchy, implementation in commander, click, typer or cobra, completions and cross-platform testing.

    12k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Kubernetes Specialist

    Jeffallan/claude-skills

    Creates and checks Kubernetes manifests, Helm charts, RBAC and network policies, and helps debug pod problems, with kubectl checks and rollback steps.

    12k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Laravel Specialist

    Jeffallan/claude-skills

    Builds Laravel 10+ applications with Eloquent models, Sanctum authentication, Horizon queues, API resources and Livewire components, tested with Pest or PHPUnit.

    12k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Pandas Pro

    Jeffallan/claude-skills

    Handles pandas DataFrame work: cleaning, merging, groupby aggregation, pivots, time-series resampling and memory tuning, with checks on dtypes, shapes and nulls.

    12k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Apache Spark Engineer

    Jeffallan/claude-skills

    Guides writing and tuning Apache Spark jobs: DataFrame and RDD code, Spark SQL, partitioning, caching, shuffle tuning and structured streaming.

    12k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed

Questions about Vue Expert (JavaScript)

What does Vue Expert (JavaScript) do?

Builds Vue 3 apps in plain JavaScript with JSDoc typing instead of TypeScript: script setup components, composables, Pinia and Vitest, with ESLint JSDoc coverage checks. mjs modules where needed, and annotates public functions with @typedef, @param, @returns and @type. It then runs ESLint with eslint-plugin-jsdoc to find missing or malformed annotations, and tests with Vitest on JavaScript files, correcting logic or annotations whenever something fails.

When should I use Vue Expert (JavaScript)?

Vue Expert (JavaScript) fits situations like: building Vue 3 apps without TypeScript; adding JSDoc type hints to composables and component props; migrating a Vue 2 Options API project to the Composition API in JavaScript; prototyping quickly without a TypeScript setup.

How do I install Vue Expert (JavaScript) in Claude Code?

Run `npx skills add Jeffallan/claude-skills --skill vue-expert-js -a claude-code`. Or copy the skill folder (skills/vue-expert-js in Jeffallan/claude-skills) into .claude/skills/vue-expert-js in your project. Claude Code loads it when a task matches its description.

How do I install Vue Expert (JavaScript) in Codex?

Run `npx skills add Jeffallan/claude-skills --skill vue-expert-js -a codex`. Or copy the skill folder (skills/vue-expert-js in Jeffallan/claude-skills) into .agents/skills/vue-expert-js in your project. Codex loads it when a task matches its description.

Can I use Vue Expert (JavaScript) in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Jeffallan/claude-skills --skill vue-expert-js -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vue-expert-js, .gemini/skills/vue-expert-js, .github/skills/vue-expert-js and .opencode/skills/vue-expert-js in your project.

What does Vue Expert (JavaScript) need to run?

SKILL.md names no scripts, command-line tools or credentials: Vue Expert (JavaScript) is instructions for the agent only. Our summary lists: Node.js with ESLint and `eslint-plugin-jsdoc`; Vitest for the test step.

Does Vue Expert (JavaScript) access the network?

SKILL.md names 3 domains. As links in the text: github.com, synergetic.solutions and jeffallan.github.io. This is read from the text; nothing was executed.

Is Vue Expert (JavaScript) safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Vue Expert (JavaScript) use?

Vue Expert (JavaScript) is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Vue Expert (JavaScript) use?

About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.8k tokens, read only when the agent opens those files.

What are the alternatives to Vue Expert (JavaScript)?

Skills that share tags, products or a category with Vue Expert (JavaScript): Vuetify Playground (vuetifyjs/vuetify, 41k stars), Tabler Bootstrap Component Rules (tabler/tabler, 42k stars), Cursor BYOK Frontend Guide (leookun/cursor-byok, 3.2k stars) and UI Craft (MemTensor/memmy-agent, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vue Expert (JavaScript)?

Jeffallan (a GitHub user) maintains it in Jeffallan/claude-skills, which has 11,802 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 3, 2026.

Source: Jeffallan/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.