Shipping with agents without losing taste
This is a test Post so Writings, Home, RSS, and Post detail routes have something real to render. Replace it when you publish for real.
Why this exists
Agents are fast. Taste is slow. The job is not to generate more UI — it is to decide what belongs on the page, what gets cut, and what interaction has to feel inevitable.
I treat AI as the default way of working. That does not mean shipping the first draft.
A small checklist I reuse
- One job per surface — if a section needs a second headline, it is two sections.
- Proof over posture — show the work (or the writing) instead of stacking adjectives.
- Delete the chrome — if removing a border, card, or badge does not hurt understanding, remove it.
type ShipGate = {
doesItProveSomething: boolean;
wouldIDefendThisInReview: boolean;
};
function readyToShip(gate: ShipGate) {
return gate.doesItProveSomething && gate.wouldIDefendThisInReview;
}
What “done” means here
Done is not “the agent finished a ticket.” Done is: a Visitor can tell, in a few seconds, that you are AI-pilled, that you care about craft, and that you can explain why something shipped.
When this site has real essays, this file goes away.