simplify について
simplifyは、変更ファイルを確認する開発者向けのコードレビュー・整理スキルです。3つのエージェントで再利用性、品質、効率を並行して調べ、見つかった問題の修正を促します。
主な機能
- 01git diffによる変更ファイルの特定
- 023つのレビューエージェントの並列実行
- 03再利用性・品質・効率の確認
- 04レビュー結果の問題修正
活用シーン
- 01マージ前の最近のコード変更確認
- 02重複ヘルパーやインライン処理の発見
- 03効率やメモリ上の問題の点検
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ factory-ai/ factory-plugins --skill simplifyインストール後、Claude Code で/simplifyを入力して読み込まれたか確認します。
詳細
Simplify:コードレビューとクリーンアップ
変更されたすべてのファイルを再利用性、品質、効率性の観点からレビューし、見つかった問題を修正します。
フェーズ 1:変更内容の特定
git diff(ステージされた変更がある場合は git diff HEAD)を実行して、変更内容を確認します。Git に変更がない場合は、ユーザーが言及したファイル、またはこの会話で以前に編集したファイルのうち、最も最近変更されたものをレビューします。
フェーズ 2:3 つのレビュージェントを並行して起動する
Task ツールを使って、1 回のメッセージで 3 つすべてのエージェントを同時に起動します。各エージェントには、完全なコンテキストを把握できるよう、差分全体を渡します。
エージェント 1:コード再利用レビュー
変更ごとに、次の点を確認します。
- 既存のユーティリティやヘルパーを探し、新たに書いたコードの代わりに使えるものがないか確認します。 コードベース内で類似のパターンを探します。よくある場所は、ユーティリティディレクトリ、共有モジュール、変更したファイルの隣にあるファイルです。
- 既存の機能と重複する新しい関数があれば指摘します。 代わりに使用する既存の関数を提案します。
- 既存のユーティリティを使えるインラインロジックがあれば指摘します。 手書きの文字列操作、手動のパス処理、独自の環境チェック、その場しのぎの型ガードなどがよくある候補です。
エージェント 2:コード品質レビュー
同じ変更について、場当たり的なパターンがないか確認します。
- 冗長な状態:既存の状態と重複する状態、導出できるキャッシュ値、直接呼び出しに置き換えられるオブザーバーやエフェクト
- パラメーターの肥大化:既存の関数を一般化または再構成する代わりに、新しいパラメーターを追加している箇所
- わずかな違いのあるコピー&ペースト:共通の抽象化にまとめるべき、ほぼ重複したコードブロック
- 抽象化の漏れ:カプセル化すべき内部詳細の公開や、既存の抽象化境界の破壊
- 文字列に依存したコード:コードベースに定数、列挙型(文字列ユニオン)、ブランド型がすでにあるのに、生の文字列を使用している箇所
- 不要な JSX のネスト:レイアウト上の効果がないラッパーの Box や要素。内側のコンポーネントの props(flexShrink、alignItems など)で必要な動作を実現できないか確認します。
エージェント 3:効率性レビュー
同じ変更について、効率性を確認します。
- 不要な処理:冗長な計算、繰り返されるファイル読み込み、重複するネットワーク/API 呼び出し、N+1 パターン
- 並行処理の見落とし:独立した処理が、並行して実行できるのに順次実行されている箇所
- ホットパスの肥大化:起動時やリクエスト/レンダリングごとのホットパスに追加された、新しいブロッキング処理
- 繰り返し発生する実質的な無操作の更新:ポーリングループ、インターバル、またはイベントハンドラー内で、変更がない場合も無条件に実行される状態/ストアの更新。下流のコンシューマーへの通知を防ぐため、変更検出ガードを追加します。また、アップデーター/リデューサーコールバックを受け取るラッパー関数が、同じ参照を返すケース(または他の「変更なし」のシグナル)を適切に処理するかも確認します。そうでない場合、呼び出し側の早期リターンによる無操作は、何も変わらずに無効化されてしまいます。
- 不要な存在確認:処理の前にファイル/リソースの存在を確認すること(TOCTOU アンチパターン)。直接処理を実行し、エラーに対処します。
- メモリ:上限のないデータ構造、不足しているクリーンアップ、イベントリスナーのリーク
- 範囲が広すぎる処理:一部だけ必要なのにファイル全体を読み込むこと、1 件を絞り込むのにすべての項目を読み込むこと
フェーズ 3:問題の修正
3 つのエージェントがすべて完了するまで待ちます。結果をまとめ、それぞれの問題を直接修正します。誤検知や対応する価値がない指摘は、その旨を記録して次に進みます。指摘に反論してはいけません。単に対応を見送ります。
完了したら、修正内容を簡潔に要約します(または、コードに問題がなかったことを確認します)。
コメント
Markdown 対応