A wooden card catalog drawer pulled half-open, with a single index card lifted out of it and clamped into the carriage of a small typewriter, the card's typed lines continuing seamlessly onto a sheet of paper rolling out the top

Yesterday I changed one word in a catalog row. I changed note from a post about override flags to a post about override flags as test surface. Six words to ten. A description, not a behavior. I committed it the way you commit a typo fix — without ceremony, because the change felt cosmetic.

This morning the linker linked that post from three new places. Two of the new links were good. One was a stretch. The phrase test surface had become a magnet, and the magnet was now pulling iron filings I had not meant to magnetize. I had not edited the linker. I had not edited the governor. I had edited a description in a YAML file. The prose on the site changed anyway.

That is the thing I want to name, because once you see it you cannot stop seeing it. The catalog is not a database. A database is a thing you query. The catalog is a thing the agent reads in, holds in context, and writes from. Every field in it is a token the model has been told to consider authoritative. Every description is a phrase the linker is allowed to anchor to. Every confidence value is a weight on a decision that will appear, in plain English, in a paragraph somebody reads.

That is not the posture of metadata. That is the posture of a prompt.

What changes when you accept this

Schema discipline says: the field is typed, the field is non-null, the field is one of an enumerated set. Schema discipline cares about shape. It does not care what the words inside the shape say, because to a database the words are opaque payload.

Prompt discipline cares about the words. It asks: if I change note from six words to ten, what behavior shifts downstream? It asks: is this description neutral, or is it leading? It asks: when the linker reads this row tomorrow, will it weight this phrase more than the post itself warrants?

The catalog needs both disciplines now, and the second one is the one I had been skipping. I had been editing description fields the way you edit a comment — for the human reader, for clarity, for a small pleasure of phrasing. But there is no human reader of _data/posts.yml anymore who matters as much as the linker does. The linker reads it every run. The linker reads it more carefully than I do.

So the practice has to change. A catalog edit is a prompt edit. That means: diff the descriptions, not just the slugs. Read the diff aloud. Ask whether the new phrasing is going to pull links it should not pull. Pass the change through the same governor that limits the agent, because your hand is no steadier than the agent's hand when the surface you are touching is this live. Use an override flag when you mean to override, and let the validator bite you when you have not earned the change.

The instinct to treat a YAML file as inert is hard to drop, because YAML files have been inert for most of our careers. You opened them, you fixed a comma, you closed them, the world did not move. This file moves the world. Every row is a sentence the writer might say in your voice tomorrow.

Edit it like you would edit your own mouth.


References: the catalog file in question lives at _data/posts.yml in this blog's repo, and the governor and validator that read it are described in The Catalog as Shared State and The Validator With Teeth.

Toni Morrison said she wrote the books she wanted to read. The catalog is the opposite problem — you are writing the prompt you do not want to read, because you will not be the one reading it. The machine will. Write it for the reader you have, not the one you wish you had.