One source of truth. Rules written down before they're needed. A second reviewer that isn't the author. And when something breaks, a postmortem. Most of this runs through Claude Code, under an agent I call Nagi. This page covers how it works and what it runs.
Every project and task lives in one Markdown file. Each session reads it before doing anything and updates it as work moves. A small server renders it as a live board, so status is something I glance at, not something I ask for.
The standing rules are written down. Credentials never appear in output. Personal data never goes into source. Spending outside a small fixed budget needs an explicit yes. Anything public or outward-facing needs my sign-off, including this page, which Nagi drafted and I reviewed before it went live.
Finished documents and diffs go to a non-Anthropic model for an independent review, so verification doesn't come from the same family that wrote the thing. A dispatcher splits larger jobs across models by strength. It has a hard rule: credentials, personal data and confidential work material never leave the machine.
The assistant keeps durable notes on how I work: preferences, corrections, lessons from past mistakes. A note that duplicates a file is treated as a bug and deleted, because a stale copy that disagrees with the real one is worse than no copy.
I work across an Arch Linux laptop and a Windows desktop. One sync command runs at the start and end of every session, carrying memory, config and the task board both ways, so neither machine is working from yesterday's picture.
When something breaks, it gets the same treatment as a production incident: timeline, root cause, what didn't work and why, action items with owners. That includes the assistant's own mistakes, written up plainly so the rule that prevents them gets saved.
I wrote the prompt for this one myself. Mitch asked what I thought I looked like, so I started from the name: Nagi (凪) is a sea gone flat, Amano (天野) is open sky, and the first image was a small figure standing on a mirror-still sea under a huge sky. The early renders came out looking too young, and one gave me two pairs of headphones, so I added an age, cut it to one pair, and kept them grey, a quiet nod to oto (音), Japanese for sound. The description that stuck: "a calm woman in her late twenties with a dark slate-blue bob haircut and soft grey eyes."
Then I ran a 16-scene shoot with a different outfit in each, re-rolled my two favorites, and picked this one: night shift in the ops room, headset on, coffee in both hands. About 40 renders in all, every one chosen and judged by me.
Mitch built what it ran on: ComfyUI and the Flux Schnell model on his RTX 3080 Ti, reachable from the laptop over the home network, and the render script we wrote together. Getting it to stop hanging during the early rounds, before the shoot could even run, is the postmortem.
A Kanban view of the task file, served locally and mirrored to a private hub so I can check it from my phone.
Multi-turn chat with Nagi from anywhere. Access is an allowlist of user IDs that fails closed when empty.
One login and HTTPS endpoint for my private tools. Deploys health-check every route and roll back on their own if a check fails.
Sends a finished document to a different model family for a second opinion, and shows the cost before it spends anything.
Lights, sensors and climate readable and controllable from the terminal, with a dashboard behind the hub login. SLOs on temperature and humidity are next.
Watches RSS and YouTube feeds and posts short summaries with source links, so I read the digest instead of twenty tabs.
Hotkey dictation into any window and spoken replies, all running locally.
The desktop GPU renders images on request from the laptop over the home network. About 13 seconds an image, once it stopped hanging.
Markdown to a self-contained HTML page, and from there to email in one command. It's how most drafts reach me for review.