Thariq Shihipar, an engineer at Anthropic, described a specific failure pattern for coding-agent projects on X: the gap between a spec and the actual codebase is where unknowns live, and every unknown the agent hits mid-project forces it to fill the gap with a guess. That guess becomes a design decision nobody explicitly reviewed.
Per Shihipar’s argument, unknowns do not stay isolated. The further into a build, the more decisions already rest on earlier guesses, and each new unknown has to reconcile with a stack of unreviewed assumptions rather than a clean spec. By the time a human notices the drift, fixing it means unwinding shipped work, not editing a document.
His proposed fix is procedural, not technical: run Claude over the project specifically to surface unknowns before writing any code, rather than to produce a plan. A planning pass asks what the steps are. A discovery pass asks what is not yet known that a step will force a decision on.
This maps directly onto spec-first workflows already common with coding agents. A spec describes intended behavior. It rarely enumerates its own gaps, because the human author usually does not know what was left out until implementation forces the question. Having a model read the spec against the codebase, its dependencies, and its constraints, then report back an explicit list of open questions, turns implicit gaps into a checklist before any code depends on how they get resolved.
The economics make the case. An unknown caught in a discovery pass costs one conversation. The same unknown caught mid-build costs that conversation plus the code already written against the wrong assumption, plus tests that pass against behavior nobody wanted, plus the review cycle needed to catch the drift after the fact. Cost does not scale with time; it scales with how much gets built on top of an unresolved guess.
A 90-day practice: before any project above a size threshold (a new service, a schema migration, a cross-team integration) moves from spec to task breakdown, run a dedicated Claude pass whose only output is a list of unknowns: undocumented behaviors, ambiguous requirements, unclear ownership, edge cases the spec never addressed. Route that list to a human for resolution before any tasks get assigned. Track, over the quarter, how many pre-surfaced unknowns would otherwise have shown up as mid-build rework, review friction, or a “wait, what should happen here” question three weeks in. That count is the practice’s return, and it is measurable within one quarter without changing how the team already plans or ships.
The habit this replaces is starting to build the moment a spec looks plausible. A spec that reads as complete and a spec that has been checked for its own gaps are different documents. Only the second one is safe to hand to a system that will fill silence with its best guess.
Teams running coding agents against any spec should treat a discovery pass as a required gate before task breakdown, not an optional step, because the cost of an unknown only rises the longer it goes undiscovered.
Thariq Shihipar, an Anthropic engineer, writing on X in July 2026.