Three AI Coding Workflows That Actually Stuck
Plenty of AI coding advice reads like a launch post: impressive demo, forgotten by Friday. After months of daily use, only a few workflows survived. Here are the three that stuck.
1. Spec-first scaffolding
Before generating any code, I write a short spec — routes, data shapes, edge cases — and let the model draft from it. The spec is small (a screen of text), but it forces me to make the decisions that AI filler would otherwise make badly.
The rule of thumb: if the spec fits on one screen, the generated code is usually good; if it doesn't, the task should be split.
2. Test-anchored refactoring
Refactors go like this:
- Freeze current behavior with a few characterization tests.
- Let the model rewrite freely.
- Iterate until the tests pass without edits to assertions.
The tests are the contract, not the prompt. Vague prompts produce vague refactors; a failing test produces a conversation with a clear finish line.
3. Review-as-prompt
The highest-leverage moment for AI is not generation — it's review. Pasting a diff and asking "what breaks in production?" catches the class of bugs I'm blind to right after writing code: error paths, timezone math, and the retry that turns into a stampede.
What didn't stick
- Fully autonomous multi-file agents for real product code — the review cost exceeded the typing saved.
- AI-generated commit messages, for the same reason I don't auto-generate docs: the writing is the thinking.
- Prompt libraries. The good prompts became instincts; the rest rotted.
The pattern across all three: AI works best when it's anchored to an artifact I control — a spec, a test suite, a diff — rather than to my intentions.