Skip to main content

Engineering notes

Tips, patterns and practice from building software with AI agents.

Uncommitted changes are part of the build

24 October 2026 · Guardrails & fail-closed

A fingerprint built from the commit at HEAD ignores edits in the working tree. We added a hash of the diff and the untracked source files, and a test that edits, adds and reverts.

When git cannot answer, rebuild

22 October 2026 · Guardrails & fail-closed

A fingerprint that falls back to a plain string when git fails can match a stored release. We made an unknown fingerprint read stale and force a rebuild, and wrote tests for both outcomes.

Hand the designer what ships

20 October 2026 · AI-built UI

When a design tool needs to show your pages, export the build's own resolved output, not your templates and content. A versioned, deterministic directory of exactly what ships is the only preview that cannot drift from the site.

Preview with the gate's own code

16 October 2026 · Testing & verification

A preview that estimates what the gate will do is a second implementation of the gate, and it will drift. Make the preview call the gate's own function, so a clean preview is the build passing.

The default that failed open

16 October 2026 · Guardrails & fail-closed

An optional argument with a safe-looking default is a guard that a forgetful caller can skip. For anything that protects a boundary, make the argument required and let the compiler refuse the caller.

Two seats per task

15 October 2026 · Agentic workflows

One agent builds each task and a fresh one reviews it before the next task starts; one scoped re-review per fix; one whole-branch review at the end. The shape matters more than the model.

A plan the next session can run

13 October 2026 · Specs & planning

An implementation plan written for an agent with no memory of the design conversation needs exact code in every step, a brief per task and a ledger that outlives the session.

Refuse, don't warn

8 October 2026 · Guardrails & fail-closed

A build that warns about a leak will ship the leak. Make every check a refusal with a name, prove each one with a red case first, and let the build fail closed.