mcpField
I
inertia-rails-best-practices

inertia-rails-best-practices

github.com/cole-robertson開発38108 回インストール30 週間前に更新
リポジトリ

inertia-rails-best-practices について

Ruby on Rails での Inertia.js アプリの開発とレビューを支援するスキルです。設定からデータ管理、セキュリティ、テストまで、8分野の実践ルールをまとめています。

主な機能

  1. 018つの開発分野を網羅
  2. 02Propsとデータ管理のルール
  3. 03フォームとバリデーションのパターン
  4. 04ナビゲーションとパフォーマンスの指針
  5. 05セキュリティとテストの推奨事項

活用シーン

  1. 01Inertia Railsの新規プロジェクト開始
  2. 02Inertiaコードのレビューやリファクタリング
  3. 03ページパフォーマンスの改善
  4. 04安全なフォームの実装とレスポンスのテスト

インストール

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

$npx skills add https://github.com/cole-robertson/inertia-rails-skills --skill inertia-rails-best-practices

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

同梱ファイル

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

README.md
references/
AGENTS.md
scripts/
setup.sh

詳細

Inertia Rails のベストプラクティス

Ruby on Rails で高品質な Inertia.js アプリケーションを構築するための包括的なガイドです。このスキルでは、アプリケーションの品質、パフォーマンス、保守性への影響度に応じて優先順位付けされた、8 つのカテゴリにわたる 50 以上のルールを紹介します。

このスキルを使用するタイミング

  • 新しい Inertia Rails コントローラーやページを作成するとき
  • 既存の Inertia Rails コードをレビューするとき
  • Rails アプリケーションを Inertia を使うようにリファクタリングするとき
  • Inertia アプリケーションのパフォーマンスを最適化するとき
  • 認証/認可パターンを実装するとき
  • バリデーション付きのフォームを構築するとき
  • Inertia レスポンスのテストを設定するとき

カテゴリの概要

#カテゴリ優先度影響
1サーバーサイドのセットアップと設定CRITICALすべての Inertia 機能の基盤
2Props とデータ管理CRITICALパフォーマンスが 2~5 倍向上、セキュリティ
3フォームとバリデーションHIGHユーザー体験、データの整合性
4ナビゲーションとルーティングHIGHSPA の使用感、パフォーマンス
5パフォーマンスの最適化MEDIUM-HIGHページ読み込みが 30~70%高速化
6セキュリティMEDIUM-HIGHよくある脆弱性への対策
7テストMEDIUMコード品質、保守性
8高度なパターンMEDIUMスケーラビリティ、複雑なユースケース

クイックリファレンス

