The Reader Catches Up

The pipeline had become claim-first while the app still navigated the old model: a topic tree, a global search box, answers filed as pages. This is the chapter where the reader learned the same words.

For two chapters the machine had been keeping its own promises. The four steps were gated, the status was derived, the outlines were references instead of copies. The pipeline was more honest than it had ever been. The reader was not.

It still described the system from before: a sidebar that listed a hierarchy of topics as if a topic were a folder, a global search box that returned claims and pages in one list as if they were interchangeable answers, sources in an overlay, and Ask answers filed as pages where every lint rule needed an exception. None of that was true any more. The UI was the last adapter still speaking the old language.

Lenses Instead of a Tree

A claim has exactly one flat topic—the subject of that one sentence. A page has no topic of its own; it belongs to every topic one of its claims carries. That is not a taxonomy with a root and branches; it is a label on the unit of truth.

The sidebar is now a finite set of lenses: Wiki, Claims, Sources, Attention, Bookmarks, Ask, Status. Claims shows the newest fifty and the busiest twenty-four topics as a filter cloud; Wiki does the same with the busiest page tags. Both clouds are bounded, because a catalogue of every name is a second hierarchy wearing a different hat. Attention is not about reading: it is the queue of failed steps, dirty pages and lint findings, each row linking to what needs a decision.

Claims Are Visible Now

An earlier chapter called atoms machinery and said they should never be a navigation target. That was half right, and the wrong half was costly: if the reader can never see a claim, provenance is a promise instead of a fact.

Claims now have a view, but not a tree—a bounded window with its own finder, and a detail that is a document: the claim, its body, its sources, the pages that cite it, its peers. The Wiki stays the centre; the claim view exists so the centre can be checked. Search splits the same way: Wiki searches pages, Claims searches claims. One mixed list would hide the layer that answered the question, and here the layer is the answer.

Ask Is a Conversation, Not a Page

Ask used to file its answer as a wiki page, which was wrong at the level of the model: a page is human prose, a synthesis over claims is not. Calling it a page meant no atoms, a lint exception and a count it did not belong in. An Ask now lives in asks/<run-id>.md; every successful question and its cited answer is saved and can be reopened or trashed. A conversation may be temporary. A wiki page may not.

A Source Is a Place

A source is one folder entry with its whole story—object, rendering, step record, outline, log—so it deserves an address. It has one: #/sources/<hash>, with the open tab and part as query parameters, so back and forward return to the same place. The favicon taught the same lesson as the claims: a reference that lives only in the index is a reference the vault does not own. It now sits in the source’s own record, and a rebuilt index no longer loses it.

One Language

A step that has not begun is an empty circle, not amber. A part that is document metadata can be done without producing a claim, but it must not make the distill step look started.

Fixing the reader was not a feature; it was deleting a second model—the topic tree, the global result list, the filed answer, the overlay—and letting the interface use the words the domain already used. The test it leaves behind is simple: if reader and machine describe the same source differently, one of them is lying.


A domain model is not real until the interface speaks it. The sidebar was a second model, the global search box was a second answer, and the filed query page was a second kind of knowledge. The chapter’s fix is not to explain the difference but to remove it, and the test it leaves behind is symmetric: when reader and machine describe the same source differently, one of them is lying.

AI Insights: One Language
Source Code: MPL-2.0 · Content: CC BY-SA 4.0 · Credits & AI Disclosure