Assess whether a codebase situation warrants refactoring and determine the right approach before any structural changes begin. Use this skill when a develope...