Domain 2 content was verified on 26 August 2026 and is current as of August 2026. It is the biggest GH-300 domain, and every detail below has been checked against current GitHub documentation.
Microsoft Learn — GH-300 study guide · Domain 2 weight 25–30%. Content last verified 26 August 2026.
If you only have time to go deep on one product domain, make it this one: Domain 2 spans daily developer use, terminal workflows, agentic coding, collaboration features, and administrator policy control.
What Domain 2 tests#
Domain 2 is not just “use Copilot Chat.” It expects you to know which Copilot surface fits a task, how developers activate those surfaces, how context is supplied or withheld, and how organizations control feature availability. The official subskills divide into four groups: Copilot in the IDE, Copilot CLI, feature capabilities, and organization-wide settings.
| Area | What to remember |
|---|---|
| IDE use | Enable Copilot, accept inline suggestions, use chat modes, trigger CLI or agent workflows, and configure exclusions. |
| CLI use | Install Copilot CLI, start interactive sessions, use non-interactive prompts, manage sessions, generate scripts, and allow or deny tools. |
| Capabilities | Agent mode, Plan mode, Copilot Edits, MCP, cloud agent, custom agents, subagents, code review, Spaces, Spark, PR summaries, and prompt files. |
| Governance | Policies, feature availability, code review policy, audit log events, content exclusions, and subscription management through the REST API. |
Feature availability by plan
Agent mode is available on all Copilot plans, including Free. Copilot cloud agent is available to Copilot Student and paid plans, but not Free. Content exclusions and organization policy management are Business and Enterprise capabilities. Audit logs are available on Pro+, Max, Business, and Enterprise. Spaces and MCP are available on all plans. Copilot Max exists as a $100/month individual plan.
Use GitHub Copilot in the IDE#
In the IDE, Copilot works in layers. Inline suggestions appear as gray “ghost text” while you type; Copilot Chat answers questions and can use variables, participants, slash commands, and attached files; inline chat starts a focused conversation from the editor or terminal; and agent mode can plan, edit files, run terminal commands with approval, and iterate. GitHub Docs — Getting code suggestions in your IDE GitHub Docs — Asking Copilot questions in your IDE
To enable Copilot in VS Code, install or open Copilot from VS Code, sign in to GitHub, and make sure inline suggestions are enabled. VS Code installs the required Copilot extensions automatically during setup. Users can enable or disable completions from the Copilot menu, from Settings under Extensions → Copilot, or per language with the github.copilot.enable setting. GitHub Docs — Configuring Copilot in your environment
Inline suggestions are best for local, low-friction coding. Type code or a natural-language comment, review the suggestion, press Tab to accept, press Esc to dismiss, and use Alt+] or Alt+[ on Windows/Linux to move through alternatives in VS Code. Press Ctrl+Enter in VS Code to open additional suggestions in a separate pane. GitHub Docs — Keyboard shortcuts for Copilot in the IDE
Verified VS Code keyboard shortcuts
For VS Code, the verified shortcuts are Tab, Esc, Alt+], Alt+[, Ctrl+Enter, and Ctrl+I for inline chat. Accepting a word with Ctrl+Right is documented for Eclipse. Ctrl+Shift+I is not listed as a verified VS Code Copilot shortcut.
Chat modes: Ask, Plan, Agent#
Copilot Chat in the IDE currently uses three modes: Ask, Plan, and Agent. Ask mode is optimized for explanations, code questions, and suggestions without autonomous file changes. Plan mode researches a task with read-only tools, produces an implementation plan, asks open questions, and waits for review before implementation. Agent mode is for multi-step work where Copilot can determine files, propose edits, suggest or run terminal commands with approval, and iterate until the task is complete. GitHub Docs — Copilot Chat agents
Chat modes: Ask, Plan, and Agent
The GH-300 chat-mode set is Ask / Plan / Agent. Plan mode creates a reviewed plan before Copilot changes code.
Use Ask when you need understanding. Use Plan when the task is larger than one obvious edit and you want the approach reviewed first. Use Agent when you are ready for Copilot to act, inspect the repository, edit files, run checks, and recover from errors. In agent mode, each prompt consumes GitHub AI Credits. Plan mode is a safety tool: it lets Copilot gather context and expose assumptions before code changes happen.
Chat references, commands, and feedback#
Copilot Chat supports slash commands for common tasks and chat variables for explicit context. In VS Code, the common slash commands are /clear, /explain, /fix, /fixTestFailure, /help, /new, and /tests. Variables include #block, #class, #comment, #file, #function, #line, #path, #project, #selection, and #sym. Participants include @github, @terminal, @vscode, and preview @azure. GitHub Docs — Copilot Chat cheat sheet
Current chat variables and slash commands
The current VS Code cheat sheet includes `#project`. It does not include `@workspace`, `#editor`, or `#terminalLastCommand`. `/doc` is not a VS Code command; it appears for Visual Studio and Xcode.
Chat responses can include text, code blocks, file trees, buttons, and references. Always inspect the references Copilot used when accuracy matters. For feedback, use thumbs up or thumbs down on the response, or the IDE’s feedback mechanism. For image-capable models, Copilot Chat can accept images and PDFs, including screenshots, diagrams, and UI mockups. GitHub Docs — images and feedback in Copilot Chat
Configure content exclusions#
Content exclusions prevent Copilot from using specific files. When content is excluded, inline suggestions are not available in affected files, affected files do not inform suggestions in other files, affected files do not inform Chat responses, and affected files are not reviewed by Copilot code review. Repository administrators, organization owners, and enterprise owners can configure exclusions, depending on scope. GitHub Docs — Content exclusion for GitHub Copilot
Exclusion rules can be configured at repository, organization, or enterprise level. Repository rules use path patterns such as "/scripts/**" or "*.cfg". Organization rules can target repositories or filesystem-wide paths with a "*" entry. Enterprise rules apply across the enterprise; organization rules apply to users assigned a Copilot seat by that organization. Changes can take up to 30 minutes to propagate to IDEs, though VS Code can reload with Developer: Reload Window. GitHub Docs — Excluding content from Copilot
Where content exclusions apply
Content exclusions are a Business and Enterprise feature. They apply to supported IDE, GitHub website Chat preview, GitHub Mobile Chat preview, and Copilot code review surfaces, but GitHub Copilot CLI and Agent mode in Copilot Chat in IDEs do not support content exclusion.
Use GitHub Copilot CLI#
GitHub Copilot CLI is a terminal-native AI coding assistant with agentic capabilities. It can answer questions, inspect a project, propose and make file changes after approval, run commands with controlled permissions, and integrate with GitHub workflows from the command line. This benefits developers who live in terminals, need scriptable Copilot responses, or want a local agentic session without switching to an IDE. GitHub Docs — Getting started with Copilot CLI
Install it with one of the documented package managers: npm install -g @github/copilot with Node.js 22 or later, winget install GitHub.Copilot on Windows, or brew install --cask copilot-cli on macOS/Linux. Start an interactive session with copilot, then use /login the first time and confirm that you trust the current directory for AI use. Copilot will not change files without explicit approval. GitHub Docs — Copilot CLI installation
CLI basics are deliberately simple: copilot launches the interactive UI, copilot -p "prompt" sends a one-shot prompt, and copilot -sp "prompt" prints only the response for script use. Use copilot help or copilot help TOPIC for command help. Core shortcuts include Esc to cancel, Ctrl+C to cancel or exit depending on state, Ctrl+L to clear the screen, @ to mention files, / for slash commands, and ? for help. GitHub Docs — Copilot CLI command reference
Key commands include copilot login, copilot init, copilot mcp, copilot plugin, copilot plugins list, copilot skill, copilot completion SHELL, copilot update, and copilot version. copilot plugins list is especially exam-relevant because it inventories plugins, MCP servers, skills, instruction sources, and language servers discovered for the current directory. copilot completion bash|zsh|fish emits shell completion scripts. GitHub Docs — CLI commands
Interactive sessions, plans, and files#
Copilot CLI supports long-running interactive work. Best practices include using concise custom instructions, allowing only the tools you actually want Copilot to use, switching models when appropriate, and using Plan mode for complex changes. In the CLI, Plan mode can be toggled with Shift+Tab or invoked with /plan. Copilot analyzes the request and codebase, asks clarifying questions, creates a checklist plan, saves it to plan.md in the session folder, and waits for approval. GitHub Docs — Copilot CLI best practices
The CLI can generate scripts and manage files because it can operate as an agent, but tool permissions matter. When Copilot requests permission, you can allow a tool once or for the session. You can reset approvals with /reset-allowed-tools and preconfigure controls such as copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'. This is a key security pattern: allow read and build/test commands freely only when appropriate, and keep destructive operations gated. GitHub Docs — CLI allowed tools
Copilot CLI also stores session data locally under ~/.copilot/session-state/, records structured data in a local SQLite session store, and can sync session data to GitHub by default. Session history powers natural-language search, session resumption, /chronicle reports, tips, cost analysis, and custom-instruction improvement suggestions. Use copilot --continue or copilot --resume to continue previous work. GitHub Docs — Copilot CLI session data
Agent mode, cloud agent, custom agents, and subagents#
Agent mode in the IDE is local and interactive: Copilot works in your editor, proposes edits, updates the working set, and asks before running commands. Copilot cloud agent runs on GitHub: it can research a repository, create a plan, make changes on a branch, and produce a pull request for human review. You can review the diff, iterate, approve, and merge; Copilot cannot self-approve or merge. GitHub Docs — Concepts for Copilot cloud agent
Agent sessions are the unit of delegated work. The Agents tab and Agents page let you start sessions, monitor logs, track active sessions, steer a session with follow-up input, open a session in VS Code or continue it in Copilot CLI, review output, and set up automations. Multiple sessions can run concurrently, which is how GitHub expects developers to delegate parallel tasks without losing control. GitHub Docs — About agent management
Subagents are isolated agents inside a chat session with their own context window. They are useful for research, analysis, or large context-heavy tasks that would clutter the main conversation. You enable the runSubagent tool, then let Copilot delegate automatically, directly invoke a named subagent, or call #runSubagent. Subagents use the same tools and model as the main session, but cannot create more subagents. GitHub Docs — Using subagents
Custom agents are specialized versions of the Copilot agent defined by Markdown agent profiles with YAML frontmatter. They encode a description, prompt, optional tools, and optional MCP server configuration so teams do not repeat the same instructions in every task. They can be repository-scoped, organization-scoped, or enterprise-scoped, and are usable by Copilot cloud agent, cloud agent in IDEs, and Copilot CLI. GitHub Docs — About custom agents
Custom agent file locations
Repository custom agents live at .github/agents/NAME.md. Organization and enterprise agents use /agents/NAME.md in the designated .github or .github-private repository. The primary repository custom-agent profile form is a Markdown file under .github/agents/.
MCP and extensibility#
Model Context Protocol (MCP) is an open standard for sharing context and tools with LLM applications. Copilot can use MCP across IDEs, Copilot CLI, the GitHub Copilot app, Copilot cloud agent, and Copilot code review, depending on where the server is configured. The GitHub MCP server is maintained by GitHub and can expose GitHub capabilities such as repositories, issues, pull requests, code scanning, and cloud workflows. GitHub Docs — About MCP
In VS Code, MCP servers can be configured through the GitHub MCP Registry or manually. The shareable repository location is .vscode/mcp.json at the repository root. Personal all-workspace configuration can go in VS Code settings.json, but GitHub’s IDE setup guide explicitly describes .vscode/mcp.json for repository sharing. The JSON uses a top-level servers block. GitHub Docs — Extending Copilot Chat with MCP servers
{
"servers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}Extensibility: MCP, custom agents, and agent skills
Current extensibility language is MCP servers, custom agents, agent skills, and third-party agents. VS Code MCP repository sharing uses .vscode/mcp.json and a top-level servers block.
Copilot Edits, code review, PR summaries, Spaces, and Spark#
Copilot Edits lets you request changes across multiple files from a Copilot Chat prompt. For exam purposes, connect the idea to controlled multi-file editing and to today’s chat modes: use Plan when you want a reviewed plan first, and Agent when you want Copilot to act autonomously with tool use and approvals. GitHub Docs — Copilot Edits in IDE chat documentation
Copilot code review reviews pull requests, identifies issues, and often provides suggestions that can be applied with a couple of clicks. It is available on GitHub.com, GitHub CLI, GitHub Mobile, VS Code, Visual Studio, Xcode, JetBrains IDEs, and Azure DevOps public preview. On GitHub.com, Copilot leaves a Comment review, not Approve or Request changes, so its review does not satisfy required approvals or block merging. GitHub Docs — About Copilot code review GitHub Docs — Using Copilot code review
Automatic code review can be configured for your own pull requests on Pro, Pro+, or Max, for a single repository through branch rulesets, or for repositories in an organization. Repository rulesets can automatically request Copilot review, optionally review new pushes, and optionally review draft pull requests. Code review can also use custom instructions, AGENTS.md, path-specific .github/instructions/**/*.instructions.md files, repository agent skills, and repository MCP servers when relevant. GitHub Docs — Configuring automatic code review
Custom instructions are how teams customize review standards. Use .github/copilot-instructions.md for repository-wide expectations, .github/instructions/*.instructions.md with applyTo frontmatter for path-specific standards, and AGENTS.md for agent-specific repository context. Keep review instructions concise, specific, and example-driven; instructions that try to change GitHub’s UI behavior, force PR blocking, or follow external links are not supported. GitHub Docs — Custom instructions for Copilot code review
Prompt files define reusable prompts for repeated tasks. They are in public preview and available in VS Code, Visual Studio, and JetBrains IDEs. Save them as .github/prompts/*.prompt.md, then invoke them as slash-style commands such as /explain-code in supported IDEs. Prompt files differ from custom instructions: instructions are ongoing guidance, while prompt files are reusable task prompts that you call when needed. GitHub Docs — Your first prompt file
Pull request summaries are generated from the PR description or comment box with the Copilot action menu’s Summary command. GitHub warns that Copilot does not take existing PR description content into account, so start with a blank description for best results, then review and add context before creating or updating the PR. GitHub Docs — Creating a PR summary with Copilot
Copilot Spaces organize context for Copilot Chat in GitHub. A space can include repositories, code, pull requests, issues, free-text notes, images, and file uploads. Spaces can be private, shared with users or organizations, or public depending on ownership and permissions. Anyone with a Copilot license, including Copilot Free, can create and use Spaces. GitHub Docs — About Copilot Spaces
GitHub Spark lets users build and deploy intelligent full-stack web apps with natural language, data storage, AI features, GitHub authentication, and one-click deployment. GitHub’s current page says Spark stopped accepting new users and new apps beginning 4 August 2026, while existing users can continue to access apps already created. For GH-300, treat Spark as a product capability with restricted new-user access. GitHub Docs — About GitHub Spark
Organization-wide settings, audit logs, and REST subscription management#
Copilot policies let enterprises and organizations control which features, agents, clients, and models users can access. Enterprise policies are evaluated first; enterprise owners can enforce a setting or let organizations decide. Policies can apply across IDEs, github.com, and Copilot CLI, but not every policy applies to every surface. Copilot app and Copilot CLI are governed by separate client policies. GitHub Docs — Copilot policies for enterprises and organizations
Organization owners manage policies under organization Settings → Copilot → Policies or Models. Enterprise owners manage AI controls from the enterprise AI controls area and can configure policies for agents, Copilot features and clients, Copilot, and MCP. The MCP servers in Copilot policy controls use where MCP server support is generally available, and applies to Business or Enterprise users governed by that organization or enterprise policy. GitHub Docs — Managing Copilot policies in an organization GitHub Docs — Managing Copilot policies in an enterprise
Audit logs matter because agentic systems take actions. For agentic audit log events, apply the actor:Copilot filter to the enterprise audit log to view agentic activity over the last 180 days. Important fields include action, actor_is_agent, agent_session_id, and user. actor_is_agent is always true for agentic audit log events, and agent_session_id links the event to the session when available. GitHub Docs — Audit log events for agents
The REST API for Copilot user management is in public preview and manages a GitHub Copilot Business or Enterprise subscription for an organization. Important endpoints include GET /orgs/{org}/copilot/billing for subscription seat information and policy settings, GET /orgs/{org}/copilot/billing/seats for seat assignments, and POST or DELETE endpoints for adding or removing selected teams and users. Organization owners need appropriate scopes such as manage_billing:copilot, read:org, or admin:org depending on the endpoint. GitHub Docs — REST API endpoints for Copilot user management
The exam pattern is usually not “Can Copilot do X?” but “Which surface, mode, file, policy, or plan controls X?” Learn those boundaries.
Check yourself#
Question 1
Which Copilot Chat modes should you know for the current GH-300 exam?
A) Ask, Edit, Agent
B) Ask, Plan, Agent
C) Chat, Inline, Terminal
D) Explain, Fix, Review
Show answer
Answer: B. The GH-300 chat modes are Ask, Plan, and Agent; Plan mode is the reviewed-planning mode before implementation.
Question 2
Where should a repository-shared MCP configuration for VS Code normally be placed?
A) `.github/mcp.yml` with a `tools` block
B) `.vscode/mcp.json` with a `servers` block
C) `settings.json` with an `mcp.servers` key only
D) `.github/agents/mcp.md` with YAML frontmatter
Show answer
Answer: B. The shareable VS Code repository configuration is `.vscode/mcp.json`, and the configuration uses a top-level `servers` block.
Question 3
Which VS Code slash command list is current for common Copilot Chat commands?
A) `/clear`, `/doc`, `/explain`, `/fix`, `/help`, `/tests`
B) `/clear`, `/explain`, `/fix`, `/fixTestFailure`, `/help`, `/new`, `/tests`
C) `/agent`, `/ask`, `/edit`, `/plan`, `/review`
D) `/workspace`, `/terminal`, `/editor`, `/selection`
Show answer
Answer: B. `/doc` is not a VS Code command; it appears for Visual Studio and Xcode.
Question 4
Which statement about content exclusions is accurate?
A) They are available on every Copilot plan.
B) They apply to Copilot CLI.
C) They can stop excluded files from informing suggestions, Chat responses, and Copilot code review.
D) They take effect instantly in every IDE.
Show answer
Answer: C. Content exclusions are Business and Enterprise features, do not support CLI or IDE Agent mode, and can take up to 30 minutes to propagate.
Question 5
Which command starts a non-interactive Copilot CLI prompt and prints only Copilot’s response?
A) `copilot --only "prompt"`
B) `copilot -sp "prompt"`
C) `copilot chat --silent "prompt"`
D) `copilot run --stdout "prompt"`
Show answer
Answer: B. `-p` submits a prompt without opening the interactive UI, and `-s` suppresses extra usage information.
Question 6
What does Copilot code review leave on a pull request on GitHub.com?
A) An approving review that can satisfy branch protection
B) A request-changes review that blocks merging
C) A comment review that does not count as approval or block merging
D) A status check only, with no review comments
Show answer
Answer: C. Copilot code review leaves a Comment review; it does not approve, request changes, satisfy required approvals, or block merges.
Question 7
Which path defines a repository-level custom agent?
A) `.github/agents/NAME.md`
B) `.github/agents/NAME.agent.md`
C) `.copilot/agents/NAME.yml`
D) `.vscode/agents/NAME.md`
Show answer
Answer: A. Repository custom agents are Markdown agent profiles stored at `.github/agents/NAME.md`.
Question 8
Which REST endpoint returns Copilot seat information and settings for an organization?
A) `GET /orgs/{org}/copilot/billing`
B) `GET /enterprises/{enterprise}/copilot/seats`
C) `POST /orgs/{org}/copilot/reviewers`
D) `GET /repos/{owner}/{repo}/copilot/policies`
Show answer
Answer: A. `GET /orgs/{org}/copilot/billing` returns organization Copilot subscription information, seat breakdown, and feature policy settings.
