mcpField
R
react-forms

react-forms

github.com/fusengine開発3437 回インストール2 週間前に更新
リポジトリ

react-forms について

TanStack Form v1 を使った実装を支援する React スキルです。フォーム状態や検証に加え、基本的なフィールドから SSR、React Native まで扱います。

主な機能

  1. 01フォームとフィールドのフック
  2. 02Standard Schema 検証
  3. 03デバウンス付き非同期検証
  4. 04React 19 Server Actions
  5. 05ネストフィールドと配列フィールド

活用シーン

  1. 01検証付き React フォームの作成
  2. 02デバウンス付きサーバー検証の追加
  3. 03ネストまたは反復可能なフィールドの作成
  4. 04フォームと Server Actions の連携

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/fusengine/agents --skill react-forms

インストール後、Claude Code で/react-formsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
arrays-nested.md
async-validation.md
devtools.md
linked-fields.md
listeners.md
react-native.md
reactivity.md
reset-api.md
server-actions.md
shadcn-integration.md
ssr-hydration.md
standard-schema.md
tanstack-form-basics.md
references/templates/
basic-form.md
conditional-fields.md
devtools-form.md
dynamic-fields.md
file-upload-form.md
form-composition.md
linked-fields-form.md
listeners-form.md
multi-step-form.md
nested-form.md
optimistic-form.md
react-native-form.md
reactivity-form.md
reset-form.md
search-form.md
server-action-form.md
ssr-form.md

詳細

TanStack Form v1 を React で実装します。コアフック(`useForm()`、`useField()`、`form.Field`、`form.Subscribe`)、ネイティブの Standard Schema バリデーション(Zod ~12KB、Yup ~40KB、Valibot ~6KB、ArkType、Effect Schema — アダプターパッケージ不要)、デバウンス付き非同期バリデーション、`useActionState` による React 19 Server Actions との統合に対応します。

また、ドット記法による配列/ネストされたフィールド、副作用のリスナー(onMount/onChange/onBlur とデバウンス)、連動/フィールド間バリデーション、useStore セレクターによるリアクティビティ、Reset API、SSR/ハイドレーション(TanStack Start)、Devtools、React Native のパターンも扱います。これは TanStack Form の React スキルです。Next.js Server Actions に特化したバリアントについては nextjs-tanstack-form を、SOLID のファイル構成ルールについては solid-react を参照してください。

TanStack Form v1 のコア機能

エージェントのワークフロー(必須)

実装を始める前に、必ず 3 つのエージェントを並列で起動してください。それぞれ 1 回の Agent 呼び出しで、name を指定します。

  1. fuse-ai-pilot:explore-codebase - 既存のフォームコンポーネントとバリデーションパターンを分析します
  2. fuse-ai-pilot:research-expert - Context7/Exa を使って TanStack Form v1 の最新ドキュメントを確認します
  3. mcp__context7__query-docs - Zod のバリデーションと React 19 Server Actions のパターンを確認します

実装後、検証のために fuse-ai-pilot:sniper を実行してください。


必須:SOLID 原則

必ず solid-react スキルの SOLID 原則を適用してください。

→ 完全なルールについては ../solid-react/SKILL.md を参照してください。

主なルール:

  • ソースファイルは FUSE_SOLID_MAX_LINES の範囲内に収め、凝集性が低下したら責務ごとに分割します
  • インターフェースは modules/[feature]/src/interfaces/ に配置します
  • すべてのエクスポートに JSDoc を必須とします
  • コンポーネントにビジネスロジックを記述しません

コアフック

フック目的ガイド
useForm()バリデーション付きのフォームを初期化しますreferences/tanstack-form-basics.md
useField()個別のフィールドを購読しますreferences/tanstack-form-basics.md
form.Fieldフィールド用のレンダープロップコンポーネントですreferences/tanstack-form-basics.md
form.Subscribeフォームの状態変化を監視しますreferences/tanstack-form-basics.md

→ 詳しい使い方については references/tanstack-form-basics.md を参照してください。


バリデーションアダプター

TanStack Form v1(@tanstack/react-form 1.33.x)は Standard Schema をネイティブでサポートしています。スキーマ自体を validators に渡してください(onChange: userSchema)。アダプターは不要です。validatorAdapter と @tanstack/zod-form-adapter(最終リリースは 0.42.1、v1 より前のバージョンで、Zod 3 のみ対応)は削除されているか、廃止されています。

