Ask — understand before you touch
The assignment is open: large orders should require a second approver. Your instinct might be to start editing. Resist it — because you don’t yet know how orders-service represents an order’s state, where approvals would even live, or what “audited” means in this codebase. Changing code you don’t understand is how you introduce the next bug while fixing this one. Ask mode exists for exactly this moment.
What Ask mode is
Section titled “What Ask mode is”Ask is the read-only mode. You ask questions about your code, the codebase, or the editor itself, and Copilot answers — explanations, traces, summaries — without touching a single file. That guarantee is the whole point: in Ask mode there is no diff to review and nothing to undo, because nothing changed. You can be as exploratory as you like with zero risk.
That makes it the right first move on any unfamiliar task, and it’s especially right for you, because both your repos are inherited. The fastest way into someone else’s code isn’t reading it top to bottom — it’s asking pointed questions and letting the agent do the tracing.
Using it on the approval feature
Section titled “Using it on the approval feature”Switch the Chat dropdown to Ask and start building a mental model. Good opening questions for this job:
Where in this service is an order’s status managed, and what states can an order be in?
Is there any existing concept of approval, review, or a second person signing off on an action? Show me where.
When something important happens to an order, is it recorded anywhere — an audit log, an event, a history table?
That last one matters more than it looks. The feature isn’t just “add an approval flag” — a second-approver workflow has to be auditable, which means you need to know how this system records significant events before you add a new one. Ask mode will trace it for you, and here’s where the running story turns: the answer comes back pointing out of orders-service. The audit helper, and the validation that would enforce a threshold, aren’t local — they live in shared-lib, the library a dozen services import.
That’s a discovery you want to make in the safe mode, before you’ve written anything. It reframes the whole job: you can’t cleanly build the feature in orders-service until shared-lib can express “this order needs approval” and record it. One assignment just became two pieces of work, in two repos, with very different stakes — and you found that out by asking, not by breaking something.
Why start here, every time
Section titled “Why start here, every time”Ask mode feels like the slow option when you’re itching to ship. It’s the opposite. The time you spend understanding the terrain is recovered many times over in edits you don’t have to throw away because they fought the grain of the codebase. On inherited code the rule is almost absolute: understand in Ask before you change in anything else.
Now you understand the shape of the problem — and you know the first concrete change is a small, surgical one down in shared-lib. A scoped change to specific files you’ve already identified is exactly what the next mode is built for. Next: Edit — a scoped change.