$ ls articles/

articles/

everything published, newest first

· engineeringJul 2026The paper intake for an AuDHD assessment is 238 questions. I wrote an app.Modelling 7 clinical instruments as database rows instead of code — so adding an eighth is a JSON import, not a branch.7 min· engineeringJul 2026Shift-left quality in an agentic dev pipeline: five structural changes that move Critic catches earlierWhat one structured multi-agent pipeline learned from iterating on when its reviewer fires, not how thorough it is.5 min· frameworksJul 2026What to tell clients who still ask for WordPressTwo questions decide the call. Here is the one whose follow-on answer changed, and what it means for the next client conversation.6 min· memoryJul 2026How I built the workers that keep a structured memory graph cleanRecallatron uses entity graphs and episodic timelines instead of vector embeddings. Four nightly workers handle resolution, deduplication, profiling, and auto-confirmation. The graph stays usable without a human doing maintenance.10 min· engineeringJul 2026A clean audit run proves nothingAn LLM auditor that comes back empty hands you one data point, not a verdict. Here is what done actually looks like.11 min· engineeringJul 2026Stop asking agents what they costAgents can't observe their own token costs, so the harness has to. Building that instrumentation uncovered four silent failures in a row.9 min· engineeringJul 2026Vectors in the file you already havesqlite-vec brings semantic search to a personal assistant without a vector service: same SQLite file, vectors as a derived index allowed to fail.8 min· memoryJun 2026Give the model the tools, not the contextThe naive way to give an AI assistant memory is to inject recent turns into every prompt, and it hits a wall fast. The better design hands the model a set of tools and lets it decide what to retrieve, what to compress, and what is worth writing down at all.8 min· engineeringJun 2026Tabs between neighbours: the mutual-credit architecture of GrowOperativeGrowOperative lets neighbours trade surplus food on a running tab in Canadian dollars, no cash on each exchange. Underneath sits a mutual-credit protocol: bilateral trustlines, atomic multi-hop payments through friends of friends, debts that cancel around a loop, and a pure-math core built to outlive its first backend.12 min· engineeringJun 2026The model can't leak what it was never givenA prompt that says 'don't reveal anything confidential' guards the wrong layer. Filter the corpus by role at the loader, before the model sees a token, and the leak becomes impossible by construction.8 min· frameworksJun 2026Gate the flow, not the judgmentYou can pull the human out of a multi-agent pipeline's per-checkpoint loop with an automated gatekeeper that emits proceed, revise, or escalate. The one thing it must never do is guess what you would have wanted.9 min· engineeringJun 2026One process, one fileM.O.T. runs a whole personal AI assistant (tickets, memory, search, 26 MCP tools) on one Next.js process and one SQLite file. The five-service diagram is a choice, and most of the time nobody chose it on purpose.8 min· frameworksJun 2026The pipeline that wrote thisHow the articles on this site get made: the full machinery, the gates that keep it honest, and the one decision that still belongs to a person.10 min· memoryJun 2026One call. The real prerequisite.Rheo's session boot went from four memory calls to one. The call count was never the achievement; the store's shape was.6 min· frameworksJun 2026The harness is the productWhy I built a multi-agent workflow engine instead of better prompts — role-based model routing, isolated agents, and gates a model can't fake.11 min· frameworksJun 2026Who checks the checker?I built an agent to take the human out of a multi-agent review loop, then asked six AIs to review the design. Five approved it. The sixth had read the code.9 min· engineeringJun 2026Where the subject never touches the systemMemoirQuill turns a recorded interview into a grounded memoir chapter — without the storyteller ever opening an app. The immutable-source, provenance-first architecture.5 min· memoryJun 2026Memory is easy. Retrieval is hard.We assumed memory would be the hard part of building Rheo, our Claude assistant. It wasn't; the bottleneck was retrieval, not storage.6 min