
vee-validate-skilld
Use when writing, reviewing, or debugging Vue.js forms that import vee-validate (useForm, defineField, useField, useFieldArray, Form, Field, FieldArray, ErrorMessage). Provides correct v4.15.x Composition API and component usage, validation schema patterns, typed-schema integration, version-specific API changes since 4.9, deprecations, and known pitfalls.
- Installs
- 186
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/skilld-dev/vue-ecosystem-skills --skill vee-validate-skilld- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads vee-validate-skilld automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
vee-validate 4.15.1
Form validation for Vue 3. Facts below come from the prepared source (dist/vee-validate.d.ts, dist/vee-validate.mjs, package.json) and official docs at https://vee-validate.logaretm.com/v4/.
Environment
- Package
vee-validate@4.15.1(package.json:3). Requiresvue ^3.4.26as peer (package.json:42). - ESM + CJS,
sideEffects: false, single entryvee-validate(package.json:11-26). - v4 supports Vue 3 only. Vue 2 needs vee-validate 2.x/3.x (README:69-72).
- Schema adapters live in separate packages:
@vee-validate/yup,@vee-validate/zod,@vee-validate/valibot; global rules in@vee-validate/rules; messages in@vee-validate/i18n.
Two API styles
Composition API (preferred for new code). useForm + defineField + handleSubmit:
<script setup>
import { useForm } from 'vee-validate';
function required(value) {
return value ? true : 'This field is required';
}
const { defineField, handleSubmit, errors } = useForm({
validationSchema: { field: required },
});
const [field, fieldProps] = defineField('field');
const onSubmit = handleSubmit(values => {
console.log(values);
});
</script>
<template>
<form @submit="onSubmit">
<input v-model="field" v-bind="fieldProps" />
<span>{{ errors.field }}</span>
<button>Submit</button>
</form>
</template>
Source: README:84-118, https://vee-validate.logaretm.com/v4/guide/composition-api/getting-started/
Declarative components. Form + Field with scoped slots:
<script setup>
import { Field, Form } from 'vee-validate';
function required(value) {
return value ? true : 'This field is required';
}
function onSubmit(values) {
console.log(values);
}
</script>
<template>
<Form v-slot="{ errors }" @submit="onSubmit">
<Field name="field" :rules="required" />
<span>{{ errors.field }}</span>
<button>Submit</button>
</Form>
</template>
Source: README:122-153, https://vee-validate.logaretm.com/v4/guide/components/handling-forms/
Core rules
- Bind fields with
defineField(path, config?). It returns[model, props]; spread the props withv-bindand the model withv-model(dist/vee-validate.d.ts:443, https://vee-validate.logaretm.com/v4/api/use-form/#definefield). - Never write directly to
values.field; use thedefineFieldmodel,setFieldValue, oruseSetFieldValue. useFieldModel,defineComponentBinds, anddefineInputBindsare deprecated in favor ofdefineField(dist/vee-validate.d.ts:444-459).- Show errors only after interaction, e.g.
v-if="errorMessage && meta.touched", to avoid aggressive validation UX (https://vee-validate.logaretm.com/v4/guide/best-practices/#avoiding-aggressive-validation). - For TypeScript, wrap yup/zod/valibot schemas with
toTypedSchemafrom the matching@vee-validate/*package. Passing a raw schema without it fails with "No such validator 'VVTypedSchema' exists" (https://vee-validate.logaretm.com/v4/guide/composition-api/typed-schema/, https://github.com/logaretm/vee-validate/discussions/4819). useFieldinside a custom component must not sync its v-model by default (syncVModeldefaults tofalse, breaking change in 4.10.0). Opt in per field withsyncVModel: trueor a model prop name string (dist/vee-validate.mjs:1862).- Field names are paths. Dots nest objects,
[0]indexes arrays; wrap the name in brackets, e.g.[user.name], to treat dots as literal (https://vee-validate.logaretm.com/v4/guide/composition-api/nested-objects-and-arrays/). - The
errorsobject is always flat: reference the exact path string used as the field name, brackets included (https://vee-validate.logaretm.com/v4/guide/composition-api/nested-objects-and-arrays/). - Iterate array fields with
fieldsfromuseFieldArrayand keyv-forbyentry.key(a stable id, never the index) (https://vee-validate.logaretm.com/v4/guide/composition-api/nested-objects-and-arrays/). - Pass reactive field names as getters (
useField(() => props.name)) so vee-validate tracks name changes (https://vee-validate.logaretm.com/v4/guide/composition-api/caveats/). - Keep schemas non-reactive: declare them outside
ref/reactiveor wrap withmarkRawto avoid deep reactivity overhead (https://vee-validate.logaretm.com/v4/guide/best-practices/#reactive-schemas). handleSubmit.withControlled(cb)submits only fields registered withuseField/defineField(dist/vee-validate.d.ts:430-432); note typed schemas can still surface all initial values (open issue: https://github.com/logaretm/vee-validate/issues/4960).
Validation modes
Global defaults: validateOnBlur: true, validateOnChange: true, validateOnInput: false, validateOnModelUpdate: true, bails: true. Change globally with configure(); note these four trigger flags only apply to the <Field> component, not useField (https://vee-validate.logaretm.com/v4/api/configuration/). To validate only on submit, disable input/change/blur triggers per field in defineField config or globally (https://github.com/logaretm/vee-validate/discussions/4903).
References
- Composition API:
useForm,defineField,useField,useFieldArray, state and setter composables, form context. - Components:
Form,Field,FieldArray,ErrorMessageprops, slots, rendering, v-model rules. - Validation: validator functions, object schemas, typed schemas, global rules, i18n, standalone
validateutils. - API surface: every runtime export and notable type, cited to
dist/vee-validate.d.ts. - Version changes: API additions, breaking changes, and deprecations from 4.9.0 to 4.15.1.
- Pitfalls: composition caveats, nested path rules, array fields, known open issues.
FAQ
What does the vee-validate-skilld skill do?
Use when writing, reviewing, or debugging Vue.js forms that import vee-validate (useForm, defineField, useField, useFieldArray, Form, Field, FieldArray, ErrorMessage). Provides correct v4.15.x Composition API and component usage, validation schema patterns, typed-schema integration, version-specific API changes since 4.9, deprecations, and known pitfalls.
How do I install vee-validate-skilld?
Run npx skills add https://github.com/skilld-dev/vue-ecosystem-skills --skill vee-validate-skilld in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/vee-validate-skilld/ (personal) or .claude/skills/vee-validate-skilld/ (project).
Which AI agents can use vee-validate-skilld?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is vee-validate-skilld safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains vee-validate-skilld?
It is published by skilld-dev in skilld-dev/vue-ecosystem-skills. It has 186 recorded installs.
More from skilld-dev/vue-ecosystem-skills
quasar-skilld
skilld-dev/vue-ecosystem-skills
Build, configure, and debug apps with the Quasar framework (quasar npm package, v2.33.1). Use when writing, reviewing, or debugging code that imports "quasar" or "quasar/wrappers", configuring Quasar with Vite, Vitest, Storybook, UMD, or Quasar CLI, styling with Quasar Sass variables, or upgrading between Quasar v2 releases.
vue-i18n-skilld
skilld-dev/vue-ecosystem-skills
Open the skill to read its SKILL.md instructions.
vue-skilld
skilld-dev/vue-ecosystem-skills
Open the skill to read its SKILL.md instructions.
vuetify-skilld
skilld-dev/vue-ecosystem-skills
Vue Material Component Framework. Use when writing, debugging, or configuring code that imports vuetify v4.x. Covers createVuetify setup, components and labs, composables, theming, icons, dates and locale, styles and SASS variables, treeshaking, and v3 to v4 migration.
pinia-skilld
skilld-dev/vue-ecosystem-skills
Open the skill to read its SKILL.md instructions.
vue-router-skilld
skilld-dev/vue-ecosystem-skills
Open the skill to read its SKILL.md instructions.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.