ライブラリ使い方最小バージョンバンドルサイズ
Zodvalidators: { onChange: schema }3.24.0~12KB
Yupvalidators: { onChange: schema }1.7.0~40KB
Valibotvalidators: { onChange: schema }1.0.0~6KB

→ Zod のパターンについては references/zod-validation.md を参照してください。 → 代替ライブラリについては references/yup-valibot.md を参照してください。


主な機能

非同期バリデーション

デバウンスと読み込み状態を使ったサーバー側のチェックです。 → references/async-validation.md を参照してください。

Server Actions(React 19)

useActionState との統合とプログレッシブエンハンスメントに対応します。 → references/server-actions.md を参照してください。

配列とネストされたフィールド

動的なフィールド配列と、ネストされたオブジェクトのドット記法に対応します。 → references/arrays-nested.md を参照してください。

TypeScript との統合

Zod スキーマと defaultValues から完全な型推論を行います。 → references/typescript.md を参照してください。

shadcn/ui との統合

shadcn のスタイルを適用したフィールドラッパーコンポーネントを使用します。 → references/shadcn-integration.md を参照してください。

リスナー(副作用)

デバウンス付きの onMount、onChange、onBlur、onSubmit に対応します。 → references/listeners.md を参照してください。

連動フィールド

フィールド間バリデーションと依存するドロップダウンに対応します。 → references/linked-fields.md を参照してください。

リアクティビティとパフォーマンス

useStore セレクターと粒度の細かい購読に対応します。 → references/reactivity.md を参照してください。

Reset API

カスタム値を指定して、フォームとフィールドをリセットします。 → references/reset-api.md を参照してください。

SSR とハイドレーション

TanStack Start との統合とサーバー状態のマージです。 → references/ssr-hydration.md を参照してください。

開発者ツール

@tanstack/react-form-devtools でフォームの状態をデバッグします。 → references/devtools.md を参照してください。

React Native

TextInput を使用するモバイル固有のパターンです。 → references/react-native.md を参照してください。

Standard Schema

ArkType と Effect Schema をサポートしています。 → references/standard-schema.md を参照してください。


テンプレート

テンプレート用途
templates/basic-form.mdZod を使ったログイン/サインアップ
templates/multi-step-form.mdステップごとの検証を行うウィザード
templates/dynamic-fields.mdフィールド配列の追加/削除
templates/file-upload-form.mdプレビュー付きファイル入力
templates/server-action-form.mdReact 19 Server Actions
templates/optimistic-form.mduseOptimistic との統合
templates/nested-form.mdドット記法によるネストされたフィールド
templates/search-form.mdデバウンス付き検索
templates/conditional-fields.md値に応じた表示/非表示
templates/form-composition.md再利用可能なフィールドコンポーネント
templates/listeners-form.md副作用と自動保存
templates/linked-fields-form.mdフィールド間の検証
templates/reactivity-form.mdパフォーマンスの最適化
templates/reset-form.mdフォーム/フィールドのリセットパターン
templates/ssr-form.mdSSR とハイドレーション
templates/devtools-form.md開発者ツールとの統合
templates/react-native-form.mdReact Native フォーム

ベストプラクティス

  1. 検証:カスタム正規表現ではなく、Zod/Yup/Valibot を使用します
  2. 非同期処理:サーバー検証をデバウンスします(300~500ms)
  3. エラー:field.state.meta.errors を表示します
  4. ネスト:ドット記法(address.street)を使用します
  5. 配列:pushValue/removeValue とともに mode="array" を使用します
  6. TypeScript:z.infer<typeof schema> で型を推論します

禁止事項(アンチパターン)

  • ❌ フォームの状態に useState を使用 → useForm() を使用します
  • ❌ 正規表現による検証 → Zod/Yup/Valibot を使用します
  • ❌ 非同期処理にデバウンスを設定しない → onChangeAsyncDebounceMs を使用します
  • ❌ コンポーネント内で検証する → スキーマに移します
  • ❌ onChange を直接使用する → field.handleChange を使用します
  • ❌ TypeScript の型を定義しない → z.infer<typeof schema> を使用します

コメント