Your first Ask
In short
Ask for one outcome at a time, say what it is for and what must not change, and read the diff before you accept it — a good brief is the difference between one turn and five.
Ask is where you talk to the agent. It has your project’s code, its architecture, and its history — so you are briefing a colleague who already knows the codebase, not prompting a blank model.
Brief it like a task, not a search query
A useful request names three things:
- The outcome. “Customers should be able to cancel an order until it ships.”
- The reason. Constraints you never stated are constraints the agent cannot honour.
- The boundary. “Do not touch the pricing logic.” Say it, and the agent will not.
Compare “add cancellation” with “let a customer cancel an order until it ships; refunds are
out of scope for now; the order state machine is in //!SAFE and I want to review that diff.”
The second one lands in a single turn.
One outcome per turn
Five unrelated changes in one message produce one large diff that is hard to review and expensive to undo. Small turns are cheaper to read, cheaper to reverse, and cost fewer points.
Attach instead of retyping
Screenshots, error output, a sample payload, a spec — attach them. Pasted fragments lose the detail that mattered.
Read the diff
Every change arrives as a diff, and every turn can be undone as a whole. Reviewing
//!SAFE diffs is the point of that zone existing; skimming them defeats it.
When the agent stops
It may pause and ask you a question, or stop because an action needs human sign-off. Both are the governance working, not an error.