[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"post-\u002Fblog\u002Fagents-as-collaborators":3},{"id":4,"title":5,"body":6,"date":103,"description":104,"extension":105,"meta":106,"navigation":107,"path":108,"seo":109,"stem":110,"tags":111,"__hash__":115},"posts\u002Fblog\u002Fagents-as-collaborators.md","Agents as collaborators, not autocomplete",{"type":7,"value":8,"toc":97},"minimark",[9,13,25,30,33,56,60,63,74,77,83,90,94],[10,11,12],"p",{},"For about a year I treated coding agents like a fancier autocomplete —\ntype a comment, get a function, glance at it, accept. It was fine. It\nwasn't transformative.",[10,14,15,16,20,21,24],{},"The shift came when I stopped writing prompts ",[17,18,19],"em",{},"at"," the agent and\nstarted writing prompts ",[17,22,23],{},"to"," it.",[26,27,29],"h2",{"id":28},"what-changed","What changed",[10,31,32],{},"Three small things:",[34,35,36,44,50],"ul",{},[37,38,39,43],"li",{},[40,41,42],"strong",{},"Brief like a colleague."," Why does this matter, what have I tried,\nwhat am I worried about. Terse imperatives produce shallow work.",[37,45,46,49],{},[40,47,48],{},"Hand over context, not instructions."," A good prompt proves I\nunderstood the problem. The agent fills in the work, not the thinking.",[37,51,52,55],{},[40,53,54],{},"Trust, then verify the diff."," \"Done\" from the agent means\n\"intended to do\" — never \"actually did.\"",[26,57,59],{"id":58},"a-small-example","A small example",[10,61,62],{},"I had a flaky test in a Go service. Old me would have written:",[64,65,70],"pre",{"className":66,"code":68,"language":69},[67],"language-text","Fix the flaky test in payments_test.go\n","text",[71,72,68],"code",{"__ignoreMap":73},"",[10,75,76],{},"Now I'd write something like:",[64,78,81],{"className":79,"code":80,"language":69},[67],"Fix the flake in TestRefundIdempotency. Context: it's racy on the\nledger write — two goroutines compete for the same row and the\ntest asserts a specific ordering. I want the test to assert\nthe invariant (one row exists with the final state), not the\nordering. Fix the test, not the production code.\n",[71,82,80],{"__ignoreMap":73},[10,84,85,86,89],{},"The second version doesn't take longer to write. It just front-loads\nthe thinking that I'd otherwise do ",[17,87,88],{},"after"," reading the agent's first\nattempt.",[26,91,93],{"id":92},"the-trade","The trade",[10,95,96],{},"Briefer prompts feel faster, but you pay later — re-reading bad output,\nre-prompting, undoing. Investing 30 seconds in the prompt saves 5\nminutes of cleanup. Compounds across a day.",{"title":73,"searchDepth":98,"depth":98,"links":99},2,[100,101,102],{"id":28,"depth":98,"text":29},{"id":58,"depth":98,"text":59},{"id":92,"depth":98,"text":93},"2026-04-22","The mental shift that changed how I work with Claude Code.","md",{},true,"\u002Fblog\u002Fagents-as-collaborators",{"title":5,"description":104},"blog\u002Fagents-as-collaborators",[112,113,114],"ai","workflow","claude-code","It6-J35rZ3GBOWn8rmy8J2MUaqeXTalbH7so-HAannk",1777388215005]