<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://samfoy.github.io/circuit-break/</id><title>Circuit Break</title><subtitle>Techniques, tools, and lessons from building with AI coding agents.</subtitle> <updated>2026-04-20T14:25:05-07:00</updated> <author> <name>Sam Painter</name> <uri>https://samfoy.github.io/circuit-break/</uri> </author><link rel="self" type="application/atom+xml" href="https://samfoy.github.io/circuit-break/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://samfoy.github.io/circuit-break/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Sam Painter </rights> <icon>/circuit-break/assets/img/favicons/favicon.ico</icon> <logo>/circuit-break/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Lie to Your Agent (It'll Write Better Code)</title><link href="https://samfoy.github.io/circuit-break/posts/lie-to-your-agent/" rel="alternate" type="text/html" title="Lie to Your Agent (It&amp;apos;ll Write Better Code)" /><published>2026-04-20T10:00:00-07:00</published> <updated>2026-04-20T10:00:00-07:00</updated> <id>https://samfoy.github.io/circuit-break/posts/lie-to-your-agent/</id> <content type="text/html" src="https://samfoy.github.io/circuit-break/posts/lie-to-your-agent/" /> <author> <name>Sam Painter</name> </author> <category term="AI Agents" /> <category term="Techniques" /> <summary>“Write tests for this function” produces mediocre tests. “This function has a bug — find it” produces tests that actually catch things. Same agent. Same code. Different framing. Wildly different results. The generation trap When you ask an agent to write tests, it enters generation mode. It reads the function signature, infers the happy path, and produces tests that confirm the code does wha...</summary> </entry> <entry><title>Turning a Coding Agent into a Personal Assistant</title><link href="https://samfoy.github.io/circuit-break/posts/turning-a-coding-agent-into-a-personal-assistant/" rel="alternate" type="text/html" title="Turning a Coding Agent into a Personal Assistant" /><published>2026-04-19T14:00:00-07:00</published> <updated>2026-04-19T14:00:00-07:00</updated> <id>https://samfoy.github.io/circuit-break/posts/turning-a-coding-agent-into-a-personal-assistant/</id> <content type="text/html" src="https://samfoy.github.io/circuit-break/posts/turning-a-coding-agent-into-a-personal-assistant/" /> <author> <name>Sam Painter</name> </author> <category term="AI Agents" /> <category term="Architecture" /> <summary>I used to run OpenClaw as my personal assistant. It read my iMessages and extracted tasks into Things 3. It checked Gmail hourly and appended summaries to my Obsidian daily notes. It sent me a morning briefing on Telegram with weather, calendar, and health data from Garmin. It had a whole cron system that kicked off jobs throughout the day. I’d been using pi at work for months as a coding agen...</summary> </entry> <entry><title>I Built a Native iOS App in Three Days with an AI Agent</title><link href="https://samfoy.github.io/circuit-break/posts/i-built-a-native-ios-app-in-three-days-with-an-ai-agent/" rel="alternate" type="text/html" title="I Built a Native iOS App in Three Days with an AI Agent" /><published>2026-04-19T10:00:00-07:00</published> <updated>2026-04-19T10:00:00-07:00</updated> <id>https://samfoy.github.io/circuit-break/posts/i-built-a-native-ios-app-in-three-days-with-an-ai-agent/</id> <content type="text/html" src="https://samfoy.github.io/circuit-break/posts/i-built-a-native-ios-app-in-three-days-with-an-ai-agent/" /> <author> <name>Sam Painter</name> </author> <category term="AI Agents" /> <category term="Projects" /> <summary>I don’t know Swift. I’ve never opened Xcode with the intent to ship something. Last week I had a web app, Pi Dashboard, a browser-based UI for the pi coding agent. By Friday I had a native iOS app with 10,700 lines of Swift across 50+ files, a Share Extension, a WidgetKit widget, Siri Shortcuts, and integrations with HealthKit, Calendar, Contacts, Reminders, Location, and Speech Recognition. 8...</summary> </entry> <entry><title>Your Agent Forgets Everything Between Sessions</title><link href="https://samfoy.github.io/circuit-break/posts/your-agent-forgets-everything-between-sessions/" rel="alternate" type="text/html" title="Your Agent Forgets Everything Between Sessions" /><published>2026-04-16T10:00:00-07:00</published> <updated>2026-04-16T10:00:00-07:00</updated> <id>https://samfoy.github.io/circuit-break/posts/your-agent-forgets-everything-between-sessions/</id> <content type="text/html" src="https://samfoy.github.io/circuit-break/posts/your-agent-forgets-everything-between-sessions/" /> <author> <name>Sam Painter</name> </author> <category term="AI Agents" /> <category term="Architecture" /> <summary>Your AI coding agent is stateless. Every session starts from zero. It doesn’t know you prefer conventional commits. It doesn’t remember that --force-push broke prod last Tuesday. It doesn’t know your project uses Dagger for DI, or that the cr CLI can’t handle interactive prompts in headless sessions. You’ve told it all of this before. Multiple times. It learned nothing. This is the most under...</summary> </entry> <entry><title>Stop Putting Behavioral Rules in Your AI Agent's Prompt</title><link href="https://samfoy.github.io/circuit-break/posts/stop-putting-behavioral-rules-in-your-agents-prompt/" rel="alternate" type="text/html" title="Stop Putting Behavioral Rules in Your AI Agent&amp;apos;s Prompt" /><published>2026-04-15T10:00:00-07:00</published> <updated>2026-04-15T12:03:10-07:00</updated> <id>https://samfoy.github.io/circuit-break/posts/stop-putting-behavioral-rules-in-your-agents-prompt/</id> <content type="text/html" src="https://samfoy.github.io/circuit-break/posts/stop-putting-behavioral-rules-in-your-agents-prompt/" /> <author> <name>Sam Painter</name> </author> <category term="AI Agents" /> <category term="Techniques" /> <summary>Every AI coding agent has rules: “never force push,” “use conventional commits,” “don’t run dev servers that block the agent.” Most people put these in the system prompt. This works most of the time. Then it doesn’t, and the agent drops your production database. The prompting treadmill You start with a simple prompt. The agent does something wrong, so you add a rule. It does something else w...</summary> </entry> </feed>
