A simple framework for writing strong prompts

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?