mcpField
E
elixir-code-review

elixir-code-review

github.com/existential-birdsテスト・品質85117 回インストール11 週間前に更新
リポジトリ

elixir-code-review について

elixir-code-reviewは、Elixirコードをレビューするスキルで、スタイル、パターンマッチ、OTP、ドキュメント、セキュリティを扱います。状況に応じたルールと根拠確認により、対応が必要な指摘と問題のない記述を区別します。

主な機能

  1. 01Elixirの命名とコードスタイル確認
  2. 02パターンマッチとエラー処理の確認
  3. 03GenServerとSupervisorのレビュー項目
  4. 04ドキュメントとセキュリティの確認
  5. 05状況別ルールと根拠確認ゲート

活用シーン

  1. 01Elixirのモジュールと関数構成のレビュー
  2. 02with節とパターンマッチの確認
  3. 03GenServerとSupervisorコードの評価
  4. 04ドキュメントとセキュリティ実践の確認

インストール

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

$npx skills add https://github.com/existential-birds/beagle --skill elixir-code-review

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

同梱ファイル

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

references/
code-style.md
documentation.md
otp-basics.md
pattern-matching.md

詳細

Elixir コードレビュー

クイックリファレンス

問題の種類参照先
命名、書式、モジュール構成references/code-style.md
With 節、ガード、分解references/pattern-matching.md
GenServer、Supervisor、Applicationreferences/otp-basics.md
@moduledoc、@doc、@spec、ドクテストreferences/documentation.md

レビューチェックリスト

コードスタイル
  • モジュール名は CamelCase、関数名は snake_case になっている
  • パイプチェーンは関数呼び出しではなく、生データから始まっている
  • プライベート関数はパブリック関数の後にまとめられている
  • 引数のない関数呼び出しに不要な括弧がない
パターンマッチング
  • 適切な場合、条件分岐ではなくパターンマッチングを使用している
  • With 節でエラーケースを処理している
  • 可能な場合、実行時チェックの代わりにガードを使用している
  • 分解は関数本体ではなく関数ヘッドで行っている
OTP の基本
  • GenServer では、負荷の高い初期化処理に handle_continue を使用している
  • Supervisor で適切な再起動戦略を使用している
  • GenServer コールバックにブロッキング呼び出しがない
  • call と cast を適切に使い分けている(同期と非同期)
ドキュメント
  • すべてのパブリック関数に @doc と @spec がある
  • モジュールに目的を説明する @moduledoc がある
  • 適切な場合、純粋関数にドクテストがある
  • 実際にパブリックな関数に @doc false が指定されていない
セキュリティ
  • ユーザー入力に対して String.to_atom/1 を使用していない(to_existing_atom/1 を使用)
  • 信頼できない入力に対して Code.eval_string/1 を使用していない
  • :safe オプションなしで :erlang.binary_to_term/1 を使用していない

有効なパターン(指摘しないこと)

  • パターンマッチ用の空の関数節 - def foo(nil), do: nil は有効なガードです
  • 単一の変換での |> の使用 - 可読性の選択であり、誤りではありません
  • コールバック実装での @doc false - コールバックは behaviour レベルでドキュメント化されています
  • @spec のないプライベート関数 - 内部関数では @spec は任意です
  • Kernel.apply/3 の使用 - モジュールと関数が既知の場合の動的ディスパッチとして有効です

コンテキストに応じたルール

問題次の場合にのみ指摘
@spec がない関数がパブリックで、かつエクスポートされている
汎用的な rescue具体的な例外型を使用できる
ネストした case/cond2 階層を超えている

参照先を読み込むタイミング

  • モジュール名や関数名をレビューする場合 → code-style.md
  • with/case/cond 文をレビューする場合 → pattern-matching.md
  • GenServer/Supervisor のコードをレビューする場合 → otp-basics.md
  • @doc/@moduledoc をレビューする場合 → documentation.md

ゲート — 報告前に実施

レビュー対象の一括処理では、次の手順を順番に実施してください。各ステップを通過するまで、指摘事項を公開しないでください。

  1. プロトコルの読み込み — review-verification-protocol を読み、使用する各指摘カテゴリ(未使用、検証、セキュリティ、パフォーマンスなど)について、そのチェックを適用してください。合格条件: すべての実質的な指摘について、満たしたプロトコルのサブセクションを示せるか、理由を添えて該当なし(純粋なスタイル)と述べられること。
  2. 根拠の明示 — 合格条件: 各指摘に、具体的な箇所(path:line または行範囲)、あるいは Module.function/arity とファイルからの短い引用を含めること。
  3. 成果物による主張の裏付け — 未使用コード、検証の欠落、セキュリティリスクなどの主張について、合格条件: 裏付けとなる成果物(例:検索結果、ファイルを読み取った範囲)を添付するか、確認できていない内容を明記した明確な質問/不確実な項目に格下げすること。

指摘事項を提出する前に

まず「ゲート — 報告前に実施」(上記のセクション)を完了してください。検証プロトコルは、これらのゲートに必須の入力情報です。

コメント