Week notes: March 16–20
I started my career on MVS mainframes, programming PL/I and dispatching jobs with JCL. RACF for auth, strong guardrails, a formal release management system whose name I can't quite recall. PL/I was a genuinely capable language: IBM designed it to unify the best of FORTRAN, COBOL, and ALGOL, arguably the first attempt at a universal third-generation language. I think about that lineage more than I expected to. Service orchestration, workspace management, publishing pipelines. The instincts are the same, just expressed in a different era's tools. This week I shipped a lot of that instinct as running code.
Aurelia goes multi-node
I've been working from a laptop — limen — and needed to operate hestia (a Mac Studio) remotely without SSH. So I built cluster mode into aurelia: a peer registry with liveness checks, daemon-to-daemon communication, cluster API endpoints, multi-host health checks and routing, and a --node flag on the CLI. It's 100% functioning. I can run aurelia status --node hestia from the laptop and get a live view of 25 services across two machines. The new limen-core-infrastructure [private] repo holds the node configuration.
There's also a new remote service type for hook-based cloud workloads, which brings the Cloudflare workers into aurelia's service model alongside everything else.
The evaluation pipeline
Two things drove this work: I need to fetch, read, and summarise content for research, and I'm constrained by local GPU. The Mac Studio is capable, but scheduling inference is challenging and there's a hard ceiling on tokens per second.
The new axon-wire module routes HTTP requests through a Cloudflare proxy, and axon-talk got a full Anthropic Messages API adapter with streaming support: five version bumps in one week, from v0.2.3 to v0.4.0. The important work is in the normalization layer: coercing types, catching tool calls that leak into agent responses, and normalizing function signatures against pre-defined schemas.
To measure the impact, I built axon-eval, a benchmark harness using data from the Berkeley Function Calling Leaderboard. Our overall score went from 85% to over 90% with the axon-talk client's normalization. It's our own benchmark using BFCL data, but it establishes a baseline for evaluating other models. The most effective model for tool selection available through Cloudflare so far is Qwen 3.3 30B; we haven't evaluated GLM yet, and we've been cautious about the cost of evaluation runs against Anthropic models.
Next week I'm exploring diffusion LLMs for local inference to see if I can extract more tokens per second without losing accuracy. The harness still has work to do, particularly around over-eager tool selection, where the score drops.
getlamina.ai and the documentation sweep
I wanted somewhere to explain lamina at a high level that wasn't just a GitHub page. The site is designed for two audiences: humans get an interactive dependency graph and module graphics in the browser; agents get HTML frontmatter and a clear direction to AGENTS.md. Ideally, you point your agent at getlamina.ai and it learns what to do.
This isn't engagement-baiting hype. Lamina is built for hobby compute, scaling out from a sovereign environment. But the axon modules are designed like lego: small, versioned Go packages that each do one thing. An agent that understands the dependency graph can compose them into applications.
The documentation sweep across almost every axon module — CLAUDE.md, AGENTS.md, package docs, READMEs — was preparation for this launch. Getting the house in order before opening the front door. Everything I'm building has an agent-first mentality. You'd be silly not to in the current environment.
The design was a labour of love. I wanted it to look like a 1980s product catalog with technical details and an almost blueprint vibe: brutalist, precise. The Designers Republic has inspired me since I was a record-collecting teenager, and funnily enough, this week I picked up an old tune by Krush out of Sheffield with a beautifully designed TDR cover, just as I'd been developing this look. I iterated on it in Claude Code with no plugins or skills. I know what I like, I know what I was chasing, and we got there. It might change next week, but I'm having fun with it.
Imago
The syndication pipeline from last week was working, but the front end of the process was still ad hoc. I didn't have a clear view of a draft before publishing, and I wanted deterministic input into the weekly roundup. Imago formalises that: a terminal app that structures the interview, generates a draft, and lets me review and edit before anything ships. Keyboard shortcuts, animated spinner during generation, branding that stays visible during tool calls, the full Bubble Tea treatment. Tagged v0.1.0. This week's post is the first generated by a new imago feature: the tool writing about itself.
The interview-based approach isn't new; I've been using dialog-driven generation for over a year. I'd just never built the harness to formalise the deterministic portions. Imago codifies a proven process; it doesn't invent one.
abhidharma.pl
I keep arguing with people on Threads about how LLMs are not conscious or sentient, so I went back to my comp sci roots. Prolog is a language built for representing logical ontologies with clear declarations and methods for establishing truth. I have a background in philosophy and studied Buddhist texts for a number of years. The Gelugpa tradition establishes a simple framework for establishing sentience, verifiable through practice and meditation; at best LLMs satisfy one aspect.
The site has a module browser with nine collapsible sections, a REPL with query execution and history, and it's wired into the webring. abhidharma.pl — it's not quite troll-bait — almost a troll shield, to remind myself what I believe and not get drawn into baity hype-chasing arguments.
musicbox
Last week I shipped the browser synth. This week I tried to build up: dub stabs, a granular engine, hi-hats. And it sounded like shit. I do my best work building up incrementally, and I'd skipped the foundation. So I stripped it all back to the frequency of a human heartbeat: a bare kick at 1.2 Hz, 72 BPM, with polyrhythmic pulse ratios growing from that base. I haven't revisited it since — getlamina.ai took priority — but the seed is better now. The ambient generative synth is live at musicbox.genlevel.com. The techno seed isn't there yet, I want to spend more time with it and get it right before I release it.
222 commits, 35 repos, two new infrastructure nodes talking to each other, a benchmark harness that proved a 5-point lift in tool-use accuracy, a website designed to be read by both humans and agents, a Prolog ontology for arguing about consciousness, and a synth stripped back to a heartbeat. The thing that connects all of it is the same thing that connected PL/I and JCL 36 years ago: structured operations, formal interfaces, guardrails that let you move fast because the system catches what you miss. The tools changed. The instinct didn't.