CtrlK
BlogDocsLog inGet started
Tessl Logo

vue-expert-js

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.

98

1.21x
Quality

100%

Does it follow best practices?

Impact

97%

1.21x

Average score across 6 eval scenarios

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Evaluation results

84%

17%

Analytics Dashboard Data Composables

JSDoc-typed composable authoring

Criteria
Without context
With context

JS file extensions

100%

100%

No TypeScript syntax

100%

100%

No CommonJS require()

100%

100%

@typedef for PaginatedResponse

80%

100%

@typedef for MetricItem

100%

100%

@type for Ref<T>

100%

100%

@type for ComputedRef

0%

0%

@template generic type

0%

0%

@returns on composable functions

100%

100%

@param on function parameters

100%

100%

Return type @typedef

0%

100%

toValue() for MaybeRef param

0%

100%

toRefs() for filter destructuring

100%

100%

100%

25%

Team Task Board — Vue Component & Store

Vue SFC and Pinia store with JSDoc

Criteria
Without context
With context

No lang attribute on script

100%

100%

No .ts files

100%

100%

Setup Store syntax

100%

100%

storeToRefs() usage

0%

100%

readonly() on provided value

0%

100%

@typedef in types.js

100%

100%

Types.js empty export

0%

100%

@type for store Refs

100%

100%

@param on store actions

100%

100%

@returns on store actions

100%

100%

No CommonJS require()

100%

100%

JSDoc in component

100%

100%

No TypeScript syntax

100%

100%

98%

10%

Write Tests for a Notification Center Component

Vitest component and store testing

Criteria
Without context
With context

Vitest imports

100%

83%

.js test file extension

100%

100%

mount() from @vue/test-utils

100%

100%

createTestingPinia usage

100%

100%

flushPromises() for async

0%

100%

initialState in createTestingPinia

100%

100%

data-test selectors

100%

100%

Action spy assertion

100%

100%

No TypeScript syntax

100%

100%

No CommonJS require()

100%

100%

100%

22%

Setting Up JSDoc Linting for a Vue 3 Composables Library

ESLint JSDoc plugin setup and verification

Criteria
Without context
With context

eslint-plugin-jsdoc installed

100%

100%

jsdoc plugin in ESLint config

100%

100%

jsdoc rules enabled

100%

100%

@param on exported functions

100%

100%

@returns on exported functions

100%

100%

@typedef for complex objects

0%

100%

@type on reactive variables

0%

100%

No TypeScript syntax

100%

100%

No .ts file extensions

100%

100%

No CommonJS require()

100%

100%

ESLint run evidence

57%

100%

100%

8%

Global Toast Notification System for a Vue 3 App

Module-level singleton composable with lifecycle cleanup

Criteria
Without context
With context

Module-level ref state

100%

100%

onUnmounted cleanup

100%

100%

readonly() on exposed state

100%

100%

@typedef for notification shape

100%

100%

@type on module-level ref

100%

100%

@param on exported functions

100%

100%

@returns on composable function

100%

100%

Return type @typedef

0%

100%

No TypeScript syntax

100%

100%

No .ts file extensions

100%

100%

No CommonJS require()

100%

100%

Demo component uses composable

100%

100%

100%

16%

Multi-tenant Theme and User Preferences System

Provide/inject with readonly, .mjs modules, and type coverage note

Criteria
Without context
With context

.mjs for standalone modules

100%

100%

readonly() on provide

100%

100%

Symbol injection key

0%

100%

@typedef in .mjs types file

100%

100%

Types empty export

0%

100%

@param on composable functions

100%

100%

@returns on composable functions

100%

100%

@type on reactive variables

100%

100%

Type coverage note present

100%

100%

No TypeScript syntax

100%

100%

No .ts file extensions

100%

100%

No CommonJS require()

100%

100%

Repository
jeffallan/claude-skills
Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.