refactor-code について
refactor-codeは、動作を変えずにコードの可読性と保守性を高める開発スキルです。テストと既存の実装パターンを確認し、小さな変更を重ねてリファクタリングします。
主な機能
- 01動作と公開APIの維持
- 02既存の類似実装に準拠
- 03関数分割と制御フローの整理
- 04重複と不要コードの削除
- 05型の絞り込みと定数の抽出
- 06変更ごとのテスト実行
活用シーン
- 01長大で理解しにくい関数の整理
- 02重複コードや複雑な条件分岐の改善
- 03any型の置き換えと型境界の改善
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill refactor-codeインストール後、Claude Code で/refactor-codeを入力して読み込まれたか確認します。
同梱ファイルplugin.json
詳細
コードのリファクタリング
動作を変えずに、可読性、凝集度、保守性を向上させます。
リファクタリングのカテゴリ(/refactor code)におけるcodeエンジンです。型アーキテクチャの作業には
typescript-expert(そのreferences/rules/ライブラリ)を、コンポーネント
アーキテクチャにはreact-refactorを活用します。機械的なAIスロップの除去にはdeslopを、読み取り専用の構造
レビューにはstructural-reviewを使用します。
トリガー
- 関数が50行を超える
- ファイルが300行を超える
- 重複コード(3箇所以上)
- 複雑な条件分岐(ネストが3階層を超える)
any型- テストや理解が難しい
- 曖昧な命名や責務の混在
- 不要な抽象化、不要なコード、誤解を招くコメント
手順
1. まず動作を固定する
- 編集する前に既存のテストを読む
- 動作が不明な場合は、現在の呼び出し元と実行時の経路から動作を把握する
- API の変更を明示的に求められていない限り、公開コントラクトを維持する
2. コードベース内のパターンを調べる
コードベースから類似した実装を3つ以上見つけます。命名、エラー処理、ファイル構成、テストのスタイルを合わせます。新しい抽象化を導入する前に、既存のヘルパーを再利用します。
3. 明確さを重視してリファクタリングする
小さく段階的に、変更は一度に1つずつ行います。次の順に優先します。
- より適切な名前を付ける
- 関数を小さく、焦点を絞ったものにする(長いメソッドをヘルパーに切り出す)
- 制御フローを明確にする
- 重複を取り除く
- 不要なコードと誤解を招くコメントを取り除く
- 型とインターフェースを絞り込む(
anyを適切な型に置き換える) - 定数を切り出す(マジックナンバーや文字列を置き換える)
- サービス/コンポーネントを切り出す(ビジネスロジックをコントローラーから移動し、大きなコンポーネントを分割する)
4. 過剰な設計を避ける
- 流行しているという理由だけでパターンを導入しない
- 巧妙な間接化より、わかりやすいコードを優先する
- 実際の重複や混乱を減らせる場合に限り、抽象化を切り出す
5. 変更のたびにテストを実行する
bun run test <specific-test-file>
ヒューリスティック
- 1つの関数は1つの役割を担う
- 名前は実装の細部ではなく、意図を説明する
- コメントは、コードですでに示されている内容の繰り返しではなく、理由を説明する
- 条件分岐は、頭の中で前後を行き来せずに上から下へ読めるようにする
- 共通ロジックは1箇所にまとめる。ただし、読みにくい抽象化を招く場合は避ける
危険信号(作業を止めて再検討する)
data、item、temp、helper、utilのような汎用的な名前- 関数の意味を変えるブール値パラメーター
- 取得、変換、レンダリングをすべて行う関数
- 検証ロジックやマッピングロジックの重複
- 不確実さを覆い隠すコメントアウトされたコードやTODO
- リファクタリング中の動作変更
- テストの失敗
- 公開APIの変更が必要
- コードの動作が不明
チェックリスト
開始前:
- すべてのテストが成功している
- コードの動作を理解している
- 参考にできる実装パターンがある
- 現在の作業コードをコミットしている
作業中:
- 変更は一度に1つ
- 変更のたびにテストを実行する
- 公開APIを維持する
- 何をしたかだけでなく、理由を記録する
完了後:
- すべてのテストが引き続き成功する
- 動作に変更がない
- コードの可読性が向上している
- パフォーマンスが同等以上である
コメント
Markdown 対応