Notes from the build.
Engineering deep-dives and design decisions behind Empryo.
engineeringI made my agent's prompt smarter before the expensive model ever read it
My first prompt compiler wrote hypotheses and dropped the fix rate from 3/3 to 1/3. The version that only points at files scored 3/3 at 11% less spend. Same model, same bug — the difference was deleting every field where a guess could live.
10 minread →Jul 25, 2026
architectureMy code map was wrong about my own repo. So I taught it to learn.
A formatter in a side app ranked #1 across my entire codebase. Static analysis said it was important. My git history said otherwise. Here's what happened when I let the graph learn from how I actually work: 86 to 3,239 co-change pairs, and that formatter fell to #103.
5 minread →Jul 17, 2026
guideThe 10 best AI coding agents in 2026, ranked by someone who builds one
Ten agents ranked on what they actually cost and actually fix, measured against real provider invoices instead of vendor claims. Includes when to pick each one, and when not to pick mine (disclosure, I build #2).
8 minread →Jul 16, 2026
benchmarksI benchmarked two AI agents. Then I read the bill.
pi said $6.25. Anthropic billed $9.19. Empryo said $7.06 — billed $7.08. Self-reported agent costs are fiction until someone audits them. I keep auditing.
4 minread →Jul 16, 2026
benchmarksFive real bugs, two agents, and the one nobody could fix
We stopped writing benchmark fixtures and used real merged PRs from hono, zod and ky, too new for any model to have memorized. 7/10 vs 6/10, one 8-minute hang, and a bug that beat everyone.
4 minread →Jun 1, 2025
engineeringWhy an AI agent should edit symbols, not strings
A failed edit costs three tool calls: the miss, the re-read, the retry. Empryo's ast_edit names a symbol and mutates the syntax tree — no search string, no line numbers, nothing to mismatch. It started as my Master's thesis.
3 minread →May 20, 2025
architectureThe Genome - a live structural map of your codebase
Before the first message, Empryo's agent already knows every exported symbol, who calls it, and what breaks if it changes. The Genome is that map — ranked, held in context, rebuilt after every edit.
2 minread →