Thariq Shihipar names the failure mode behind “the agent did something I didn’t want” precisely: “the plan and prompt and spec that I have in my mind is the map… but the territory is the actual codebase, the real world, the constraints that Claude needs to navigate… whenever Claude runs into something in the territory that’s not in the map, I call that an unknown” — a decision point the human never specified, which the agent now has to resolve unassisted. What makes Fable-class models different is scale of exposure: “Fable is one of the first models where I felt that I really have to figure out my unknowns, because if not, it’s going to traverse such a large area that it’s going to run into a lot of them.” A more capable, more autonomous agent doesn’t reduce the number of unknowns in a plan — it multiplies how many of them actually get exercised, because it covers more territory per session.
The diagnostic he offers is a 2x2: known knowns (what you’d write in the prompt), known unknowns (things you know you haven’t figured out), unknown knowns (what’s so obvious you wouldn’t think to write it down, but you’d recognize if you saw it), and unknown unknowns (what you haven’t considered at all). His practical move is to point the capability itself at the gap: “the model knows more about almost everything than I do, I just need to get it out of it” — using the agent to audit its own blind spots before committing to a plan. This is the same underlying move as Adversarial branch-walking beats review for planning — walk every design branch until resolved — reaching a shared design concept before any plan artifact exists — but framed from the territory side rather than the design-concept side: branch-walking resolves the decisions you already know are open, while the map/territory framing is what tells you a decision exists to resolve in the first place. It also reframes Models are grown, not designed — treat a new model class as biology, not physics operationally: if the model’s behavior space wasn’t designed top-down, no map you write will ever be complete, so unknown-discovery has to be an ongoing practice, not a one-time planning step.
A companion piece by the same author sharpens the lifecycle claim: unknown-discovery isn’t a single planning-phase pass, it recurs across the whole session — “Fable is the first model where I find the quality of the work is bottlenecked by my ability to clarify its unknowns,” and working with it is “an iterative process of discovering my unknowns before, during, and after implementation.” Planning ahead helps but doesn’t close the loop, because an unknown can surface deep in implementation, or reveal that the problem itself should be solved differently. This is why Reducing your unknowns is the trainable skill of agentic coding — and the agent itself is how you train it and You fail both ways: over-specified instructions block a needed pivot, under-specified ones default to the wrong assumptions exist as companion insights: the first names unknown-discovery as a skill you build across sessions rather than a one-off technique, and the second names the specific way you fail when you haven’t yet built it.