phoenix-code-review について
phoenix-code-review は、Phoenix アプリケーションをレビューするスキルです。コントローラーやコンテキストなどの確認項目に加え、指摘の根拠と検証要件を定めています。
主な機能
- 01コントローラーとコンテキストの確認
- 02ルーティングと Plug パターンの確認
- 03JSON API の応答とページネーション確認
- 04根拠に基づく指摘の要件
活用シーン
- 01Phoenix のコントローラー変更をレビュー
- 02認可と入力検証の処理を確認
- 03ルーティングとエラー処理のパターンを評価
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ existential-birds/ beagle --skill phoenix-code-reviewインストール後、Claude Code で/phoenix-code-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/contexts.mdcontrollers.mdplugs.mdrouting.md詳細
Phoenix コードレビュー
クイックリファレンス
| 問題の種類 | リファレンス |
|---|---|
| 境界づけられたコンテキスト、Ecto との統合 | references/contexts.md |
| アクション、パラメーター、エラー処理 | references/controllers.md |
| パイプライン、スコープ、検証済みルート | references/routing.md |
| カスタム Plug、認証 | references/plugs.md |
レビューチェックリスト
コントローラー
- ビジネスロジックはコントローラーではなくコンテキストに配置する
- コントローラーが適切な HTTP ステータスコードを返す
- アクションの節が想定されるすべてのパターンを処理する
- フォールバックコントローラーがエラーを一貫して処理する
コンテキスト
- コンテキストは技術レイヤーではなく、ドメインによって境界づけられている
- 公開関数には、ドメインに焦点を当てた明確な名前が付いている
- Changeset がすべてのユーザー入力を検証する
- コントローラーに Ecto クエリがない
ルーティング
- 文字列パスではなく、検証済みルート(~p シジル)を使用する
- 関連する Plug をパイプラインでグループ化する
- リソースでは必要なアクションのみを使用する
- 関連するルートをスコープでグループ化する
Plug
- 認証/認可に Plug を使用する
- Plug は組み合わせ可能で、単一の目的を持つ
- Plug 内でレスポンスを送信した後に halt を呼び出す
JSON API
- 適切なコンテンツネゴシエーション
- 一貫したエラーレスポンス形式
- リストエンドポイントにページネーションを設定する
有効なパターン(指摘しないでください)
- 複数のコンテキストを呼び出すコントローラー — オーケストレーションとして有効です
- コンテキスト内のインライン Ecto クエリ — コンテキストが自身のデータアクセスを管理します
action_fallbackの使用 — エラー処理を一元化するパターンです- ルートごとの複数のパイプライン — 意図的な組み合わせです
- send を伴わない
Plug.Conn.halt/1— フォールバックで処理される場合があります
コンテキスト依存のルール
| 問題 | 次の場合にのみ指摘 |
|---|---|
| Changeset の検証不足 | フィールドがユーザー入力を受け付け、検証が存在しない場合 |
| コントローラーが大きすぎる | アクションが 7 個を超える、またはアクションが 20 行を超える場合 |
| 認可の不足 | ルートが公開されておらず、パイプラインに認証 Plug がない場合 |
ゲート(順番に実行し、各ステップに合格条件があります)
- 根拠の確認 — 指摘候補ごとにソースを開き、その読み取りからファイルパス + 行番号を記録します(記憶や差分の抜粋だけに頼らないでください)。合格条件: 各指摘に、実際に開いた
path:lineが記載されていること。 - 「別の場所で処理済み」の確認 — 「検証不足」「認証不足」「不適切なステータス」を報告する前に、ルーター(パイプライン/スコープ)、コントローラー(
action_fallback、plug)、および関連するコンテキストを検索し、既存のチェックを確認します。合格条件: 別の場所に処理があるかどうか(ある場合は場所も、ない場合は検索後にないこと)を記録していること。 - 検証プロトコル — 問題の種類に応じて review-verification-protocol を読み込み、適用します。合格条件: 指摘を書く前に、その指摘の種類に対するスキルの報告前チェックを満たしていること。
- 指摘の形式 — 各問題を
[FILE:LINE] ISSUE_TITLEの形式で出力し、引用したコードに結びつく理由を1行で記載します。合格条件: すべての行がこの形式に一致していること。
指摘を提出する前に
上記のゲートに合格するまで、報告しないでください。誤検出を防ぐための手順については、review-verification-protocol に従ってください。
コメント
Markdown 対応