Understand GitHub Copilot Data & Architecture

This skill area accounts for 10–15% of the exam. It covers how Copilot handles data, the flow from input to suggestion, proxy filtering, post-processing, the code suggestion lifecycle, and inherent LLM limitations.

Disclaimer: These are personal study notes. Always verify against the official study guide.

Data Handling & Flow

Data Usage, Flow & Sharing

Understanding how GitHub Copilot handles data is essential for both the exam and for making informed decisions about deploying it in your organization. Refer to the GitHub Trust Center for authoritative details.

Three Categories of Data

Data Policies by Plan — Exam-Critical Table

Data Policy AspectFree / Pro / Pro+ / MaxBusinessEnterprise
Prompts retained for model training? User opt-in/opt-out choice No — never No — never
Suggestions retained for model training? User opt-in/opt-out choice No — never No — never
Telemetry / engagement data collected? Yes (opt-out available) Limited / no individual prompts Limited / no individual prompts
Content exclusions available? No Yes Yes
Data stored during request? Transiently (not persisted) Transiently (not persisted) Transiently (not persisted)
⚠ Must-Know — Training Data

Business and Enterprise plans never use prompts or suggestions for model training. Free/Pro/Pro+/Max users can control this via their account settings (opt in or out) — Max is still an individual plan, so it follows the same data policy as Free/Pro/Pro+, not the Business/Enterprise policy. This is one of the most frequently tested data architecture facts.

Input Processing & Prompt Building

Copilot assembles a prompt from multiple context sources before sending it to the LLM. Knowing the priority and composition of these sources is testable.

Context Sources (Priority Order, Highest First)

  1. Selected code: Any code you have highlighted is treated as primary context
  2. Current file: Code immediately surrounding the cursor (both above and below) has the highest automatic influence
  3. Open tabs: Other files open in the IDE supply supplementary context; opening relevant files improves suggestions
  4. Repository / workspace structure: File paths and project layout help detect language, framework, and conventions
  5. Instructions files: Repository-level instructions (.github/copilot-instructions.md) and path-specific instructions
  6. Chat history: Previous messages in the current chat session (for Chat requests)

The prompt is constructed to fit within the model's context window (a finite token limit). Copilot prioritizes the most relevant context when the window would be exceeded — less relevant content is dropped.

What the Proxy Constructs

Proxy Filtering & Post-Processing

GitHub operates a proxy service between the IDE client and the underlying LLM. This is architecturally significant — it is where data policies are enforced.

The Proxy's Role

Post-Processing Pipeline (output side)

ⓘ Architecture Summary: Proxy Is the Control Plane

The proxy is where all data policy decisions happen: content exclusion enforcement, duplication detection, safety filtering, telemetry collection, and routing. The IDE extension is just a client; the model is just an inference engine. The proxy is the intelligent intermediary.

Lifecycle & Limitations

Code Suggestion Lifecycle (End-to-End)

Being able to trace a suggestion from user action to acceptance is a key exam topic. Study this flow carefully.

  1. Developer action: Types code, writes a comment, opens a file, or initiates chat
  2. Context gathering (IDE extension): Collects current file, selected code, open tabs, repo structure, instructions files
  3. Content exclusion check (IDE): Removes any content from excluded files/repos before sending
  4. Prompt assembly: Fits context into the model's token window; drops lower-priority context if needed
  5. Encrypted transmission: IDE extension sends the assembled prompt to GitHub's proxy over HTTPS
  6. Proxy processing: Routes to the selected model; applies data policies and telemetry controls
  7. LLM inference: The language model generates one or more candidate completions
  8. Post-processing (proxy): Applies duplication detection, safety filters, quality checks, formatting
  9. Response delivery: Filtered suggestions returned to the IDE extension
  10. Display: Ghost text appears (or Chat response shown) in the editor
  11. Developer decision: Tab to accept / Esc to dismiss / Alt+] to cycle / modify inline
  12. Telemetry: Acceptance/rejection recorded per plan data policy

Limitations of LLMs & Copilot

Inherent LLM Limitations

LimitationPractical Implication
No semantic understanding — pattern matching onlyMay produce syntactically correct but logically wrong code
Finite context window (token limit)Cannot consider the full codebase at once; context is sampled
Training data cutoffMay suggest deprecated APIs, outdated security practices, or non-existent methods
HallucinationsGenerates non-existent function names, wrong library APIs, or fabricated facts — with full confidence
No runtime awarenessCannot run code, call APIs, or verify its output is correct at runtime
Non-determinismSame prompt can yield different results; not reproducible
Bias from training dataMay reproduce insecure patterns, outdated idioms, or biased language from training corpus

Copilot-Specific Limitations

💡 Study Tip

Be able to trace the full suggestion lifecycle in order. Know that the proxy is the enforcement point for data policies, not the IDE or the model. Understand the difference between limitations that are inherent to all LLMs vs. limitations specific to Copilot's implementation.

Study Resources