hwc-forms-validation について
Turbo Frames と Stimulus を使う Hotwire 開発者向けのフォーム・バリデーションスキルです。エラーの再表示、送信レスポンス、再描画時のユーザー状態保持について指針を示します。
主な機能
- 01一般的なフォームフローを設計
- 02Turbo Frame 内でエラーを再表示
- 03失敗と成功のレスポンスを区別
- 04フォーカスとキャレット位置を保持
- 05入力状態の重複を回避
活用シーン
- 01インライン編集やモーダルフォームの実装
- 02バリデーション付きタイプアヘッドの構築
- 03フレーム外のフォームコントロール処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lucianghinda/ superpowers-ruby --skill hwc-forms-validationインストール後、Claude Code で/hwc-forms-validationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/2023-11-07-turbo-frames-typeahead-search.md2024-01-16-stimulus-action-parameters.md2024-02-27-turbo-frames-inline-edit.md2024-05-21-turbo-frames-modals-validation.md2025-10-20-turbo-frames-typeahead-validation.md2026-02-03-turbo-frames-external-form.mdINDEX.md詳細
フォームとバリデーション
Turbo Frames と Stimulus を使って、フォーム中心の Hotwire ワークフローを実装します。
コアワークフロー
- フォームのフローを特定します。新規作成/編集、インライン編集、入力補完、モーダルフォーム、外部コントロールなどがあります。
- バリデーションエラーをその場で再レンダリングする必要がある場合は、フォーム操作の範囲を Turbo Frame で囲みます。
- バリデーションに失敗した場合は
422を返し、リダイレクトに成功した場合は303を返します。 - Turbo のデフォルト動作では不十分な場合に限り、
turbo:submit-endで送信後の動作を処理します。 - 再レンダリング時にユーザーのコンテキスト(フォーカス、キャレット、選択範囲)を維持します。
ガードレール
- 入力状態の信頼できる情報源は一つに保ちます。フレーム内とフレーム外の DOM でコントロールを重複させないでください。
- 対象の
<form>の階層外にコントロールをレンダリングする場合は、HTML のform属性を使用します。 - デバウンスまたはスロットリングなしに、キーストロークごとに送信ロジックを実行しないでください。
- フォームのレスポンスがフレームのみを更新する場合は、送信後の動作を明示します。
必要なリファレンスのみを読み込む
現在のリクエストに必要なファイルのみを開きます。
- インライン編集:
references/2024-02-27-turbo-frames-inline-edit.md - モーダルのバリデーションフロー:
references/2024-05-21-turbo-frames-modals-validation.md - 入力補完検索:
references/2023-11-07-turbo-frames-typeahead-search.md - フォーカス処理を伴う入力補完のバリデーション:
references/2025-10-20-turbo-frames-typeahead-validation.md - フレーム内の外部フォームコントロール:
references/2026-02-03-turbo-frames-external-form.md - フォームの Stimulus アクションパラメーター:
references/2024-01-16-stimulus-action-parameters.md
全カタログは references/INDEX.md を参照してください。
関連スキルへのエスカレーション
- ナビゲーション/履歴/キャッシュの動作:
hwc-navigation-contentを使用します - WebSocket または Turbo Stream によるプッシュ更新:
hwc-realtime-streamingを使用します - メディアのアップロード/再生の動作:
hwc-media-contentを使用します - 一般的な UX の仕上げ(スピナー/進行状況/トランジション):
hwc-ux-feedbackを使用します - Stimulus API の一般的な設計に関する質問:
hwc-stimulus-fundamentalsを使用します
コメント
Markdown 対応