The method
The Playbook
How I work with AI agents, and how that changed from the first project to now. Each habit below links to a project where it shows up.
How it grew
April
Home Manager, CityBrew
Plan first with a structured method, then let an autonomous loop build story by story. Evenings went to testing by hand.
July
CityBrew, the Mac apps
Cost becomes part of the design. Fixes for bugs that should not come back get written into each repo's instructions for later sessions.
August
Reviresco
State lives in the repo: a STATE file every session reads first and updates last. Guardrails move out of prompts and into code.
August to now
SignalWall
Decisions recorded with how to reverse them, work orders sized for one focused session, and orchestrating agents that run builders in parallel, each owning its own files.
The habits, with the evidence
01
Enforce rules in code, not only in prompts
- CityBrew
Kill switches that default to paused, and a hard failure instead of ever emailing an empty digest.
Source: .github/workflows/weekly-digest.yml
- Reviresco
Concepts are screened twice for trademark risk: once by the model, then by a denylist in code. Killed ideas are kept with the reason, never dropped.
Source: revirescosupplyco src/lib/screening.ts
- 3D printing
After three jams, Claude read the printer's own logs and found the signal: a steady 15% drop in heater power at the same temperature means plastic has stopped flowing. A watcher script checks for it, and every print file must pass a preflight check first.
Source: 3D Printing project notes, jam investigation, October 2
- Side quests
Twenty tools for an AI agent to manage a fantasy team. Every write plans, refuses if blocked, runs dry by default, executes once on confirm, verifies, and logs exactly one audit row.
Source: ClaudeCode sleeper-agent/README.md
- SignalWall
Every release checks itself in its own environment, then must prove it is healthy after restart or it flips back.
Source: docs/SPEC.md, Auto-update
- CityBrew
02
I make the judgment calls
- Reviresco
The cinema went from design boards to working pages in about fifteen minutes, then gained Wallet tickets and a seat picker.
Source: goreviresco cinema, 2026-09-10
- Three small Mac apps
The fan icon shipped spinning at 30 frames a second in code and once a second on screen. The fix handed the spin to the system compositor.
Source: BetterBattery ca02323
- 3D printing
The first replacement was my idea: drop the rod into a cradle and hold it with a magnet. It didn't work, so I scrapped it and asked for a snap claw like the stock one, only stronger. That's the clip in the deep dive.
Source: Printer setup chat, September 30 and October 1
- Reviresco
03
Write the spec before the code
- Home Manager
Product brief, requirements, architecture and UX design, each built step by step with a planning method for AI agents, all on the first day.
Source: home-manager-app _bmad-output/planning-artifacts
- SignalWall
No canvas size is hardcoded: every golden frame renders at 128 and 192 dots wide.
Source: CLAUDE.md, Non-negotiables
- Home Manager
04
Automate manual steps
- Three small Mac apps
An in-place updater that installs whatever app the release contains, so renaming the app could not break it.
Source: BetterBattery Sources, UpdateChecker.swift
- Three small Mac apps
05
Break work into session-sized tasks
- CityBrew
An autonomous build loop shipped five epics of stories in about 80 minutes; the evening went to human testing and fixes.
Source: CityBrew history, 2026-04-28, 13:05 to 14:24
- CityBrew
06
Design for cost
- CityBrew
A cost briefing found most of the spend was web search during a daily scrape and a server running all day to fire a timer. The redesign made it one short weekly run.
Source: docs/COST-AND-ARCHITECTURE-BRIEFING.md
- CityBrew
07
Keep project state in the repo
- Three small Mac apps
Rules that came out of bugs, like never animating with a timeline view in a menu bar panel, are written into each repo's instructions so the next session starts knowing them.
Source: BetterBattery, DayDial, NetPulse CLAUDE.md
- Three small Mac apps
08
Record decisions and how to reverse them
- SignalWall
45 architecture decisions on record, each with an escape hatch. A decision changes only by a new entry that supersedes it.
Source: SignalWall docs/DECISIONS.md
- SignalWall
09
Retire a build when something simpler works
- CityBrew
Retired once a Claude scheduled task and a skill could do the same weekly job with no servers, no database and no deploys.
Source: Owner, Workshop kickoff, 2026-10-06
- CityBrew
10
Run agents in parallel on separate files
- SignalWall
Orchestrating agents ran builders in separate worktrees, each owning its own files, working through work orders sized for one focused session.
Source: SignalWall STATE.md; docs/build/S8.md
- SignalWall
11
Test against recorded API responses
- SignalWall
Every data source is tested against a recorded real response. No test ever calls the live service, and no API shape is written from memory.
Source: SignalWall docs/CONVENTIONS.md, Tests
- SignalWall
Printing this page gives a clean handout of the habits and their evidence.