# リファクタリング方針 (Refactoring Policy)

## 判断基準 (When to Refactor)

以下に該当する場合にリファクタリングを検討する．

- 同じ処理が 3 箇所以上に重複している
- 1 つの関数が複数の責務を持っている
- 関数の引数が 5 つ以上になっている
- テストが書きにくい構造になっている

## 実施タイミング (Timing)

- 機能実装の完了後（`/implement` の Phase 3）に行う
- 機能追加とリファクタリングは同一コミットに混ぜない

## 方針 (Approach)

- テストが通っている状態を維持しながら変更する
- 外部から見た振る舞い（入出力）を変えない
- 変更前にテストを実行し，変更後にも同じテストが通ることを確認する

## やらないこと (Out of Scope)

- 動いているコードの「見た目だけ」の書き換え（Ruff が自動で対応する範囲）
- 将来の要件を見越した過度な抽象化
- 使われていないコードの温存（不要なら削除する）
