RE

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.zip

Installs 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.
283 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Beginner

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

You give it
Search term or file type
You get back
File path or directory location

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

DirectoryPurposeExamples
schemas/Data type validatorsstring/, object/, array/, union/
actions/Validation & transformationemail/, minLength/, trim/, transform/
methods/High-level APIparse/, safeParse/, pipe/, partial/
types/TypeScript definitionsschema.ts, issue.ts, dataset.ts
utils/Internal helpers (prefixed _)_addIssue/, _stringify/, ValiError/
storages/Global stateConfig, 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 interfaces
  • InferOutput<T>, InferInput<T>, InferIssue<T> - Type inference
  • Config, 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

  1. Create directory: library/src/schemas/yourSchema/
  2. Create files: yourSchema.ts, yourSchema.test.ts, yourSchema.test-d.ts, index.ts
  3. Follow existing patterns (copy similar implementation)
  4. Export from category index.ts
  5. 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 implementationlibrary/src/schemas/[name]/[name].ts
Action implementationlibrary/src/actions/[name]/[name].ts
Method implementationlibrary/src/methods/[name]/[name].ts
Type definitionslibrary/src/types/
Internal utilitieslibrary/src/utils/
Error messages (i18n)packages/i18n/[lang]/
API docs pagewebsite/src/routes/api/(category)/[name]/
Guide pagewebsite/src/routes/guides/(category)/[name]/
TestsSame directory as source, .test.ts suffix
Type testsSame 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

  1. Modularity - Small, focused functions; one per file
  2. Zero dependencies - Core library has no runtime deps
  3. 100% test coverage - Required for library
  4. Tree-shakable - Use // @__NO_SIDE_EFFECTS__ annotation
  5. Type-safe - Full TypeScript with strict mode
  6. ESM only - Imports include .ts extensions

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.

SkillInstallsUpdatedSafetyDifficulty
repo-structure-navigate (this skill)15moReviewBeginner
deepwiki-rs259moReviewIntermediate
python-code-style96moReviewIntermediate
code-review-excellence195moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by open-circle

View all by open-circle

repo-website-api-create

open-circle

Create new API reference pages for the Valibot website at website/src/routes/api/. Use when adding documentation for new schemas, actions, methods, or types. Covers reading source code, creating properties.ts and index.mdx files, updating menu.md, and cross-referencing related APIs.

26

repo-prepare-release

open-circle

Prepare releases by analyzing changelogs, determining version bumps, and updating package.json and changelog files.

12

repo-source-code-document

open-circle

Write JSDoc comments and inline documentation for Valibot library source code in /library/src/. Use when documenting schemas, actions, methods, or utilities. Covers interface documentation, function overloads, purity annotations, inline comment patterns, and terminology consistency.

14

repo-source-code-review

open-circle

Review pull requests and source code changes in /library/src/. Use when reviewing PRs, validating implementation patterns, or checking code quality before merging. Covers code quality checks, type safety, documentation review, test coverage, and common issues to watch for.

12

repo-website-api-update

open-circle

Update existing API documentation pages after source code changes. Use when syncing docs with library changes like new parameters, type constraint changes, interface updates, or function renames. Covers common change patterns and verification steps.

13

repo-website-guide-create

open-circle

Create conceptual documentation and tutorial pages for the Valibot website at website/src/routes/guides/. Use when adding guides about schemas, pipelines, async validation, migration, or other topics. Covers directory structure, MDX templates, frontmatter, and content guidelines.

16

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.

25170

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.

971

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.

1958

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.

670

cookbook-audit

anthropics

Audit an Anthropic Cookbook notebook based on a rubric. Use whenever a notebook review or audit is requested.

568

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.

1042

Search skills

Search the agent skills registry