# Refactor Candidates

After TDD cycle, look for:

- **Duplication** — Extract function/class
- **Long methods** — Break into private helpers (keep tests on public interface)
- **Shallow modules** — Combine or deepen
- **Feature envy** — Move logic to where data lives
- **Primitive obsession** — Introduce value objects
- **Existing code** the new code reveals as problematic
