Notes on building a personal AI operating environment.
I write about what I have built around Anthropic's Claude Code, including the memory, hooks, safety layers, infrastructure and the specific patterns that have earned their place; every post is grounded in something concrete rather than in speculation about the future of AI.
Techniques
All techniques →Five skills that have shaped how I work, each with a short page explaining what it does and why it earned a permanent slot in my own setup.
A persistent task runner with a retry loop and an email fallback, so "email me when done" actually means that.
Read →Claude, Gemini and GPT-5.4 on the same question in parallel, with a blind round followed by informed rounds; the receipts come from several months of use.
Read →Nightly consolidation that promotes useful session insights into the canonical topic files, which is the memory layer that stops rotting.
Read →Build a task-specific context file before the task starts; the sub-session then reads only that file, which stops the usual context-window guessing.
Read →Twenty-three numbered patterns of how I have broken my own system, checked against every non-trivial change before it ships.
Read →Featured essays
A personal AI operating environment: worked example and receipts
What happens when one person uses an AI coding assistant as the primary interface to a real physical and operational life, and fixes every failure that occurs along the way.
Six layers of defence for an AI agent over a 3D printer
The printer-safety setup I now run, the incidents that produced each layer, and the parts you can lift for any agent that touches a physical system.
Lessons as code: turning postmortems into pre-flight checks
A file I read at every session start, twenty-three numbered patterns of how I have broken my own system, and a pre-flight skill that checks proposed work against them. The most portable thing on this site.
Recent writing
All writing →- EssayBuilding the context up front: /deep-contextIf you keep fixing the same problem and it keeps coming back in a slightly different form, search is often not enough. This post is about the Claude Code skill I built for that case, the worked example that proved it, and the two attempts that did not work first.
- Story918MB, an Ofsted inspection, and a governor who is not a developerOne of our schools is waiting on an Ofsted re-inspection. The evidence sits in 1,650 files and 918MB. A few of us built something that has actually read it.
- StoryBuilding from my phone while watching the kidsFive ways I have reached the development environment on my Mac Mini from an iPhone in a playground, and why each one replaced the last.
- Essay"Email me when done": a persistent task runner with a delivery guaranteeLong-running tasks fail silently if the session dies before the result is ready. This is the runner I built to make "email me when done" actually mean that, plus the retry loop, fallback paths, and last-ditch file write that back it up.
- StoryWorking with Claude to build a merchant-risk model, then everything on topAfter the hackathon I spent a couple of weeks working with Claude on the merchant-risk model. What we built across the sessions, what I learned about variable engineering, and the parts that work well now versus the parts that are still a work in progress.
- EssayMemory that sleeps: a tiered memory architecture with daily promotionA two-tier retrieval system (semantic plus keyword), curated topic files as the source of truth, and a nightly pass that promotes session insights into the curated tier. What each piece does and what fails without it.
- EssayOne hour, one command: disaster recovery for a solo AI shopA worked recovery plan for the Mac Mini that runs my personal AI setup: what gets backed up, what does not, the ordered sequence to rebuild, and the gaps I have chosen to accept.
- StoryOne hour, one marketing listA vague ask ("give me a list of prospects that look like X") turned into a working pipeline across three data sources in under sixty minutes. Small build, but the speed is the point.