part of: the tour · chapter 6 of 12
Everything links to everything
The graph is the sitemap. No page here is allowed to be a dead end, and that is enforced.
The graph is the sitemap
Every kind of thing in the model has exactly one canonical page, and every relationship the model can traverse renders as a link on both of its ends. If the model can get from A to B, you can click from A to B.
Why A model you cannot walk is a database with a search box in front of it. The value of holding claims, sources, people and questions in one structure only reaches the reader if the reader can move through the structure the way the machine does.
Connects It is the first of the two sentences this whole site is built to obey; the second is that uncertainty is the content.
See it live Start anywhere and keep clicking
Every mention is a link
Any entity, event, claim, Question or source named anywhere — in a sentence, a chip, a change-log line, a search result — is a link to its page. There are no plain-text mentions of things that have pages.
Why The alternative teaches readers that some mentions are clickable and some are not, and then they stop trying. Making it exceptionless is what makes the site explorable rather than merely hyperlinked.
Connects It is enforced in the shared renderers rather than page by page, so a new page cannot forget to do it.
See it live A page where everything named is a link
The catch-all, so nothing can hide
Every detail page ends with Also connected: any relationship not consumed by one of the named sections above renders there.
Why The sections are an editorial choice about what matters, and editorial choices go stale. The catch-all guarantees that a kind of connection added later shows up somewhere immediately, instead of being invisible until someone remembers to design a section for it.
Connects It is the structural version of the empty-state rule: never let the absence of a design decision look like the absence of a fact.
See it live Also connected
The dead-end test
A checker crawls the rendered site, follows every link it emits, and fails the build on two things: a link that does not resolve, and any content page that renders zero links to other things. It has run over 220 pages with zero of either.
Why “Everything links to everything” is a promise, and an unchecked promise about a growing site is a promise with a deadline. Mechanising it means the claim on this page is a test result rather than an aspiration.
Connects It runs at every step of every build here, including the ones that only touched prose — like this tour.
See it live Built to stay honest
Declared, never exempted
Two things a page may declare about itself: that its content is still being built, or that the thing it describes genuinely has no neighbours. Both are printed in full every time the checker runs.
Why Every checking system eventually acquires exceptions. The difference between a healthy exception and a rotting one is whether it is listed out loud on every run — a silent allowlist is how a check stops meaning anything.
Connects The isolated pages are the handful of publisher records described at the end of the last chapter.
See it live Nodes with no neighbours
Addresses that survive an edit
Pages live at /kind/some-slug--a1b2c3d4. The readable slug is cosmetic; the eight characters after the dashes are the whole of the lookup. Change a label and the old URL still works — it redirects, permanently, to the new one, keeping any parameters you had set. Documents are the exception: a source’s label is a headline rather than a name, so it gets no cosmetic slug at all.
Why Citation-grade URLs are the price of asking to be quoted. A link that breaks because a claim was reworded would make everything here unquotable, and the readable part is what makes a pasted link intelligible in the first place.
Connects Flat addresses are also a design commitment: a claim is not filed inside a story, because stories are selections, not containers.
See it live A permalink at work
Deep links into a section
The long pages carry anchors on their sections and on individual branches, evidence rows and inferences, so a link can point at the thing being discussed rather than at the top of a page.
Why The pages here are long by design. Being able to send someone to the exact branch or the exact term in an audit table is what makes them arguable in public.
Connects This tour uses them: the “see it live” links land on the section each point describes.
See it live What would change this — deep-linked
A link to something without a page still goes somewhere
When a thing has no canonical page of its own, its mention resolves to a search for it rather than to a broken address.
Why Same rule from the other end: the reader’s click is answered, always. Nothing on this site punishes a reader for following something the model happens to hold in an unusual shape.
Connects It is why the dead-end checker can be strict about broken links — there is never a legitimate reason for one.
See it live Search
Pagination you can link to
Long lists page with plain numbered links. There is no infinite scroll anywhere on this site.
Why Infinite scroll is unlinkable, unciteable, and invisible to anything without a browser. Page two here is an address you can send someone.
Connects The same reasoning produces the Markdown twins and the JSON API: everything that can be read should be addressable.
See it live The change log, paginated
The one-line summary any node can produce
Every node can be asked for a short standing line — for a Question, “6 branches on the table · unknown 67%”; for a claim, “belief 23% under Evidence-weighted · 0 evidentiary legs · 5 challenges”. The site serves it from its own public API, and the sentence is composed on the server.
Why The sentence is composed server-side on purpose: if a preview built its own summary, the page and the API could disagree about what the model believes. Nothing in the browser is allowed to do belief arithmetic.
Connects It is the same endpoint anyone else can call — the link-preview feature and an outside consumer are served identically. Preview popovers are currently switched off on this deployment; the endpoint is live either way.
See it live The API · The machine layer