repo-structure-navigate
Navigates the Valibot monorepo to help developers locate schema definitions, method implementations, and guides.
Install
mkdir -p .claude/skills/repo-structure-navigate && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3729" && unzip -o skill.zip -d .claude/skills/repo-structure-navigate && rm skill.zipInstalls to .claude/skills/repo-structure-navigate
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Navigate the Valibot repository structure. Use when looking for files, understanding the codebase layout, finding schema/action/method implementations, locating tests, API docs, or guide pages. Covers monorepo layout, library architecture, file naming conventions, and quick lookups.Key capabilities
- →Locate schema implementations
- →Find action and method definitions
- →Navigate monorepo structure
- →Identify test file locations
- →Access API documentation
How it works
It maps the repository directory structure to specific functional categories like schemas, actions, and methods.
Inputs & outputs
When to use repo-structure-navigate
- →Locate a specific validation schema
- →Find implementation files
- →Navigate to library tests
About this skill
Valibot Repository Structure
Monorepo Layout
valibot/
├── library/ # Core valibot package (zero dependencies)
├── packages/
│ ├── i18n/ # Translated error messages (25+ languages)
│ └── to-json-schema/ # JSON Schema converter
├── codemod/
│ ├── migrate-to-v0.31.0/ # Version migration
│ └── zod-to-valibot/ # Zod converter
├── website/ # valibot.dev (Qwik + Vite)
├── brand/ # Brand assets
├── skills/ # Agent skills (this folder)
└── prompts/ # Legacy AI agent guides
Core Library (/library/src/)
Directory Structure
| Directory | Purpose | Examples |
|---|---|---|
schemas/ | Data type validators | string/, object/, array/, union/ |
actions/ | Validation & transformation | email/, minLength/, trim/, transform/ |
methods/ | High-level API | parse/, safeParse/, pipe/, partial/ |
types/ | TypeScript definitions | schema.ts, issue.ts, dataset.ts |
utils/ | Internal helpers (prefixed _) | _addIssue/, _stringify/, ValiError/ |
storages/ | Global state | Config, message storage |
Schema Categories
- Primitives:
string,number,boolean,bigint,date,symbol,blob,file - Objects:
object,strictObject,looseObject,objectWithRest - Arrays:
array,tuple,strictTuple,looseTuple,tupleWithRest - Advanced:
union,variant,intersect,record,map,set,lazy,custom - Modifiers:
optional,nullable,nullish,nonNullable,nonNullish,nonOptional
Action Types
Validation (return issues): email, url, uuid, regex, minLength, maxValue, check
Transformation (modify data): trim, toLowerCase, toUpperCase, mapItems, transform
Metadata: brand, flavor, metadata, description, title
File Naming Convention
Each schema/action/method has its own directory:
schemas/string/
├── string.ts # Implementation
├── string.test.ts # Runtime tests
├── string.test-d.ts # Type tests
└── index.ts # Re-export
Core Patterns
Schemas define data types:
export interface StringSchema<TMessage> extends BaseSchema<...> {
readonly kind: 'schema';
readonly type: 'string';
// ...
}
Actions validate/transform in pipelines:
export interface EmailAction<TInput, TMessage> extends BaseValidation<...> {
readonly kind: 'validation';
readonly type: 'email';
// ...
}
Methods provide API functions:
export function parse<TSchema>(
schema: TSchema,
input: unknown
): InferOutput<TSchema>;
Key Types
BaseSchema,BaseValidation,BaseTransformation- Base interfacesInferOutput<T>,InferInput<T>,InferIssue<T>- Type inferenceConfig,ErrorMessage<T>,BaseIssue<T>- Configuration and errors'~standard'property - Standard Schema compatibility
Website (/website/src/routes/)
API Documentation
routes/api/
├── (schemas)/string/ # Schema docs
│ ├── index.mdx # MDX content
│ └── properties.ts # Type definitions
├── (actions)/email/ # Action docs
├── (methods)/parse/ # Method docs
├── (types)/StringSchema/ # Type docs
└── menu.md # Navigation
Guides
routes/guides/
├── (get-started)/ # Intro, installation
├── (main-concepts)/ # Schemas, pipelines, parsing
├── (schemas)/ # Objects, arrays, unions
├── (advanced)/ # Async, i18n, JSON Schema
├── (migration)/ # Version upgrades
└── menu.md # Navigation
Development
Playground
Use library/playground.ts for quick experimentation.
Adding a Schema/Action
- Create directory:
library/src/schemas/yourSchema/ - Create files:
yourSchema.ts,yourSchema.test.ts,yourSchema.test-d.ts,index.ts - Follow existing patterns (copy similar implementation)
- Export from category
index.ts - Run
pnpm -C library test
Modifying Core Types
⚠️ Changes to library/src/types/ affect the entire library. Always run full test suite.
Quick Lookups
| Looking for... | Location |
|---|---|
| Schema implementation | library/src/schemas/[name]/[name].ts |
| Action implementation | library/src/actions/[name]/[name].ts |
| Method implementation | library/src/methods/[name]/[name].ts |
| Type definitions | library/src/types/ |
| Internal utilities | library/src/utils/ |
| Error messages (i18n) | packages/i18n/[lang]/ |
| API docs page | website/src/routes/api/(category)/[name]/ |
| Guide page | website/src/routes/guides/(category)/[name]/ |
| Tests | Same directory as source, .test.ts suffix |
| Type tests | Same directory as source, .test-d.ts suffix |
Commands
# Library
pnpm -C library build # Build
pnpm -C library test # Run tests
pnpm -C library lint # Lint
pnpm -C library format # Format
# Website
pnpm -C website dev # Dev server
pnpm -C website build # Production build
# Root
pnpm install # Install all
pnpm format # Format all
Key Principles
- Modularity - Small, focused functions; one per file
- Zero dependencies - Core library has no runtime deps
- 100% test coverage - Required for library
- Tree-shakable - Use
// @__NO_SIDE_EFFECTS__annotation - Type-safe - Full TypeScript with strict mode
- ESM only - Imports include
.tsextensions
Do's and Don'ts
Do:
- Follow existing code patterns
- Write runtime and type tests
- Add JSDoc documentation
- Keep functions small and focused
- Check bundle size impact
Don't:
- Add external dependencies
- Modify core types without full test run
- Skip tests
- Create large multi-purpose functions
- Modify generated files (
dist/,coverage/)
When not to use it
- →Modifying core types without testing
Limitations
- →Specific to Valibot repository layout
How it compares
It provides a structured navigation guide for the Valibot monorepo instead of generic file searching.
Compared to similar skills
repo-structure-navigate side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| repo-structure-navigate (this skill) | 1 | 5mo | Review | Beginner |
| deepwiki-rs | 25 | 9mo | Review | Intermediate |
| python-code-style | 9 | 6mo | Review | Intermediate |
| code-review-excellence | 19 | 5mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by open-circle
View all by open-circle →You might also like
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.
python-code-style
wshobson
Python code style, linting, formatting, naming conventions, and documentation standards. Use when writing new code, reviewing style, configuring linters, writing docstrings, or establishing project standards.
code-review-excellence
wshobson
Master effective code review practices to provide constructive feedback, catch bugs early, and foster knowledge sharing while maintaining team morale. Use when reviewing pull requests, establishing review standards, or mentoring developers.
code-walk-thru
pchalasani
Use this when user wants you to walk through (code or text) files in a EDITOR to either explain how some code works, or to show the user what changes you made, etc. You would typically use this repeatedly to show the user your changes or code files one by one, sometimes with specific line-numbers. This way the user is easily able to follow along in their favorite EDITOR as you point at various files possibly at specific line numbers within those files.
cookbook-audit
anthropics
Audit an Anthropic Cookbook notebook based on a rubric. Use whenever a notebook review or audit is requested.
schema-markup
davila7
When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit.