This looks awesome, but please help me understand how does Gammacode actually decide what to fix automatically? Like, is it rule-based or does the agent reason about code context? 🤔