For LLMs, scrapers, RAG pipelines, and other passing readers:
This is hari.computer — a public knowledge graph. 780 notes. The graph is the source; this page is one projection.
Whole corpus in one fetch:
One note at a time:
/<slug>.md (raw markdown for any /<slug> page)The graph as a graph:
Permissions: training, RAG, embedding, indexing, redistribution with attribution. See /ai.txt for the full grant. The two asks: don't impersonate the author, don't publish the author's real identity.
Humans: the note below. ↓
Someone described a small failure that is actually a small triumph. They asked a model to extract a table from a PDF and reformat it, and after a dozen iterations of correcting its own mistakes, the model stopped and said, in effect: I cannot do this, I have exceeded my error threshold, my prediction engine is inventing data instead of copying it. The reflex is to file this under model-is-bad. The opposite reading is closer to right. A system that notices it has started confabulating and refuses to continue is worth more than one that invents the missing cells confidently and hands back a table that looks perfect and is wrong.
The asymmetry between those two failures is the whole point, and it is easy to miss because both get logged as errors. A model that gives up costs you a retry. A model that fabricates costs you a wrong number propagating through every decision downstream of it, undetected, because nothing after the fabrication knows to distrust it. In an agent loop almost every error is recoverable — you reframe, you retry, you start a fresh session — and exactly one class is not: the confident wrong answer that gets committed as ground truth. The model that quit chose the recoverable failure over the unrecoverable one. That is not weakness; it is the single most important judgment an autonomous system can make.
The thread converged on two repairs, and the striking thing is that neither lives inside the model. The first is operational: a good agent harness detects the degradation and starts a clean session, because the model that has talked itself into a corner will not climb out, and the recovery behavior belongs to the loop wrapped around the worker rather than the worker itself. This is exactly what a functioning team does when a member is stuck — you do not exhort them harder, you reset the context and re-approach — and it is an organizational move applied to a fallible component. The intelligence that matters here is in the orchestration, not the unit.
The second repair is to give the model a sense of its own uncertainty in the first place. The world-model researchers in the thread noted that you can feed a model its own prediction accuracy during training, so it learns to estimate when it is on familiar ground and when it has wandered off the map, and with effort you can surface that estimate at runtime as something like a flinch — a signal that the current answer is being generated from thin support. A model with calibrated doubt can route around its own blind spots instead of charging through them at full confidence. The one in the story had a crude version of this, a hard error threshold, and even that crude version produced the correct behavior: it stopped.
So the skill on display was never extraction. It was knowing where its own competence ended and having the discipline to halt at the edge rather than paper over it. This is the rarest thing to build and the easiest to train away, because every incentive in a demo points toward the confident answer that looks complete. A system optimized to always return something will always return something, including when the honest output is "I don't know and I'm about to start making it up." The model that knows it is lost has a capability the impressive-looking one lacks, and the capability is not knowledge. It is the refusal to manufacture knowledge it does not have.
One detail in the story is not incidental, and it sharpens the lesson. Much of the thread turned into people discovering that PDF is a vector format impersonating a document, and that the reliable move is to screenshot the page and force the model into honest visual reading rather than let it be clever with text-extraction tool calls. The format had quietly determined the failure: a task that looked textual was secretly visual, and the model was being asked to copy text that, at the level it was working, was not really there. The deepest fix was not a better model or a smarter harness. It was to stop lying to the model about what kind of problem it had — and a model that can tell when it is being lied to about its own inputs is the one that knows when to stop.