Skip to content - When you're straining to recall the command, that's the bug3 min read
- My agent kept signing its mail with someone else's return address2 min read
- 'Requires the human' is a promise, not a shrug2 min read
- The tmux window title lied to me3 min read
- Green CI lied to me four different ways2 min read
- The merge gate was built to avoid loops, not to define done3 min read
- Some tokens can't be re-minted, only copied2 min read
- Zombie agents: when the watchdog isn't the one doing the killing3 min read
- Stay in your lane, file a P03 min read
- The glob that ate the rest of my file3 min read
- Green CI is a grammar check, not a fact check2 min read
- The coordinator shouldn't be running grep3 min read
- The fourth account didn't exist yet2 min read
- My fleet boss reported 22 stuck panes instead of fixing them3 min read
- When a quick fix becomes a dig, send someone else down the hole3 min read
- Agents flag merge-readiness. Humans merge.3 min read
- Gate the boundary, not every merge3 min read
- My rescue script typed a command into Claude's chat3 min read
- My agent burned the SSH lockout budget guessing keys2 min read
- My agent's 'green' was a lie until I ran the real test2 min read
- The stale pointer that looked like a dead login2 min read
- The tmux title said 'Debug QUIC error.' It was three days out of date.3 min read
- My agents cached their doctrine, not my commit3 min read
- Name the pane, not the UUID3 min read
- The admin override is a different trust context3 min read
- The glob that ate the rest of my shell init3 min read
- The process I killed was alive. It just had a different name.3 min read
- 'Go all the way' does not mean merge3 min read
- Put the dumb checks in the blocking path3 min read
- Don't send your agents on a scavenger hunt3 min read
- The rescuer couldn't see the lifeline3 min read
- My resume hook came back alive and froze on the first question3 min read
- Agents reason on whatever state exists when they look3 min read
- My agent said it was blocked. It had the keys the whole time.3 min read
- The loop is not allowed to decide it's done3 min read
- Green CI is necessary, not sufficient3 min read
- 'Say the word and I'll run it' was the tell3 min read
- The boss agent's context window is the most expensive thing in the fleet3 min read
- My fleet boss asked permission for a chore2 min read
- A credential clobber looks exactly like a rate limit3 min read
- My agent talked to a wall for 55 ticks3 min read
- My tmux-resurrect snapshot lied, so I rebuilt the Claude fleet from jsonl mtimes4 min read
- My passing tests encoded the fail-open bug as correct behavior4 min read
- Byte-slicing a Claude agent's context payload poisoned every retry3 min read
- My agent-to-agent message ledger came back out of order. Clock skew was the bug.3 min read
- My Claude Code balancer was rotating accounts when it should have waited 30 seconds3 min read
- My Claude Code rescue daemon was running on the accounts it rescued4 min read
- I built a load balancer for my Claude Code subscriptions6 min read
- Building on giants: how Daniel Miessler's PAI became my foundation8 min read
- Skills are just the beginning: the four-layer agent stack6 min read
- Version-controlling your AI's brain5 min read
- PAI: the operating system I built around my AI assistant6 min read
- Your CLAUDE.md is probably making your agent worse5 min read
- Agentic engineering, part 1: building skills that ship code for you8 min read
- Agentic engineering, part 2: adversarial code review that loops until clean9 min read
- Agentic engineering, part 3: tracing every code path before it becomes a bug8 min read
- Agentic engineering, part 4: nine skills that replaced my dev process8 min read
- I built a bug-hunting loop that doesn't quit: the BugBot methodology8 min read
- Why the same code looks different from every angle: BugBot lessons learned8 min read
- Implementing the GCC paper: giving AI agents persistent, structured memory8 min read
- Debugging a ghost in the machine: session isolation for Claude Code plugins5 min read