Just One Passing Test

SubSonic is over twenty years old and last built on .NET 3.5. Jon Skeet and I are upgrading it to .NET 10, live, and the procedure transfers to whatever legacy codebase is haunting your shop.
Round two. It builds, so now we want something better: one passing test.
That is the whole goal. One. Everything else is cleanup on the way there.
What happens instead is more interesting than the goal:
- I say "go" to Claude with a full session of context behind it, and it executes the entire agenda at once. Branch, docs, quarantine, test resurrection, all of it. Jon asks the question I did not want asked: how much of that plan did you actually read before you said go?
- Claude claims that deleting one dead
usingdirective turned 2 build errors into 188. Jon does not buy it. So we make Claude prove it, and it builds a three-file minimal repro to defend itself. Watch who ends up being right. - We argue about NUnit vs xUnit, and settle on the boring answer for now.
- We talk about the difference between a process doc and a results doc, and why "who is the audience for this document?" is the question that fixes most bad AI output.
We finish with 46 passing tests, which is 46 times what we asked for.
Techniques in this one: clearing context on purpose mid-session, ending every prompt with "what am I missing?", and letting Claude write its own migration checklist so the process is reusable on your codebase.
SubSonic is over twenty years old and last built on .NET 3.5. Jon Skeet and I are upgrading it to .NET 10, live, and the procedure transfers to whatever legacy codebase is haunting your shop.