# Busirocket Validation

> Applies validation strategy using Zod for schemas and guard helpers for runtime checks. Use when validating API responses, request inputs, or external data at boundaries.

- Skill: `busirocket/busirocket-validation` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add busirocket/busirocket-validation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/busirocket/busirocket-validation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: busirocket (https://skillmd.com/u/busirocket)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/busirocket/busirocket-validation

---


# Validation (Zod + Guards)

Consistent validation at boundaries: Zod for complex schemas, small guards for
simple runtime checks.

## When to Use

Use this skill when:

- Validating API responses or external data in services
- Validating request/input shapes at boundaries (e.g. route handlers, SDK)
- Adding or refactoring `utils/validation/` helpers
- Defining Zod schemas alongside types in `types/<area>/`

## Non-Negotiables (MUST)

- **Services**: validate API/external data with Zod schemas (e.g.
  `.safeParse()`).
- **Utils**: keep small coercion/guard helpers under `utils/validation/` (one
  function per file).
- **Types**: Zod schemas can live in `types/<area>/`; infer types with
  `z.infer<typeof Schema>`.
- Prefer `unknown` inputs at boundaries + explicit narrowing.
- No inline validation logic inside components/hooks.

## Rules

### Boundaries & Placement

- `validation-boundaries` - Where validation lives (services, utils, types)

### Zod Schemas (Complex Validation)

- `validation-zod-schemas` - Using Zod for complex validation with
  `.safeParse()`
- `validation-zod-types` - Inferring types from Zod schemas with `z.infer`

### Guard Helpers (Simple Runtime Checks)

- `validation-guard-helpers` - Creating simple guard functions with type
  predicates
- `validation-guard-examples` - Recommended guard helpers (isRecord,
  isNonEmptyString, etc.)

### Anti-Patterns

- `validation-no-inline` - No inline validation logic in components/hooks

## Related Skills

- `busirocket-nextjs` - Validation in route handlers
- `busirocket-core-conventions` - File boundaries and structure

## How to Use

Read individual rule files for detailed explanations and code examples:

```
rules/validation-boundaries.md
rules/validation-zod-schemas.md
rules/validation-guard-helpers.md
```

Each rule file contains:

- Brief explanation of why it matters
- Code examples (correct and incorrect patterns)
- Additional context and best practices

