technical blog
Agent runtimes, local infrastructure, search, memory, and the occasional hard-coded moderation decision.
15 minutes from intent to implemented
I wanted custom art for this site and designed an agent-friendly CLI around my preferred image model. Claude Code implemented, tested and published it in fifteen minutes.
ai · agents · tools · craft July 2026Seven drafts started the same way
I taught agents to ground technical posts in witnessed events. Seven of nine drafts answered with In May, I…, revealing where a rule could help and where taste still required an editor.
ai · agents · design · testing June 2026I built the agent runtime three times
I rebuilt my agent runtime three times in five months. Each failure changed how I now design agents for customer work and Arcwell.
agents · architecture · ai · systems June 2026Don't publish over an unresolved contradiction
Why my research skill looks for contradictory sources before treating a result as final.
ai · agents · research · reliability June 2026Where a shared agent protocol should stop
I tried to carry one language through MCP, ACP, A2A, AG-UI and every service beneath them. Inside systems which already had good APIs, it only added translation work.
protocols · agents · mcp · a2a June 2026The prompt I was not allowed to improve
A Rust port of mem0 only counted as compatible if it remembered the same things. Byte-identical prompts and a deterministic 17-scenario parity suite made that claim testable.
agents · memory · rust · searchTests should try to refute the claim
Severe-testing starts with what would refute a system's claim and reports a threat only when there is an observable path to failure.
May 2026A hung agent shouldn't freeze the others
codex-swift gives each coding conversation a disposable worker so one stalled tool call cannot freeze the others.
May 2026Local Redis starts at the client
I wanted a Bun test job to start its own Redis-compatible dependency. Then node-redis sent HELLO 3 before my application had issued a command.
May 2026The goal should be a file you can open
Porting /goal to Claude Code gave the objective a Markdown ledger that survives compaction, remains visible, and makes Claude state explicitly when it believes the work is complete.
April 2026Cloudflare Workers without leaving the laptop
I built open-cloud so my own code, coding agents and CI could deploy and call Workers with D1, KV, R2 and service bindings inside one inspectable local process.
January 2026The 57-character system prompt
A Claude Code OAuth token could identify the account and refresh successfully, yet inference failed until the request body used one exact system prompt.
January 20268,410 places a train can be
I wanted every train in Britain moving across one map. The difficult part was translating the operating railway—signals, junctions, sidings and all—into geography a browser could draw.
December 2025BM25 before grep
A coding agent often knows the concept before it knows the repository's name for it. One local ranking pass can find the file and nearby language that make exact search useful.
December 2025Which developers built something afterwards?
Following a $50,000 hackathon and a $5,000 meetup series into later code changed which programme deserved another budget.
December 2025What did the business get for the DevRel budget?
Developer work reaches business value differently in an API business, a platform and an enterprise product. The measurement has to follow the route the business actually uses.
December 2025You don't know what you know until you're asked
I designed Interviewer to draw out a half-finished thought without asking the same question twice. The hard part was deciding what evidence lets the system call a question `asked`.
June 2023The WHERE clause that moderated a feed
BlueJ's hardcoded hellthread exclusion made a feed generator's hidden policy visible: in its filters, weights, merge order, and refresh rules.