refactor について
`refactor:code-simplifier` エージェントを通じて自動リファクタリングを行うコマンドスキルです。パス、セマンティック検索、最近の変更から対象を決め、依存物や生成ファイルを除外して変更内容をまとめます。
主な機能
- 01パスまたはセマンティック検索で範囲を決定
- 02引数がない場合は最近の変更を対象にする
- 03依存物と生成アーティファクトを除外
- 04アグレッシブモードでコード簡素化エージェントを起動
- 05変更を要約しテストを提案
活用シーン
- 01指定したファイルやディレクトリのリファクタリング
- 02意味的な条件に合うコードの検索
- 03最近変更されたコードファイルのリファクタリング
- 04自動変更の範囲と要約の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fradser/ dotclaude --skill refactorインストール後、Claude Code で/refactorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/agent-configuration.mdoutput-requirements.mdscope-determination.md詳細
リファクタリングコマンド
refactor:code-simplifier エージェントを使用して、$ARGUMENTS の自動リファクタリングを実行します。
操作前の確認
目標:エージェントを起動する前に、対象範囲が確実に決まるようにします。
操作:
git rev-parse --is-inside-work-treeを実行します。明示的なパスが指定されている場合は、結果が false でも続行します- 引数の前後の空白を削除して整え、引用符で囲まれたパスの部分はそのまま保持します
- 引数リストが空の場合は、「最近の変更」モードとして扱います
フェーズ 1:対象範囲の決定
目標:引数またはセッションのコンテキストに基づいて、リファクタリング対象のファイルを特定します。
操作:
- 引数が指定されている場合:Glob を使用して、ファイルまたはディレクトリのパスとして検証します
- パスが存在する場合:それらをリファクタリング対象として直接使用します
- パスが存在しない場合:引数を意味検索クエリとして扱い、Grep でコードベースを検索します
- 引数がない場合:
git diff --name-onlyを実行して、最近変更されたコードファイルを探します - 最近の変更が見つからない場合:ユーザーに通知し、リファクタリングを行わずに終了します
重要:リファクタリング対象には、node_modules/、.git/、dist/、build/、ロックファイル、コンパイル済みアーティファクトを絶対に含めないでください。除外を徹底するには、Grep の --glob 除外を使用します。
検索方法と特殊なケースについては、references/scope-determination.md を参照してください。
フェーズ 2:リファクタリングエージェントの起動
目標:アグレッシブモードを有効にして、refactor:code-simplifier エージェントを実行します。
操作:
- 対象範囲とアグレッシブモードのフラグを指定して、
refactor:code-simplifierエージェントを起動します - 対象範囲の決定方法(パス、意味検索クエリ、またはセッションのコンテキスト)を渡します
- エージェントは
refactor:best-practicesスキルを自動的に読み込み、言語固有のパターンを適用します
Task パラメーターの詳細については、references/agent-configuration.md を参照してください。
フェーズ 3:概要
目標:変更内容の包括的な概要を報告します。
操作:
- リファクタリングしたファイルの合計数と、改善の種類ごとに分類した変更内容を報告します
- 適用したベストプラクティスと削除したレガシーコードを一覧表示します
- 実行を推奨するテストと、実際の対象範囲に合わせたロールバックコマンド(例:
git restore --worktree --staged <files>)を提示します
概要の詳細な形式については、references/output-requirements.md を参照してください。
要件
- ユーザーの確認を求めず、ただちに実行します
- 意味検索で複数の結果が返された場合、一致するファイルをすべてリファクタリングします
- プロジェクト全体を対象とする場合は、ユーザーに
/refactor-projectを案内します - ユーザーが動作の変更を明示的に要求していない限り、動作とパブリックインターフェースを維持します