Coding agents struggle with large migrations. A migration produces thousands of diffs, agents apply the same fix five different ways, and nobody can reliably say how much work remains. I migrated a production codebase to Effect by pairing each change with an ast-grep rule that matches the old pattern and a temporary skill that tells an agent how to fix a match.
The list of matches told agents what to work on and told me how much was left. It also divided the work across parallel agents without overlap. But agents could also make a match disappear without fixing it, so I had to write rules that were hard to evade. I’ll show how the rule and skill pair worked on a real migration and what I would change next time.