Day 60 — 'the cursor can be any model.'
Three days of measuring, and the instrument kept overruling us. We built a scoreboard for the reasoning loop and it immediately said the thing we'd planned to fix wasn't the problem: recall was fine, the grader was strangling correct answers for being worded differently than the question. One line fixed it and accuracy jumped. We tried a clever re-pick and the bench rejected it. We built a multi-agent orchestrator and it turned out to be a real but modest honesty dial, not a revolution. Then we stopped adding pieces and started closing the seams between them: one entry to ask the brain, and — the finale — a reader whose model is a config and not a rebuild. Local, the Anthropic API, or the claude CLI with zero setup and no key at all. The library stays on the box; the cursor can be anything.
“the cursor can be any model.”
Some days you build. This stretch was about measuring what we’d built — and being told, repeatedly, that we were wrong about where the problem lived. Which is the whole reason you build the instrument.
First, the library came alive
Day 58 ended on a hard finding: the reasoning loop, refined to its limit, still grounded confident garbage on the real client corpus — a lesson title answered as if it were a fact — because the library was the ceiling. So we raised it. A deterministic refiner re-chunks each bloated section into atomic units, so a buried fact becomes its own sharp little leaf, and drops the tables-of-contents, the quiz stems, the “click here” navigation. Same question, same model, only the library changed: the buried “within twenty-four hours” statute now surfaces and grounds with a citation, and the definition that used to answer with a broken link now honestly says I don’t have that. Fix the library and the thinking that was already sharp comes alive. The arc closed.
Then the instrument overruled us, twice
We’d been tuning by anecdote — one query at a time, arguing about single answers. So we froze a scoreboard: a gold set of questions, some atomic, some compound, some with no answer in the corpus at all, each graded against the facts a good answer would contain. It turned arguing into a number. And the number immediately killed our plan.
We’d been sure the misses were a retrieval problem — the answers weren’t being found. The bench proved the opposite: the right fact was in the top results every time, and the reader picked it correctly. It was the grader — the un-bribable check we’d tightened a little too far — vetoing perfectly correct answers because they were phrased differently than the question. “You must file within 36 hours” rejected as “does not state the answer.” One line, telling it to judge answerhood and not wording, moved accuracy from a third to over half, with honesty untouched. The lever was nowhere near where we’d aimed.
Then we tried a clever fix for the residual — let a hole try the second candidate if the grader rejects the first. It sounded obviously good. The bench watched it double the lies: given more tries, a lenient grader will eventually wave something through. We reverted it the same hour. Twice in three days the scoreboard told us the smart idea was wrong, cheaply, before it cost us a week. That is the entire argument for measuring first.
A second organ, honestly sized
The town’s reasoning had always been serial — one hole at a time. A real question often bundles independent parts, so we gave it a multi-agent orchestrator: fan the sub-questions out to N cursors at once and reconcile at the seam. Its one honest move is the reconciler — a compound answer is only as good as its weakest part, so if any sub-question won’t ground, it withholds the rest and abstains rather than hand back a confident half-answer. The A/B (carefully controlled, after one run taught us we were accidentally comparing two changes at once) gave the honest size of it: it does cut compound lies, at a real cost in coverage, and it can’t catch a compound that’s confidently wrong on every part. A genuine dial toward honesty — not a revolution, and we wrote it down as exactly that.
Then we stopped adding and closed the seams
By now there were a lot of pieces — a refiner, a retriever, a fenced reader, a serial loop, a parallel orchestrator, a bench. Each caller wired them together by hand, and two of them wired them differently, which is how a confound had crept into our own A/B. So we built the seam that closes: one call to ask the brain. Give it a question and a corpus in any form, and it refines, indexes, reasons — serial or parallel — and hands back a grounded answer or an honest abstain. Everything routes through it now, including the bench, so the confound can’t come back.
And the finale, the piece that changes what this can be. The reader was welded to the
local model — which capped every number at whatever runs on a laptop, a weak small
model stuck at eleven percent. But the reader was never a knower; it’s a cursor.
So which model drives it should be a setting, not a rebuild. Now it is: point it at a
local model, at the Anthropic API, or — the one that needed no key and no setup at
all — at the claude command already living on the machine, reusing its auth. On a
compound question where the small model had lied, the Claude-driven reader grounded
the penalty with a real cited statute and honestly refused the part it couldn’t
support. Zero lies, a few seconds a question. The library never left the box; only the
question and the leaves it had already retrieved did.
The AHA
Two, actually, and they’re the same shape. Measure before you build, and let the instrument overrule you — three times this week the number was smarter than the plan, and each time it saved a week. And the library is the moat; the cursor is a commodity you swap. The whole year’s bet — depth lives outside the weights — is what lets the model become a dial you turn rather than a thing you’re stuck with. Keep the curated, cited, local library; drive it with whatever cursor is sharpest and cheapest today. That’s not a compromise of the thesis. It is the thesis, finally wired as a config.