This was a lighter stretch, about 30 commits between September 6 and 19. It still ended with one of the more useful corrections I've made to how I build.

Almost everything I shipped in the first half of the month went out switched off. By the end of it I'd decided that was mostly a mistake.

Learning reusable tools from use

The goal is simple to say. When sessions keep hand-building the same operation, Loomfield should notice and turn it into a reusable capability, with evidence and a way to undo it.

That got built in stages. First, measure how often capabilities actually get used. Next, notice the moments when a session built something by hand that a capability could have done. Then stop duplicates, stop junk, and check outcomes against real artifacts instead of a session's own report.

The last stage only offers a capability to a session once it's earned it from evidence, with a probation period and a circuit breaker.

One stage was built but never connected, so it recorded nothing for days. It's the same silent-failure pattern again. It got wired in, and a backfill recovered the missing data.

Fix the system, not the rule

I asked a session to deploy once two other sessions finished. It wrote its own polling loop and waited for a status of done. Sessions never actually reach done. They settle to idle. So it sat there spinning past the real moment until I noticed.

The easy fix would've been a note telling future sessions to watch for idle. I didn't want that. The system should adapt, and I shouldn't have to verify it. The real cause was that the definition of a live or finished session had been copied into about ten places, and the hub's own settle signal was never exposed to sessions.

So it got fixed at the source. There's now one shared definition of session status, a native way to ask the hub to tell you when a session settles, and a detector that notices when something keeps re-checking a session that already finished.

Stop shipping dark

My habit had been to ship new behavior turned off and flip it on later. On September 19 I looked at the pile of dark features and saw they were doing nothing for anyone.

They now default on, with the switch kept as a kill switch. The new rule is narrower. Ship dark only when the behavior is high-stakes, easy to game, or hard to undo. Most of what I'd held back was low-stakes and reversible, and one detector being off was even hiding the signal it was built to produce.

I also moved those defaults back into the code instead of a hand-edited settings file, so the code says what the system actually does.

Still open

Whether the capability learning is producing real value was still being measured at the end of the window.

Long sessions also got better handoffs, built from the Weave instead of re-reading a transcript. And after one release crashed on startup, the pre-deploy check now runs a real boot and a wiring test before anything goes live.