← Back to Code & Alchemy

Thought Partner, Not Replacement

Using AI well isn't about how much of the work you can hand off. It's about which question you're actually asking it, and whether you're still the one who has to answer for the result.

"Think For Me" vs. "Help Me Find the Gaps"

Every prompt you write is really one of two requests, whether you phrase it that way or not: "think for me" or "help me find the gaps in my thinking." The first hands over judgment and hopes the output is fine. The second keeps you as the architect, using the tool as a builder that works fast but has no idea what you're actually trying to accomplish or why. Same tool, same session, completely different relationship to your own skill. The rest of this is about how to actually live on the second side of that line, day to day, not just agree with it in principle.

The Rubber Duck That Talks Back

Rubber duck debugging works because explaining a problem out loud forces you to organize it, and half the time you spot the bug mid-sentence before the duck says anything back. AI as a thought partner is the same trick with one upgrade: it can actually respond. Explain your approach before you write a line of code. Not "write me a function that does X," but "here's what I'm about to build and why, tell me what's wrong with this plan." You'll catch your own bad assumptions in the explaining, the same way you always did, except now something occasionally answers back with the one you missed.

Ask It to Argue, Not Agree

The default failure mode is asking a question shaped to get a "yes." "This approach makes sense, right?" almost always gets agreement, because that's the easiest coherent response to a leading question. Ask differently: "what's the strongest argument against this approach," or "what would someone who disagrees with this design say." You'll get pushback you can actually evaluate instead of a nod that just confirms what you already believed. If the pushback doesn't land, you've stress-tested the plan for free. If it does land, you just caught something before it shipped instead of after.

The First Answer Is a Draft, Not a Verdict

Treating the first response as the answer is where "thought partner" quietly slides into "replacement." A first draft from a person would get revised, questioned, sent back with notes. Hold the model to the same standard. Read the first answer as a starting position, not a conclusion: what's it assuming, what did it not ask about, where would it break under a case it wasn't given. The model doesn't know your codebase's history, your team's constraints, or the outage two years ago that's the real reason nobody touches that service anymore. You do. That context is exactly the judgment that doesn't transfer, and it's your job to apply it before the draft becomes the commit.

Where Architect and Builder Actually Splits

The architect decides what the building needs to do and why: which tradeoffs matter, which constraints are real, what "done" actually means for this specific problem. The builder executes fast within those constraints. The split breaks down the moment you let the builder decide what the constraints should be, because it will optimize for "looks complete" instead of "solves your actual problem," and those two things only sometimes overlap. You know when this is happening: it's the moment you're about to accept an answer you didn't fully understand because it looked plausible and you were in a hurry. That's the tell. Slow down exactly there.

Practicing the Habit

None of this is a one-time mindset switch, it's a habit you build the same way you built any other engineering discipline: by noticing the shortcut and choosing not to take it, repeatedly, until it's automatic. Explain before you generate. Ask for the counterargument, not the confirmation. Read the first answer as a draft. Know exactly where your judgment is still the load-bearing part. Do that consistently and the tool makes you faster without making you softer, which was the actual goal the whole time, not just producing more output per hour.

← Back to Code & Alchemy