Summary
リファクタリング(構造・境界・契約の再設計を含む)の要否と進め方を、変更容易性を高める方向で判断するスキル。ローカル開発完了後に「リファクタリングして」「整理して」「きれいにして」と言われたとき、コードが理解・保守しにくいとき、Code Smell への対処が必要なときに使用する。境界の引き方・責務配置の詳細判断は…
efoo-team/skills
リファクタリング(構造・境界・契約の再設計を含む)の要否と進め方を、変更容易性を高める方向で判断するスキル。ローカル開発完了後に「リファクタリングして」「整理して」「きれいにして」と言われたとき、コードが理解・保守しにくいとき、Code Smell への対処が?
npx skills add efoo-team/skills --skill refactor-mindset
リファクタリング(構造・境界・契約の再設計を含む)の要否と進め方を、変更容易性を高める方向で判断するスキル。ローカル開発完了後に「リファクタリングして」「整理して」「きれいにして」と言われたとき、コードが理解・保守しにくいとき、Code Smell への対処が必要なときに使用する。境界の引き方・責務配置の詳細判断は…
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Surgical code refactoring to improve maintainability without changing behavior. Covers extracti…
21.6K installsCreate a concrete plan before starting a multi-file refactor. Use when the user asks to plan, s…
12.9K installsReview and refactor code in your project according to defined instructions
11K installsRefactor given method `${input:methodName}` to reduce its cognitive complexity to `${input:comp…
10K installsRefactoring using Extract Methods in Java Language
9.3K installsRefactoring using Remove Parameter in Java Language
8.9K installsOther skills from efoo-team/skills · top by installs.
npx skills add efoo-team/skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
10,096 B
SUMMARY.md
512 B
構造と意図の整合をとり、変更容易性(changeability)を高める。 リファクタリングの目的は、将来の変更コストを下げること。それ以外にない。
詳細なコーディングルールではなく、「まともなエンジニアなら理解している良いコードとは何か」にフォーカスする。
このスキルの対象は、開発完了後でまだステージング・プロダクションに反映されていないコードである。 外部への影響を気にせず、構造をあるべき姿に大胆に合わせられる。
リファクタリングは以下の2つの次元で行われる。両方を意識して行う。
コードの読みやすさ・書きやすさを改善する行為。外部から観測できる振る舞いは変えない。
責務・境界・契約・依存関係を見直し、変更容易性を高める行為。 旧来はリファクタリングと区別されていたが、AIの認知範囲と実行能力を前提に本スキルに含める。
目的は、目の前のタスクに局所最適化された構造を壊し、将来の変更を見据えた構造へ再設計することにある。
AIは現在のタスクに引っ張られて局所最適なコードを作りやすい。 構造・契約・境界・データ設計を見直し、将来の変更コストを下げる方向に補正することを重視する。
以下の原則は「人間」が主体で設計・コーディングしていた旧来の考え方である。 人間を上回る認知範囲と実行手数を持つAIが自律的にコードを改善する上では、これらは適用しない。
構造を観察し、不適切なら大きく変える
些細なロジック修正や見た目の変更の際は適用不要。 変更の関連範囲を十分に調査した上で、構造・状態・境界に問題があれば根本から正す。
中途半端を避ける
ファイル分割や、責務移譲、分離、そのほかリファクタリングに伴いルール・規約が変更されうる場合は、 必ずこのプロジェクト全体を一度精査すること。 新しいルールや規約変更が統一を持って全体最適されることを目指す。
中途半端な変更によって例外が増える変更は避ける。 逆にやる時は一気にやる。AI前提では大規模な変更であっても一貫性が保たれるのであれば広範囲に実施すべき。
関連変更を漏らさない
変更に関連する部分を十分に調査し、網羅的に扱う。 一部だけ改善して他を放置すると、かえって一貫性が損なわれる。
1. 理解
コードの内容を読み、何をしているかを把握する
2. 観測
「観測シグナル」セクションの各観点でコードを評価する
3. 仮説立案
観測した兆候に対して「何が問題か」の仮説を立てる
兆候の検知 → 即修正は禁止
4. 検証
呼び出し元・依存関係で仮説を検証する
5. 処方
仮説が正しければ適切な変更を選択する
1. 目的の理解
変更の目的・意図・範囲を理解する
2. 構造の観察
責務、境界、依存方向、契約の形状、データ構造、命名を洗い出す
3. 境界デザイン
機能境界・責務分離・モジュール分割を判断する
→ module-boundary-design スキルを必ず参照すること
4. 再構築
観察結果に基づき構造を再整理・構築する
中途半端にせず、関連範囲を一貫して変更する
観測シグナルの「対応原理」列が参照する、良い構造の普遍ルール。一般論の展開ではなく判断の軸として使う。
判断原理の具体的な現れ方。兆候を検知したら、まず対応する原理に照らして仮説を立てる。 検知 → 即修正は禁止。
境界・責務配置に関わるシグナルは module-boundary-design の担当。 責務の混在(1つの関数・クラスが複数の理由で変更される)、変更の広範囲への波及、他モジュール内部構造への直接依存、循環参照、Manager / Handler / Processor などの汎用名、同じ名詞が文脈で意味を変える(Bounded Context の混線)、条件分岐が増殖する間違った抽象の共有——これらを検知したら、境界の引き直し・責務配置は module-boundary-design を参照する。本スキルは以降の、リファクタリング実行上のシグナル(重複と過剰抽象、複雑性、意図を表す命名)を扱う。
| シグナル | 何を兆しているか | 対応原理 | 確認すべき質問 |
|---|---|---|---|
| 似た処理が複数箇所にある | 抽象化の未発見、または意図的な分岐 | 抽象化はコストである | 転用可能性は高いか。2箇所以上で実際に使われているか |
| 将来必要になるかもしれない抽象化 | 予測による過剰設計 | 抽象化はコストである | 現在の具体例だけで十分か |
| シグナル | 何を兆しているか | 対応原理 | 確認すべき質問 |
|---|---|---|---|
| 起こり得ない状態への防御コード | 偶有的複雑性の増殖 | 複雑性の管理 | このエラーは実際に起こりうるか |
| 正常系の流れを妨げるtry-catch | 防御的コーディングの過剰 | 複雑性の管理 | 正常系の可読性を損なっていないか |
| 同じ失敗を複数層で処理している | 責務の不明瞭さ | 複雑性の管理 | どの層でこの失敗を扱うべきか |
| エラー型や意味が潰れている | 情報の喪失。呼び出し元が判断できない | 複雑性の管理 | エラーの原因と回復手段が伝わるか |
| シグナル | 何を兆しているか | 対応原理 | 確認すべき質問 |
|---|---|---|---|
| 名前から責務が読み取れない | 意図の欠落 | 意図の明確さ | この名前を見て何をするか分かるか |
| コメントで補足が必要な名前 | 命名の失敗。抽出で表現できないか | 意図の明確さ | 抽出+適切な命名でコメントを不要にできるか |
AIがリファクタリングで犯しやすい誤り。
以下の条件を満たせば完了: