Finding What My Agents Already Did

I knew we’d dealt with squaremap on the Minecraft server. What I couldn’t remember was which version had failed, why it failed, and whether the fix had actually been deployed. I could have asked the agent to summarize the story again. I wanted to see the part where Paper rejected the plugin. This is a fairly common problem in my Threave installation. The Minecraft conversation alone has a lot of history, and it’s one of many sessions in the sidebar. I’ve got others for this blog, BirdNET, a 3D printer, my farm app, and the app that manages all of them. An agent can remember a remarkable amount, but I’m still the person who has to decide what to trust and what to do next. ...

September 28, 2026 · 4 min · 820 words · Me · - views

Why I Built Threave

I have too many projects. Starting them is easy; remembering which terminal has the agent working on which one is the hard part. There’s an agent helping with the Minecraft server, another working on my farm app, and one that knows far too much about the USB microphone on my balcony. This blog has its own conversation. So does the SMS bridge. At some point I was spending almost as much time finding the right conversation as I was having it. ...

September 24, 2026 · 7 min · 1360 words · Me · - views

From Chat Window to Process Supervisor

I’ve accumulated a pretty ridiculous number of conversations with AI. There’s one for the Minecraft server, one for the bird microphone, one for the farm application, one for this blog. And then there’s the conversation about the application I built to manage all the other conversations. That application is called Gorchestra. Yes, I built more software to keep track of the software I was already building. This is apparently how I relax. ...

August 15, 2026 · 4 min · 798 words · Me · - views

What Claude Remembers

The first post talked about the journal and check-in loop. The second talked about skills — markdown files Claude reads to know what to do. This last one is about how Claude remembers things across sessions. Claude Code ships with a feature called auto-memory: a small filesystem of facts the model can write to and read from, scoped to a project. When I correct Claude (“stop appending ‘Sent by Claude’ to my texts”), that becomes a memory file. When I confirm a non-obvious decision (“yes, the bundled PR was the right call”), that’s also a memory. Anything I wouldn’t want to repeat to a fresh session — preferences, project context, pointers to where things live — goes there. ...

April 28, 2026 · 8 min · 1670 words · Me · - views

Skills Are Just Markdown

The first post in this series talked about /journal and /checkin — a daily journal and a 15-minute check-in loop that runs unattended on a schedule. I called them “skills” without explaining what that means. This post is about the mechanism. A skill is a markdown file. That’s the whole abstraction. Specifically: a directory under .claude/skills/<name>/ with a SKILL.md inside. The directory name is the slash command. The contents of SKILL.md are the instructions Claude reads when you invoke it. There’s no plugin API, no shell wrapper, no “register your command.” Drop a directory in, the command exists. Edit the file, the behavior changes. ...

April 28, 2026 · 8 min · 1615 words · Me · - views

My Life Runs in a Markdown File

I have a Claude Code-powered personal assistant that runs on a schedule. It reads my email, my calendar, my texts, the kids’ school calendar, my plant care schedule, the weather, and my custody plan. It writes the day to a markdown file every morning and updates that file every 15 minutes throughout the work day. Most of the time it doesn’t tell me anything — that’s the point. The whole thing lives in a git repo I call life/. About 6,000 lines of markdown, a handful of shell scripts, 17 slash commands. Here’s a partial list of what it does in a normal week, all without me asking: ...

April 27, 2026 · 9 min · 1747 words · Me · - views