Think of every good prompt as having four ingredients:
1. Goal – What do you want Copilot to do?
Be specific about the task.
- ? “Help me with architecture”
- ? “Create a high-level system architecture for a cloud-based order processing system”
2. Context – Background Copilot needs to do it well
Explain why and for whom this is being done.
- Audience (execs, developers, customers)
- Constraints (time, tech stack, policies)
- Your role or situation
Example: “This is for a design review with senior architects. The system runs on Azure and must support high availability.”
3. Source – What should Copilot use or avoid?
Tell Copilot what information to rely on.
- Documents, standards, frameworks
- Examples to follow
- Things to exclude
Example: “Use Azure Well-Architected Framework principles. Do not include vendor comparisons.”
4. Expectations – How should the output be structured?
This dramatically improves quality.
- Format (bullets, table, diagram description)
- Level of detail
- Tone
Example: “Return a one-page summary with bullet points and a simple ASCII diagram.”
Before & after example
? Weak prompt
“Design a system for processing orders.”
Why it struggles:
- No goal clarity
- No context
- No structure
- No constraints
? Strong prompt
Goal: Design a high-level system architecture for an order processing platform.
Context: This is for a design review with senior architects. The platform will be cloud-native and run on Azure, supporting ~10k orders per hour with high availability.
Source: Use Azure Well-Architected Framework principles. Assume microservices and event-driven architecture.
Expectations: Provide a concise architecture description, a bullet list of key components, and a short section on scalability and failure handling.
Why this works:
- Copilot knows what to do, why it matters, and how to respond
- No guessing required
Quick checklist you can reuse
Before sending a prompt, ask yourself:
- ? Is the task clear?
- ? Did I explain why or for whom?
- ? Did I mention inputs, sources, or constraints?
- ? Did I specify the output format?