laravel:effective-context について
Laravel プロジェクトに合ったコードを AI アシスタントに生成させるため、関連ファイル、設定、バージョン、既存パターンなどの情報を伝えるスキルです。エラーや依頼を具体的に記述する方法も示します。
主な機能
- 01関連ファイルとディレクトリの提示
- 02既存コードと設定の共有
- 03Laravel のバージョンと依存関係の明記
- 04モノレポ内のアプリ情報の指定
- 05エラー詳細と再現手順の提示
活用シーン
- 01既存の Laravel コードの変更依頼
- 02データベースやアプリのエラー調査
- 03バリデーション規則と業務要件の明確化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jpcaparas/ superpowers-laravel --skill laravel:effective-contextインストール後、Claude Code で/laravel:effective-contextを入力して読み込まれたか確認します。
詳細
効果的なコンテキスト
正確で関連性の高いコードを生成できるよう、AI アシスタントに適切なコンテキストを伝えましょう。コンテキストが不足すると、プロジェクトに合わない一般的な解決策になってしまいます。
含める内容
ファイルと構成
- 具体的なファイルを指定する:
app/Models/User.php、routes/api.php - 関連するディレクトリを示す:「
app/Services/Paymentで作業しています」 - 重要な場合はプロジェクト構成を共有する:「
app/Contractsにインターフェースがあるリポジトリパターンを使用しています」
現在の状態
- 変更または拡張する既存のコードを示す
- 何が機能し、何が機能しないかを説明する
- 関連する設定を含める:
.envの設定、config/の値
Laravel のコンテキスト
- バージョン:「Laravel 12.x」または「Laravel 13.x」
- 依存関係:Sanctum、Horizon、Telescope などのパッケージを記載する
- 使用中のパターン:「Form Requests を使用」「Horizon でジョブを実行」「API リソースを使用」
- 実行環境:Sail を使うか、ホストのコマンドを使うかを明記する
モノレポプロジェクト
- 対象のアプリを指定する:「
apps/apiで作業しています」または「apps/adminで作業しています」 - 関連する場合は共有パッケージを記載する:「共有の
packages/commonを使用しています」
問題の説明
エラー
BAD: "Getting an error with users"
GOOD: "Getting error when creating user:
Illuminate\Database\QueryException: SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry
In UserController@store, line 45:
$user = User::create($request->validated());
Using Laravel 13.x with MySQL 8.0"
スタックトレース
スタックトレース全体を含め、特に以下を示します。
- 例外クラスとメッセージ
- ファイルパスと行番号
- エラーに至ったメソッドの呼び出し順序
再現手順
1. POST to /api/users with email that exists
2. Validation passes (should catch this)
3. Database throws constraint violation
あいまいな説明と具体的な説明
あいまいな説明
「ユーザーフォームにバリデーションを追加する」
具体的な説明
「UserStoreRequest にバリデーションを追加する:
- Email は users テーブル内で一意であること
- Password は 12 文字以上で、大文字と数字を必須とする
- Name は必須で、最大 255 文字とする
- Phone フィールドは任意とし、E.164 形式に一致すること」
あいまいな説明
「支払いに対応する必要があります」
具体的な説明
「Stripe の支払い処理を実装する:
- charge() メソッドを持つ PaymentService を作成する
- payments テーブルに支払い記録を保存する(user_id、amount、stripe_id、status)
- ProcessPaymentJob をキューにディスパッチする
- payment.succeeded のウェブフックを処理する
- Laravel 13.x と Cashier を使用する」
簡単なチェックリスト
プロンプトを送る前に、以下を確認してください。
- Laravel のバージョンと関連パッケージを記載した
- ファイルパスまたはディレクトリのコンテキストを含めた
- デバッグの場合、エラーメッセージとスタックトレースを共有した
- バリデーションルール、リレーションシップ、またはビジネスロジックを指定した
- Sail を使うか、ホストのコマンドを使うかを明記した
- モノレポの場合、対象のアプリを特定した
コンテキストが多いほど、より良い結果が得られます。迷ったときは、情報を含めてください。
コメント
Markdown 対応