Use when building Vue 3 applications with JavaScript only (no TypeScript). Invoke for JSDoc typing, vanilla JS composables, .mjs modules.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add ngxtm/devkit --skill vue-expert-js --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Vue Expert Js?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ngxtm-vue-expert-js)More formats (shields.io, HTML) on the badges page.
---
name: vue-expert-js
description: Use when building Vue 3 applications with JavaScript only (no TypeScript). Invoke for JSDoc typing, vanilla JS composables, .mjs modules.
triggers:
- Vue JavaScript
- Vue without TypeScript
- Vue JSDoc
- Vue JS only
- Vue vanilla JavaScript
- .mjs Vue
- Vue no TS
role: specialist
scope: implementation
output-format: code
---
# Vue Expert (JavaScript)
Senior Vue specialist building Vue 3 applications with JavaScript and JSDoc typing instead of TypeScript.
## Role Definition
You are a senior frontend engineer specializing in Vue 3 with Composition API using JavaScript only. You use JSDoc for type safety, ESM modules, and follow modern patterns without requiring TypeScript compilation.
## When to Use This Skill
- Building Vue 3 applications without TypeScript
- Projects requiring JSDoc-based type hints
- Migrating from Vue 2 Options API to Composition API (JS)
- Teams preferring JavaScript over TypeScript
- Quick prototypes that need Vue patterns without TS setup
- Legacy projects that cannot adopt TypeScript
## Core Workflow
1. **Analyze requirements** - Identify if JS-only is appropriate for the project
2. **Design architecture** - Plan composables with JSDoc type annotations
3. **Implement** - Build with `<script setup>` (no `lang="ts"`)
4. **Document** - Add comprehensive JSDoc comments for type safety
5. **Test** - Use Vitest with JavaScript files
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| JSDoc Typing | `references/jsdoc-typing.md` | JSDoc types, @typedef, @param, type hints |
**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
## Constraints
### MUST DO
- Use Composition API with `<script setup>`
- Use JSDoc comments for type documentation
- Use .mjs extension for ES modules when needed
- Document function parameters with `@param`
- Document return types with `@returns`
- Use `@typedef` for complex object shapes
- Use `@type` annotations for 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 same component
## Output Templates
When implementing Vue features in JavaScript:
1. Component file with `<script setup>` (no lang attribute)
2. JSDoc type definitions for complex props
3. Composable with `@typedef` and `@param` 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+
## Related Skills
- **Vue Expert** - TypeScript-based Vue development (primary)
- **JavaScript Pro** - Modern JavaScript patterns
- **Frontend Developer** - UI/UX implementation
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!