open-circle/valibot · Archived

repo-source-code-review

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.

First seen Jan 30, 2026

Installation

$ npx skills add open-circle/valibot --skill repo-source-code-review

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from open-circle/valibot.

npx skills add open-circle/valibot

Browse all from open-circle/valibot

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 8.9K
License LICENSE.md
Default branch main
Open issues 86
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,598 B
  • docs SUMMARY.md 304 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 25 installs

SKILL.md

Reviewing Source Code Changes

Guide for reviewing PRs and source code changes in /library/src/.

When to Use This Guide

  • Reviewing pull requests modifying library source
  • Validating implementation patterns before merging
  • Checking code quality, types, documentation, and tests

Review Process

  1. Understand the change — Read PR description, identify affected files
  2. Check patterns — Verify code follows existing conventions
  3. Verify types — Ensure type safety and proper inference
  4. Review docs — Confirm JSDoc is complete and accurate
  5. Check tests — Validate runtime and type test coverage

What to Review

Code Quality

Check Requirement
Naming Matches existing patterns (StringSchema, minLength, _parse)
Purity annotation // @__NOSIDEEFFECTS__ before pure factory functions
Import extensions All imports use .ts extension
Interface vs type Use interface for object shapes, type for unions/aliases
Folder structure Each API has: name.ts, name.test.ts, name.test-d.ts, index.ts

Good — purity annotation:

// @__NO_SIDE_EFFECTS__
export function string(message?: ErrorMessage<StringIssue>): StringSchema {
  return {
    /* ... */
  };
}

Bad — missing annotation:

export function string(message?: ErrorMessage<StringIssue>): StringSchema {
  return {
    /* ... */
  };
}

Type Safety

Check Requirement
Generic inference Types infer correctly without explicit annotations
Constraints Generic parameters have appropriate extends clauses
Return types Explicit return types on exported functions
Type tests .test-d.ts file covers type inference scenarios

Good — constrained generic:

export function minLength<
  TInput extends LengthInput,
  TRequirement extends number,
>(
  requirement: TRequirement,
  message?: ErrorMessage<MinLengthIssue<TInput, TRequirement>>
): MinLengthAction<TInput, TRequirement>;

Documentation

Check Requirement
JSDoc present All exported functions have JSDoc
First line Action verb matching function purpose (see below)
@param tags Every parameter documented
@returns tag Return value documented
Overloads Every overload has its own complete JSDoc block

First line patterns by category:

Category Pattern
Schemas Creates a ... schema.
Actions Creates a ... action.
Parse methods Parses ...
Type guards Checks if ...
Unwrap methods Unwraps ...
Other methods Creates a ..., Returns ..., Forwards ...

See repo-source-code-document skill for full documentation rules.

Tests

Check Requirement
Runtime tests .test.ts covers success cases, failure cases, edge cases
Type tests .test-d.ts validates type inference with expectTypeOf
Issue messages Tests verify correct error messages and issue structure

Common Issues

Issue What to Look For
Missing purity annotation Factory function without // @__NOSIDEEFFECTS__
Incomplete JSDoc Missing @param or @returns, wrong description format
No type tests New API without .test-d.ts file
Wrong import extension Imports without .ts suffix
Inconsistent naming Schema not ending in Schema, action not ending in Action
Side effects in pure code Mutations, I/O, or global state in schema/action creation

Checklist

  • Implementation follows existing patterns in similar files
  • // @__NOSIDEEFFECTS__ on pure factory functions
  • All imports use .ts extension
  • interface used for object shapes
  • JSDoc complete on all exports
  • Runtime tests in .test.ts
  • Type tests in .test-d.ts
  • Naming conventions followed

Related Skills

  • repo-structure-navigate — Navigate the codebase
  • repo-source-code-document — JSDoc requirements