Start With the Thing That Goes Wrong
You ask for "a login form" and get a new page, a form library you don't use, a fake authentication call, and inline CSS that clashes with everything. You learn to start from what goes wrong, so the agent builds what you actually meant.
The Two Ways Context Fails
You have a 40-file project and one request: "Add a logout button to the header." To be safe, you paste App.jsx, the routing file, your auth helper, the API client, and the nav CSS — and you learn why too much context fails as badly as too little.
The Summary Is Not the Change
The agent hands back a diff: twelve files changed, a new helper, a couple of tests, and a cheerful note that everything is "working as expected." You learn to read the change itself instead of trusting the summary.
Each Job Answers a Different Question
On a real project you usually want one of three things from the agent: a small new feature, a fix for a bug you can name, or tests that prove the code does what you claim. You learn to prompt each one for the question it actually answers.