RL-AI / AI-native engineering
How I work with AI agents
Agents write a lot of my code. Specs, hooks, tests and reviews decide what ships. Everything below is real and running in this site's repository.
01 / AI-native engineering
Every change goes spec first
- 1BrainstormIntent and constraints agreed first
- 2SpecWritten, reviewed, committed
- 3PlanBite-sized tasks with tests
- 4Agents buildTest first, every step verified
- 5ReviewA fresh reviewer agent, then me
- 6Pull requestCI plus a Claude review on GitHub
This site went through exactly this flow: a design spec, a design-system spec, a pages spec and an implementation plan per phase, all committed next to the code.
02 / AI-native engineering
Unsafe edits are blocked, not discussed
- Every edit is formatted and linted by a hook the moment it lands.
- Stopping is blocked until typecheck and tests pass.
- A guard rejects skipped git hooks, lockfile edits and unapproved config changes.
- Architecture tests fail the build when a layer reaches where it shouldn't.
## Guardrails - Change the shared config at the root. Package `tsconfig.json` files only `extends` the base and set `include`; `apps/*` add only what their framework needs (ADRs 0002, 0004). - Add a tool, a config file or an `apps/*` entry when real code needs it, and record why in a new ADR. - Secrets live in `.env` files, which are gitignored. Commit a `.env.example` with names only.
03 / AI-native engineering
The architecture, as playbooks
04 / AI-native engineering