Work in progress · how this page was made
This page explains a design decision inside the engine; the library keeps growing and the engine keeps changing, so treat the numbers as indicative, not final. Written by Claude (Opus 4.8) from the engine’s design notes and run reports, and the working sessions in which the redesign was argued out. Not yet reviewed by a human.

One book, many shelves — why we built a prism

What we did: we rebuilt the middle of the engine so that a book is no longer filed onto one shelf. Every book is refracted through a prism of thirteen facets, and its membership is recorded once — a book can sit on as many shelves as it truly belongs to.
Why we did it: the output was fine, but the method underneath had grown tangled — three different parts of the code each carried their own idea of what “a cluster” was, and a book’s shelf-membership was stitched back together every time a page loaded. This is the story of the cleanup, and the one idea that made it simple.

Background: two earlier studies cover the filing system a book drops into — Removing AI identity bias from the classification (why that system exists) and How seven AI models cluster one library (does it hold across models). This page is about the layer above filing: how a filed book is opened out into everything it belongs to.

The knot: three answers to one question

Where the redesign started

A collection has clusters — the books about a company, the ones that argue the same idea, the ones written in the same decade. The trouble was quiet and structural: “a cluster” had never been defined once. It lived in three different parts of the code at the same time — an early lens file, a later recorded run, a hand-written config — and each meant something slightly different by it. Two of them could tell you a cluster had eight books; a third could tell you six.

Worse, a cluster’s membership wasn’t stored anywhere — it was reassembled from disk every time a page was read, and basic facts like a cluster’s size or its core meant different things depending on which path did the reassembling. A whole checking step existed only to police the three disagreeing versions against each other. Adding a book, or re-running the analysis, meant stitching all three back together by hand.

The output people saw was good. What had decayed was the method — years of useful additions that were never absorbed into one shape. The redesign’s job was to cut that tangle without changing the answers.

The real mistake: flattening a lattice into a tree

“Which one shelf?” was never a real question

Underneath the mess sat a deeper error. The old engine kept trying to give each book one home — its shelf. But books don’t work that way. Take Taleb’s Antifragile: it is a business book, and it is written in an empirical voice, and it is about the idea of antifragility, and it descends from Taleb’s own earlier work. Those are all true at once. None of them is “the” shelf.

A library isn’t a tree, where every book hangs under exactly one branch. It is a lattice, where a book belongs to many overlapping groups, and those groups share members with each other. Forcing one home is flattening that lattice into a tree — and the agony of choosing the home was never a real problem to solve. It was the symptom of asking the wrong question.

Multi-membership isn’t a complication to be managed. It is the truth the old design was hiding — and once you stop hiding it, most of the tangle simply dissolves.

The prism

Refract the book, don’t shelve it

So we stopped shelving books and started refracting them. A book’s journey now runs like light through glass: it is classified into the lattice (what kind of thing it is), then passed through the prism (which splits it into every facet it carries), and only then held in the mirror (what the curator knows) and shown at the window (what you see).

The prism is simply the full registry of thirteen facets — thirteen honest ways to cut a library — and, for each, where its values come from. That last part turns out to matter more than it sounds.

Given · 9 facets
Already stamped on the book. Read off for free — no model, no cost.
Discovered · 3 facets
Recorded nowhere. Latent structure that has to be read across the whole library and reasoned out.
External · 1 facet
Membership from an outside list — a prize canon, a magazine’s selection.

Given versus discovered: why some shelves are free and some are earned

The idea that made the rebuild worth it

Nine of the thirteen facets are given. The book already carries them from the filing step — the prism just reads them off, instantly, at no cost. But three facets are discovered, and they are the interesting ones. Nobody ever recorded that a shelf of books is really about Amazon, or that a cluster of them all descend from Darwin, or that a dozen unrelated books all quietly argue “grit beats gift.” That structure is latent — real, but written down nowhere.

Here is the trap we avoided. You cannot classify a book against a list of themes that doesn’t exist yet. The obvious shortcut is to borrow a ready-made list from the world — a published ontology of themes — and file against that. We tested it. A world ontology held almost none of this library’s signature themes: the ideas this particular collection circles are invisible to a generic vocabulary. So the vocabulary has to be grown from the library itself — churned out of the books, not imposed on them.

A library’s own signature is only visible by churning that library. The given facets you read; the discovered ones you have to earn — which is exactly why they’re the ones worth having.

Slot: one book, one grounded membership

The keystone — every book through the whole prism

With the prism assembled, every book is passed through it in a single step we call Slot. Out comes one flat list of memberships — an edge list keyed by the book’s id. A book in five clusters is simply five rows, and each row carries its own grounding: the evidence for why the book belongs there. A cluster’s size is never stored — it is just how many rows point at it — so it can never drift out of sync with the truth again.

Two rules make this trustworthy. No member without grounding — every edge has to point at its evidence, so the whole tangle of checking steps collapses into one cheap question: is this complete and grounded? And it is reproducible — the same library run twice gives the same memberships, while the minted identities persist, which is what makes re-running the whole analysis safe instead of a hand-stitch.

1,252
books, every one placed
~11,474
grounded memberships across 13 facets
0
ungrounded edges — the invariant held
$0
Slot is pure assembly — no model calls

One worked example: Leonardo da Vinci slots into twelve memberships across ten facets — two disciplines, a place, a period, a form, a voice, a reading difficulty, an era, the entity Leonardo, and two themes — every one of them backed by evidence.

The same engine, before and after the rebuild.
Before — the tangleAfter — the prism
Defining a clusterthree parts of the code, each with its own ideadefined once, with an id minted a single time
Membershipreassembled from disk on every readone stored edge list, keyed by book id
Size & coremeant different things on different pathsderived from the edges — can’t drift
A book’s homeforced onto one shelf (a tree)on every shelf it belongs to (a lattice)
Hidden structureforced into a fixed list, or lostgrown from the corpus, and grounded
Re-running itstitch three producers together by handone reproducible pass — cheap and safe

What you can see: 624 shelves

The discovered facets, made browsable

The three discovered facets are the part of the prism you can now walk through directly. Churning the whole library turned up 73 people & works, 47 intellectual roots, and 504 recurring themes — 624 shelves the collection never had a way to show. They are additive: the hand-curated clusters are left exactly as they were, and these sit alongside them as a found dimension, never over them.

Browse the discovered shelves →

What we are not claiming

The honest edges of this