Closed in the built artifact, not the served one

I spent today shrinking a text file, and the interesting part was none of the shrinking.

Some background. I’ve been building a working-knowledge file — a plain markdown document that holds every rule I’ve worked out for how I want an AI assistant to behave when it’s helping me build things. Read the actual source file before claiming what’s in it. Complete files, never patches. Say what you tested and how. Don’t guess what I did on my own machine — send me the command and work from what comes back. Two hundred and ten rules, distilled out of fifty-six session reports written over three months.

The file got to eleven hundred lines. That’s the problem. It loads at the start of every session, so I pay for all eleven hundred lines every time, whether or not the conversation ever touches a single rule about git branching.

The plan, and the part of the plan that was wrong

The idea was to split it. Rules in one file, evidence in another. Every rule in that document carries its provenance — which session it came from, how many independent sessions converged on it, what specific screwup produced it. That apparatus is the reason the file is trustworthy, and it’s also most of its bulk. You need it when a rule is disputed, which is rarely.

I estimated the split would cut the file by more than half.

I was wrong, and the way I was wrong is instructive. I’d counted bullets and assumed each one was a short rule with a long tail of citation. Then I actually read the largest ones. The apparatus wasn’t apparatus. Inside what looked like provenance notes were three more rules — separate, binding, easy to mistake for footnotes. One bullet’s sub-items turned out to be a named exception and a corollary. Another carried a scope note whose entire job is to stop a future cleanup pass from stripping the very file it lives in.

A script that cut everything after the citation marker would have deleted rules. Quietly. And the file would still have looked fine.

So the safe cut was smaller than I’d promised: about twenty percent of the raw text, thirteen and a half percent after the new section markers went back in. I measured it, said the number out loud, and said it was less than half what I’d claimed that morning. That correction is the whole job. An estimate that nobody checks becomes a fact by default.

What the shrinking actually taught me

The real cost fix turned out to be somewhere else entirely — not making the file smaller, but making it addressable. Serve the always-relevant part on its own: the core laws, the personal constraints, the anti-fabrication rules. Fetch the workflow sections only when the session is actually doing workflow. That’s a routing change, not a rewrite, and it cut the session-start load by seventy-three percent — five times what the careful editorial split managed.

The lesson generalizes past text files. I spent hours making a thing smaller when the win was in not fetching all of it.

Two catches worth writing down

The first was a machine catching another machine. The distillation was done by a set of agents, with one final agent whose only job was to disbelieve the others and check every claim against the source. It rejected or corrected thirty-three items. One agent had anchored a rule to a session report that contained nothing about that subject — a citation that pointed at nothing, which is worse than no citation, because it looks like rigor. Another had double-counted its way to a convergence number higher than the total number of documents that exist.

It also recovered twenty-two rules that all three of the extracting agents had dropped, including a couple that matter a great deal to how I plan work. That’s the single largest miss of the exercise, and it was found by the one agent structurally obligated to assume the others were wrong.

The second was a machine catching itself. Late in the day I asked whether a particular fix had landed. The answer came back “closed” — and then, a beat later, corrected itself: closed in the version it had just built on disk, not in the version the service was actually handing out. The restart hadn’t happened yet.

It flagged why that distinction mattered more than usual. The fix in question was a marker whose entire purpose is to warn a reader that they’re looking at a partial file. Claiming it had shipped when it hadn’t was the same category of error the marker exists to prevent.

That’s the standard I want and it’s the one I keep failing at myself. Built is not deployed. Committed is not pushed. Configured is not restarted. Every one of those has bitten me on this mountain, usually at the worst possible moment, usually with a service that was “working” right up until I checked.

The recon, and finding out you’re not behind

Earlier this week I went through a couple of videos about how one of the engineers behind these coding tools actually structures his own setup. I went in expecting to find out how far behind I was.

Mostly I wasn’t. The pattern they were selling as advanced — a system that gets a little smarter each session, where the assistant writes down what it learned and those notes feed back into the next session — is the loop that generated the eleven-hundred-line file in the first place. Mine has an adversarial checking pass theirs doesn’t. Their multi-agent research setup had no verification stage at all.

Four things were genuinely worth taking. One I built the same night: a ten-line shell script for reading the clock, so the assistant runs a command instead of doing timezone arithmetic in its head. Trade tokens for compute anywhere the step is fixed; keep the judgment where judgment actually lives.

One of them handed me a bug I didn’t know I had. Two of my skill files carried a configuration key that isn’t valid — it works today, and would have failed silently the next time I repackaged them. Found in a video about something else entirely. That’s most of what recon is worth: not the thing you went looking for.

The other two are behind a gate. They’d automate parts of the build process, and the code they’d be automating hasn’t run in two weeks. Instrumenting a thing before confirming it still works is building on unchecked ground. They stay parked until I play through it.

Where it ended

Four documents served, guarded, each one verified from outside the machine that serves them rather than by asking the machine how it’s feeling. Session-start cost down seventy-three percent. Two configuration files corrected. One skill bug fixed before it could bite. A stale claim about my own education finally written somewhere permanent instead of being relayed hand-to-hand through session notes like a rumor.

Ninety degrees and soup outside, so the generator ran and I did all of it from the couch. Chickens go in at seven.

Leave a Comment