Thariq Shihipar names a symmetric failure in how people instruct agents: over-specify, and “Claude follows instructions even when pivoting would be better” — the precision itself becomes a cage once reality diverges from what you specified. Under-specify, and the agent fills the gap with “assumptions based on industry best practices that may not fit your task” — reasonable defaults for a generic case, wrong for yours. His diagnosis: “when you don’t account for your unknowns, you fail both ways. You don’t know when the path will be filled with obstacles, and you don’t know when the path will be clear, but you still want Claude to veer.” Neither more detail nor less detail is the fix — the fix is knowing which of your own unknowns the current instruction is silently assuming away.
This sharpens Declarative beats imperative when working with agents rather than contradicting it: giving success criteria over step-by-step instructions is the right default, but “declarative” isn’t automatically well-calibrated — a declarative spec can still be over- or under-specified relative to what you actually know versus don’t know. The real lever is Reducing your unknowns is the trainable skill of agentic coding — and the agent itself is how you train it: the amount of detail an instruction needs isn’t a fixed property of good prompting, it’s a function of how well you’ve already located your own unknowns before you write it.