mcpField
C
code-refactor

code-refactor

github.com/laurigates開発5972 回インストール1 日前に更新
リポジトリ

code-refactor について

code-refactorは、指定したファイルやディレクトリのリファクタリングをagents-plugin:refactorエージェントに委任するスキルです。関数型プログラミングの原則に沿った改善を行い、動作と外部API契約の維持を求めます。

主な機能

  1. 01対象パスの作業を専用エージェントに委任
  2. 02副作用、可変状態、深いネストを特定
  3. 03純粋関数、不変変換、合成を適用
  4. 04既存動作と外部APIを維持
  5. 05既存テストの通過を要件化

活用シーン

  1. 01ビジネスロジックとI/Oを分離
  2. 02状態や引数の直接変更を減らす
  3. 03命令型ループを高階関数に置き換える
  4. 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 で使用し、指定されたコードをリファクタリングしてください。コンテキストで収集したすべての情報をエージェントに渡してください。

リファクタリングエージェントは次の作業を行います。

  1. リファクタリングの機会を特定する — 次の関数型プログラミングのコードの臭いを探します。

    • 計算関数内に副作用(変更、I/O、ログ出力)が混在している
    • パラメーターや外部状態がその場で変更されている
    • map、filter、reduce、flatMap に置き換えられる命令型ループ(for、while)
    • 複数の関数から共有された可変状態にアクセスしている
    • 早期リターンやガード節で意図を明確にできる深いネスト
    • 呼び出し箇所でビジネスロジックが I/O と絡み合っている
    • 変換ロジックが重複している
  2. 関数型プログラミングの原則を適用する:

    • 純粋関数:副作用のない関数に計算を切り出します。同じ入力には常に同じ出力を返します。
    • 不変性:その場での変更を、データ変換(spread、map、Object.assign、構造的コピー)に置き換えます。
    • 合成:複雑な動作を、小さく、焦点を絞った単一目的の関数で構成します。
    • 高階関数:命令型ループを map、filter、reduce、flatMap、find に置き換えます。
    • 明示的な副作用:I/O、ログ出力、変更は最外部の境界に移し、内部の関数は純粋に保ちます。
    • 早期リターン/ガード節:前提条件を先頭で検証し、早期にリターンして深いネストを避けます。
    • DRY/KISS:重複をなくし、機能する最もシンプルな形を優先します。
  3. 機能を維持する:

    • 既存のテストがすべて通ることを確認します。
    • 外部 API の契約を維持します。
    • 動作を変更しません。
  4. リファクタリング後のコードを、明確な構成で出力する

エージェントには次の情報を渡してください。

  • 対象のファイルまたはディレクトリのパス
  • 検出されたプログラミング言語
  • プロジェクトにあるスタイルガイドの例

エージェントは次の分野に精通しています。

  • 動作を維持するコード変換
  • 関数型リファクタリングのパターン
  • コードの臭いの検出と修正
  • 類似パターンのセマンティックコード検索

関連スキル

  • リファクタリング前に複雑度の指標が必要な場合 → /code:complexity
  • 重複したコードを統合する場合 → /code:dry-consolidation
  • リントの標準が設定されていない場合 → /configure:linting

コメント