Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

zod

Zodを使ったスキーマバリデーションのベストプラクティスを提供します。`z.object`スキーマの定義、`z.string`バリデーション、`safeParse`、`z.infer`による型安全な解析やエラーハンドリングを実装する際に使用してください。なお、React Hook Formとの統合パターンは`react-hook-form`スキル、OpenAPIクライアント生成は`orval`スキルを参照してください。

description の原文を見る

Zod schema validation best practices for type safety, parsing, and error handling. This skill should be used when defining z.object schemas, using z.string validations, safeParse, or z.infer. This skill does NOT cover React Hook Form integration patterns (use react-hook-form skill) or OpenAPI client generation (use orval skill).

SKILL.md 本文

Zod ベストプラクティス

TypeScript アプリケーション向けの Zod スキーマ検証に関する包括的なガイド。自動リファクタリングとコード生成の指針となるよう、8 つのカテゴリにわたる 43 のルールが含まれています。

適用時期

以下の場合にこれらのガイドラインを参照してください:

  • 新しい Zod スキーマを書く場合
  • parse() と safeParse() のどちらを選ぶか判断する場合
  • z.infer を使った型推論を実装する場合
  • ユーザーへのフィードバックのための検証エラーを処理する場合
  • 複雑なオブジェクトスキーマを構成する場合
  • refinements および transforms を使用する場合
  • バンドルサイズと検証パフォーマンスを最適化する場合
  • Zod コードのベストプラクティスをレビューする場合

ルールカテゴリ(優先度順)

優先度カテゴリ影響度プレフィックス
1スキーマ定義CRITICALschema-
2パースと検証CRITICALparse-
3型推論HIGHtype-
4エラーハンドリングHIGHerror-
5オブジェクトスキーマMEDIUM-HIGHobject-
6スキーマ構成MEDIUMcompose-
7Refinements と TransformsMEDIUMrefine-
8パフォーマンスとバンドルLOW-MEDIUMperf-

クイックリファレンス

1. スキーマ定義(CRITICAL)

  • schema-use-primitives-correctly - 各タイプに正しいプリミティブスキーマを使用する
  • schema-use-unknown-not-any - 型安全性のために z.any() の代わりに z.unknown() を使用する
  • schema-avoid-optional-abuse - オプショナルフィールドの過度な使用を避ける
  • schema-string-validations - スキーマ定義時に文字列検証を適用する
  • schema-use-enums - 固定文字列値に列挙型を使用する
  • schema-coercion-for-form-data - フォームおよびクエリデータに強制型変換を使用する

2. パースと検証(CRITICAL)

  • parse-use-safeparse - ユーザー入力に safeParse() を使用する
  • parse-async-for-async-refinements - 非同期 refinements に parseAsync を使用する
  • parse-handle-all-issues - 最初のエラーだけでなくすべての検証エラーを処理する
  • parse-validate-early - システム境界で検証を行う
  • parse-avoid-double-validation - 同じデータの二重検証を避ける
  • parse-never-trust-json - JSON.parse の出力を決して信頼しない

3. 型推論(HIGH)

  • type-use-z-infer - 手動の型の代わりに z.infer を使用する
  • type-input-vs-output - transforms に z.input と z.infer を区別する
  • type-export-schemas-and-types - スキーマと推論された型の両方をエクスポートする
  • type-branded-types - ドメイン安全性のためにブランド型を使用する
  • type-enable-strict-mode - TypeScript 厳密モードを有効にする

4. エラーハンドリング(HIGH)

  • error-custom-messages - カスタムエラーメッセージを提供する
  • error-use-flatten - フォームエラー表示に flatten() を使用する
  • error-path-for-nested - ネストされたエラーの位置に issue.path を使用する
  • error-i18n - 国際化エラーメッセージを実装する
  • error-avoid-throwing-in-refine - refine で例外をスローする代わりに false を返す

5. オブジェクトスキーマ(MEDIUM-HIGH)

  • object-strict-vs-strip - 未知のキーに対して strict() と strip() を選択する
  • object-partial-for-updates - 更新スキーマに partial() を使用する
  • object-pick-omit - スキーマバリアントに pick() と omit() を使用する
  • object-extend-for-composition - フィールド追加に extend() を使用する
  • object-optional-vs-nullable - optional() と nullable() を区別する
  • object-discriminated-unions - 型絞り込みに判別された共用体を使用する

6. スキーマ構成(MEDIUM)

  • compose-shared-schemas - 共有スキーマを再利用可能なモジュールに抽出する
  • compose-intersection - 型の組み合わせに intersection() を使用する
  • compose-lazy-recursive - 再帰的スキーマに z.lazy() を使用する
  • compose-preprocess - データ正規化に preprocess() を使用する
  • compose-pipe - 多段階検証に pipe() を使用する

7. Refinements と Transforms(MEDIUM)

  • refine-vs-superrefine - refine() と superRefine() を正しく選択する
  • refine-transform-coerce - transform() を refine() および coerce() と区別する
  • refine-add-path - refinement エラーにパスを追加する
  • refine-defaults - デフォルト値を持つオプショナルフィールドに default() を使用する
  • refine-catch - フォールトトレランスパースに catch() を使用する

8. パフォーマンスとバンドル(LOW-MEDIUM)

  • perf-cache-schemas - スキーマインスタンスをキャッシュする
  • perf-zod-mini - バンドルサイズに敏感なアプリケーションに Zod Mini を使用する
  • perf-avoid-dynamic-creation - ホットパスでの動的スキーマ生成を避ける
  • perf-lazy-loading - 大規模スキーマを遅延ロードする
  • perf-arrays - 大規模配列検証を最適化する

使用方法

詳細な説明とコード例については、個別のリファレンスファイルをお読みください:

  • セクション定義 - カテゴリ構造と影響レベル
  • ルールテンプレート - 新しいルール追加用テンプレート
  • 個別ルール:references/{prefix}-{slug}.md

完全なコンパイル済みドキュメント

すべてのルールが展開された完全なガイド:AGENTS.md

関連スキル

  • React Hook Form 統合については react-hook-form スキルを参照してください
  • API クライアント生成については orval スキルを参照してください

情報源

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
pproenca
リポジトリ
pproenca/dot-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/pproenca/dot-skills / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: pproenca · pproenca/dot-skills · ライセンス: MIT