サーバーサイドのセットアップと設定(CRITICAL)
IDルールコンテキスト
setup-01初期セットアップには Rails ジェネレーターを使用する新規プロジェクト
setup-02キャッシュを無効化するためにアセットのバージョン管理を設定するすべてのプロジェクト
setup-03適切なレイアウト継承を設定する複数レイアウトのアプリ
setup-04フラッシュキーを適切に設定するフラッシュメッセージ
setup-05設定には環境変数を使用するデプロイ
setup-06デフォルトのレンダー動作を慎重に設定する設定より規約
Props とデータ管理(CRITICAL)
IDルールコンテキスト
props-01props では必要なデータのみを返すすべてのレスポンス
props-02グローバル props には共有データを使用する認証、設定
props-03ラムダによる遅延評価を活用するコストの高い処理
props-04重要度の低いデータには遅延 props を使用するパフォーマンス
props-05部分リロードを正しく実装するデータの更新
props-06props で機密データを決して公開しないセキュリティ
props-07as_json を使って適切にシリアライズするデータのフォーマット
props-08適切な場合はディープマージを実装するネストされたデータ
props-09変化しないデータには once props を使用するナビゲーションのパフォーマンス
props-10一貫した命名には prop transformer を使用するcamelCase への変換
フォームとバリデーション(HIGH)
IDルールコンテキスト
forms-01複雑なフォームには useForm ヘルパーを使用するプログラムによる制御
forms-02シンプルなフォームには Form コンポーネントを使用する宣言型フォーム
forms-03バリデーションエラーを適切に処理するユーザーへのフィードバック
forms-04複数のフォームにはエラーバッグを実装する複数フォームのページ
forms-05フォーム送信後にはリダイレクトパターンを使用するPRG パターン
forms-06ファイルアップロードを正しく処理するマルチパートフォーム
forms-07バリデーションエラー時にフォームの状態を保持するユーザー体験
forms-08ネストされたデータにはドット記法を使用する複雑なフォーム
forms-09リアルタイムのバリデーションには precognition を使用するサーバー側バリデーション
forms-10ナビゲーションを伴わないリクエストには useHttp を使用するAPI 呼び出し
ナビゲーションとルーティング(高)
IDルールコンテキスト
nav-01内部ナビゲーションには Link コンポーネントを使用するSPA の動作
nav-02外部へのリダイレクトには inertia_location を使用する外部 URL
nav-03preserve-scroll を適切に実装するスクロール位置
nav-04コンポーネントの状態には preserve-state を使用するフォームの保持
nav-05リンクに適切な HTTP メソッドを設定するRESTful アクション
nav-06静的ページには inertia のルートヘルパーを使用するシンプルなルート
nav-07303 リダイレクトを正しく処理するPOST/PUT/PATCH/DELETE
nav-08体感速度を高めるため、即時訪問を使用する高速なナビゲーション
パフォーマンスの最適化(中〜高)
IDルールコンテキスト
perf-01動的インポートでコード分割を実装するバンドルサイズ
perf-02遷移の可能性が高いページにはプリフェッチを使用する体感速度
perf-03stale-while-revalidate キャッシュを設定するデータの鮮度
perf-04ポーリングは必要な場合にのみ使用するリアルタイム更新
perf-05merge props を使って無限スクロールを実装する大規模なデータセット
perf-06プログレスインジケーターを最適化するユーザーへのフィードバック
perf-07ブロックしない処理には非同期訪問を使用するバックグラウンドタスク
perf-08ページネーションには InfiniteScroll コンポーネントを使用する大規模なデータセット
perf-09スムーズなアニメーションのためにビュー遷移を有効にするページ遷移
セキュリティ(中〜高)
IDルールコンテキスト
sec-01認証をサーバー側で実装する認証パターン
sec-02認可の結果を props として渡す権限チェック
sec-03機密データには履歴の暗号化を使用するブラウザー履歴
sec-04Rails の CSRF 保護を利用するフォームのセキュリティ
sec-05すべての入力をサーバー側で検証・サニタイズするデータ検証
sec-06コントローラーではストロングパラメーターを使用する一括代入
テスト(中)
IDルールコンテキスト
test-01Inertia のレスポンスには RSpec のマッチャーを使用するRSpec によるテスト
test-02Inertia には Minitest のアサーションを使用するMinitest によるテスト
test-03部分リロードと遅延 props をテストする高度な機能
test-04Capybara でエンドツーエンドテストを実装する統合テスト
test-05リダイレクト後のフラッシュメッセージをテストするフラッシュメッセージのテスト
test-06コンポーネントのレンダリングを検証するレスポンスの検証
高度なパターン(中)
IDルールコンテキスト
adv-01永続レイアウトを実装する状態の保持
adv-02カスタムのコンポーネントパスリゾルバーを使用する標準以外のパス
adv-03prop トランスフォーマーを設定するデータ変換
adv-04SSR を適切に処理するSEO 要件
adv-05ビュー遷移を実装するモダンなアニメーション
adv-06複雑なレイアウトではスクロール領域を使用するスクロール管理
adv-07イベントシステムを効果的に処理するライフサイクルフック
adv-08ページとレイアウト間のデータ受け渡しにはレイアウト props を使用するレイアウトデータ
adv-09最適な DX のために Vite プラグインを設定するプロジェクトのセットアップ

各ルールの詳細な説明、コード例、実装ガイダンスについては、AGENTS.md を参照してください。

コメント