Agent skill · software engineering · open-circle
valibot
Schema validation with Valibot, the modular and type-safe schema library. Use when the user needs to validate data, create schemas, parse inputs, or work with Valibot in their project. Also use when migrating from Zod to Valibot.
Why this skill is useful
Provides specific Valibot schema commands and migration patterns that the AI wouldn't reliably generate on its own.
What it needs
About 9k tokens when loaded. Last updated 2026-07-24. 15 stars on the source repository.
What this skill does
Valibot This skill helps you work effectively with Valibot, the modular and type-safe schema library for validating structural data. When to use this skill When the user asks about schema validation with Valibot When creating or modifying Valibot schemas When parsing or validating user input When the user mentions Valibot, schema, or validation When migrating from Zod to Valibot CRITICAL: Valibot vs Zod — Do Not Confuse! Valibot and Zod have different APIs. Never mix them up! Key Differences Feature Zod ❌ Valibot ✅ ------------------- ------------------------------------- --------------------------------------------------------- Import import { z } from 'zod' import as v from 'valibot' Validations Chained methods: .email().min(5) Pipeline: v.pipe(v.string(), v.email(), v.minLength(5)) Parsing schema.parse(data) v.parse(schema, data) Safe parsing schema.safeParse(data) v.safeParse(schema, data) Optional z.string().optional() v.optional(v.string()) Nullable z.string().nullable() v.nullable(v.string()) Default z.string().default('x') v.optional(v.string(), 'x') Transform z.string().transform(fn) v.pipe(v.string(), v.transform(fn)) Refine/Check z.string().refine(fn) v.pipe(v.string(), v.check(fn)) Enum z.enum(['a', 'b']) v.picklist(['a', 'b']) Native enum z.nativeEnum(MyEnum) v.enum(MyEnum) Union z.union([a, b]) v.union([a, b]) Discriminated union z.discriminatedUnion('type', [...]) v.variant('type', [...]) Intersection z.intersection(a, b) v.intersect([a, b]) Min/max length .min(5).max(10) v.minLength(5), v.maxLength(10) Min/max value .gte(5).lte(10) v.minValue(5), v.maxValue(10) Infer type z.infer<typeof Schema> v.InferOutput<typeof Schema> Infer input z.input<typeof Schema> v.InferInput<typeof Schema> Common Mistakes to Avoid Installation Import with a wildcard (recommended): Or with individual imports: Mental Model Valibot's API is divided into three main concepts: 1. Schemas Schemas define the expected data type. They are the starting point. 2. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills open-circle/valibot