Blog
Notes on building with clearer specs
Short, opinionated posts about spec-driven development, writing for AI coding agents, and closing the gap between product and engineering.
- ·6 min read
Claude Code vs Cursor vs GitHub Copilot — which should you use in 2026?
A practical comparison of the three dominant AI coding agents in 2026 — Claude Code, Cursor, and GitHub Copilot. Not benchmarks. Which one wins for your actual workflow.
- ·6 min read
How to write acceptance criteria for AI coding agents (with examples)
Acceptance criteria written for human engineers fail when handed to AI coding agents. Here's what makes the difference — with before/after examples for common feature types.
- ·6 min read
PRD Template for AI Coding Agents (Free, Copy-Paste)
A copy-paste PRD template tuned for AI coding agents like Claude Code, Cursor, and Codex — with the failure-states and out-of-scope sections that stop agents from hallucinating.
- ·8 min read
How to prompt Claude Code for a large feature (without losing the thread)
A practical workflow for prompting Claude Code on features that span multiple files, sessions, and steps — without hallucinations, half-implementations, or context drift.
- ·9 min read
.cursorrules examples that actually work — a practical guide
Real .cursorrules examples for Next.js, Python, and Rails. Learn how to write Cursor AI rules that reduce hallucinations, enforce your patterns, and cut revision cycles.
- ·7 min read
How to write a CLAUDE.md that actually controls your AI coding agent
A practical guide to writing CLAUDE.md and AGENTS.md files that give Claude Code, Cursor, and Codex the context they need to write correct code the first time.
- ·7 min read
The product spec template that AI coding agents actually follow
A structured spec template built for Claude Code, Cursor, and Codex. Copy-paste it, fill in the blanks, and hand it to your agent — it produces dramatically better code on the first pass.
- ·7 min read
Why every Claude Code session forgets your context — and what to do about it
Claude Code doesn't remember yesterday. It can re-read your repo, but it can't re-derive the decisions that aren't in the code. Here's the pattern that actually survives context resets.
- ·6 min read
Vibe coding vs spec-driven development — the real difference isn't speed
Everyone thinks spec-driven development is the slow, bureaucratic sibling of vibe coding. The actual trade-off is the opposite. Here's what six months of shipping AI-coded features taught me about when each approach wins.
- ·7 min read
How to write a spec for Claude Code (that it actually follows)
A field guide to writing specs that AI coding agents like Claude Code, Cursor, and Codex can execute without hallucinating scope — with a copy-paste template.