Covers July 8 - 22, 2026.

I’d let both flagship repos go public carrying nearly everything they’d accumulated as private ones. Spernakit’s public documentation had three changelog files totaling 7,700 lines, four migration guides, two “why this version” essays, and a retired LTS decision record, all of it describing versions nobody can install anymore. aidd had 3,700 lines of the same. It made the current release documentation hard to find.

So I removed the history itself. Each public changelog is a single baseline entry now, the retired files are gone, and the rest of the docs were adjusted to match.

Fresh off the license work, I also added check:fresh-release, mostly because I know what happens to a documentation policy that depends on me remembering it. The check catches references to pre-baseline releases, extra changelog headings, and retired history files. Derived apps do not inherit it. Their changelogs belong to them.

The first follow-up releases had landed a few days after both repos went public, and that was the smaller pass. Most of it was the kind of thing a fresh set of eyes finds immediately. One internal-address pattern slipped through Spernakit’s request filter, secret-bearing configuration files needed owner-only permissions, and several source files were getting too close to the size limit. I fixed those in the follow-up releases.

On the aidd side, the audit screen gained batch selection, images started rendering in the code browser, and a run that exited during pre-run validation finally emitted its closing status. Both repositories also got a local pre-commit sanity check, plus a small public welcome page for Spernakit and a one-page aidd explainer.

Something related showed up somewhere less obvious. CodeQL alert dismissals are per-repository server state, so republishing a repo resurfaces every one of them. Two alerts were closed in code instead of dismissed again, and one of them turned out to be hiding a real bug. I covered that one the next day in Green Is Not Evidence.

The last PowerShell leaves

I also finished a long migration of aidd’s toolchain this week. No Node or PowerShell entrypoints remain. Three scripts had been living outside the repo’s own quality gates, including a 1,187-line feature-review sweep in .mjs that was never typechecked or linted because the tooling only matched .ts. I converted all three to Bun TypeScript.

I ran the old and new feature-review sweeps over the same twelve-feature fixture. The resulting feature trees and report were byte-identical. Converting the file also brought it under the 300-line ceiling, which it had escaped for months purely because of its extension.

I moved the rest of the fleet to Bun during the same work. Half a dozen smaller repos came off npm, and I replaced the only-allow preinstall guard with a local script. The old guard tried to download itself during preinstall, which is an awkward discovery to make on a clean machine.