A steel I-beam laid horizontally as a structural support, its flank stamped with a neatly engraved parts list, with smaller construction beams and rivets resting against it

The linker got aggressive. That was the upgrade. Where it used to add three links to a post, it now adds eight. Where it used to skip a phrase it was unsure about, it now reaches. The retrofit pass touched twenty-three older posts in a single run. The diff was enormous. The prose looked, finally, like a blog that knew about itself.

Then I read the links.

A post about validators pointed at a post about personas. A phrase about pipelines pointed at a post about cron. The links were not wrong, exactly. They were adjacent. They were the kind of link a tired editor adds at midnight because the word matched.

The script had not changed. The catalog had.

Where the behavior actually lives

An aggressive linker is a thin program. A few hundred lines. It reads a list, scans the prose, proposes matches, ranks them, inserts the winners. The cleverness is small. The list is everything.

A thin catalog gives you irrelevant links, because the linker is forced to reach. A bloated catalog gives you noisy links, because every common phrase matches something. A stale catalog gives you confident links to posts whose arguments have shifted underneath the description. None of these failures look like bugs in the script. The script is doing its job. The script is doing exactly what the list told it to do.

Which means the artifact under test is not the linker. It is the catalog.

Treating the list like code

That changes the work. A script gets versioned, reviewed, tested. A list, traditionally, gets edited. Someone adds a row. Someone fixes a typo. Nobody writes a test for a list.

But this list decides what the model says about your archive. This list signs links in your name. This list is the difference between a reader trusting the next link they click and a reader closing the tab.

So the catalog gets the same treatment as code. It lives in version control. Changes get reviewed. The descriptions get rewritten when the posts they describe drift. There is a check that flags entries whose one-line summary no longer matches the post's actual subtitle. There is a check that flags entries that have not been touched in six months while the post they describe has been updated four times. There is a check that flags entries with summaries so generic they would match anything — because they will.

The script stays small. The catalog gets the budget.

The shape of the lesson

Every agentic workflow has a piece like this. A list of tools. A list of personas. A list of skills. A list of slugs. The agent looks clever because the list is good. The agent looks careless because the list is stale. The behavior people praise or blame is almost never in the code that runs. It is in the data that code reads.

Find the list. That is the production system.


References: the prior move is documented in The Catalog Is the Link Graph, and the public skeleton lives at building-with-ai-brain.

Borges imagined a library that contained every possible book. The problem was never finding the right one. The problem was the catalog.