I used to treat ChatGPT like a vending machine. Need a React hook? Drop a coin. Need a PR summary? Drop another. Every ask started from zero — stack, conventions, what “done” meant — and every reply drifted a little from how we actually ship.
The waste wasn’t the tokens. It was re-explaining our frontend rules every single time, then cleaning up the same mistakes.
So I stopped pasting one-offs and started treating prompts like code: named, versioned, and checked into the repo.
One-off asks don’t compound
A throwaway chat is fine for a throwaway question. Frontend work rarely is throwaway:
“Write a Modal” without our focus-trap / Escape / return-focus rules
“Add loading states” without our skeleton vs spinner convention
“Review this PR” without what AI should skip vs what a human owns
“Refactor this form” without our form library and error-message pattern
You get something that compiles. You don’t get something that matches the last three PRs.…