code-refactor について
code-refactorは、指定したファイルやディレクトリのリファクタリングをagents-plugin:refactorエージェントに委任するスキルです。関数型プログラミングの原則に沿った改善を行い、動作と外部API契約の維持を求めます。
主な機能
- 01対象パスの作業を専用エージェントに委任
- 02副作用、可変状態、深いネストを特定
- 03純粋関数、不変変換、合成を適用
- 04既存動作と外部APIを維持
- 05既存テストの通過を要件化
活用シーン
- 01ビジネスロジックとI/Oを分離
- 02状態や引数の直接変更を減らす
- 03命令型ループを高階関数に置き換える
- 04深いネストを減らして意図を明確化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill code-refactorインストール後、Claude Code で/code-refactorを入力して読み込まれたか確認します。
詳細
このスキルを使用する場面
| 次のような場合にこのスキルを使用してください… | 次のような場合は別のものを使用してください… |
|---|---|
| ファイルやディレクトリ内で、副作用とビジネスロジックが混在している | ファイル間でコードの重複を解消する場合 → /code:dry-consolidation |
| 関数が状態やパラメーターを変更している | コードの臭いを修正せずに検出する場合 → /code:antipatterns |
| ビジネスロジックが I/O やログ出力と絡み合っている | 全体的な品質とアーキテクチャをレビューする場合 → /code:review |
| 命令型ループを map/filter/reduce に置き換えられる | 10 個以上のファイルにまたがる大規模な複数フェーズのリファクタリングを行う場合 → /workflow:checkpoint-refactor |
| 深いネストによって意図が分かりにくくなっている |
コンテキスト
- 対象パス:!
echo "$1"
パラメーター
$1:リファクタリングするファイルまたはディレクトリの必須パス
作業内容
この作業を agents-plugin:refactor エージェントに委任してください。
Agent ツールを subagent_type: agents-plugin:refactor で使用し、指定されたコードをリファクタリングしてください。コンテキストで収集したすべての情報をエージェントに渡してください。
リファクタリングエージェントは次の作業を行います。
-
リファクタリングの機会を特定する — 次の関数型プログラミングのコードの臭いを探します。
- 計算関数内に副作用(変更、I/O、ログ出力)が混在している
- パラメーターや外部状態がその場で変更されている
map、filter、reduce、flatMapに置き換えられる命令型ループ(for、while)- 複数の関数から共有された可変状態にアクセスしている
- 早期リターンやガード節で意図を明確にできる深いネスト
- 呼び出し箇所でビジネスロジックが I/O と絡み合っている
- 変換ロジックが重複している
-
関数型プログラミングの原則を適用する:
- 純粋関数:副作用のない関数に計算を切り出します。同じ入力には常に同じ出力を返します。
- 不変性:その場での変更を、データ変換(
spread、map、Object.assign、構造的コピー)に置き換えます。 - 合成:複雑な動作を、小さく、焦点を絞った単一目的の関数で構成します。
- 高階関数:命令型ループを
map、filter、reduce、flatMap、findに置き換えます。 - 明示的な副作用:I/O、ログ出力、変更は最外部の境界に移し、内部の関数は純粋に保ちます。
- 早期リターン/ガード節:前提条件を先頭で検証し、早期にリターンして深いネストを避けます。
- DRY/KISS:重複をなくし、機能する最もシンプルな形を優先します。
-
機能を維持する:
- 既存のテストがすべて通ることを確認します。
- 外部 API の契約を維持します。
- 動作を変更しません。
-
リファクタリング後のコードを、明確な構成で出力する
エージェントには次の情報を渡してください。
- 対象のファイルまたはディレクトリのパス
- 検出されたプログラミング言語
- プロジェクトにあるスタイルガイドの例
エージェントは次の分野に精通しています。
- 動作を維持するコード変換
- 関数型リファクタリングのパターン
- コードの臭いの検出と修正
- 類似パターンのセマンティックコード検索
関連スキル
- リファクタリング前に複雑度の指標が必要な場合 →
/code:complexity - 重複したコードを統合する場合 →
/code:dry-consolidation - リントの標準が設定されていない場合 →
/configure:linting
コメント
Markdown 対応