GitHub Copilot AI Credits Optimization — Module 2: Developer Efficiency Workshop

Duration: ~135 minutes (including one 10-minute break)
Format: Standalone Presentation + Hands-On Exercises + Optional Live Instrumentation Audience: Developers, technical leads, Copilot champions
Focus: Interface selection, context/customization and instruction efficiency, session lifecycle and cache awareness, and model strategy with a before/after evaluation loop — the developer-level habits that reduce AI-credit consumption without sacrificing quality

Note: This is Module 2 — Developer Efficiency of the GitHub Copilot AI Credits Optimization curriculum. It is fully standalone — you can run it on its own with a developer-only audience, no admin access required. It is also designed to slot into the full curriculum alongside:


Workshop Overview

GitHub Copilot billing for Business and Enterprise plans is usage-based, measured in GitHub AI Credits. Module 1 covers the admin guardrails (budgets, policies) that bound total spend. This module — Developer Efficiency — is for the people actually writing prompts and running agent sessions every day. It gives developers, technical leads, and Copilot champions a practical, non-admin-heavy playbook: which interface to reach for, how to scope context and instructions, how session and cache mechanics affect cost, and how to choose a model — all in service of completing verified work efficiently, not chasing the lowest price per turn.

Note: The 10% Auto discount and pricing snapshots reflect GitHub documentation as verified on 2026-08-08. Cache-expiration windows, customization triggers, Copilot Memory, billed surfaces, session-limit behavior, VS Code /fork cache behavior, and cached-input wording were re-verified on 2026-08-30. Re-verify all volatile claims against the Appendix sources before delivery.

Learning Objectives

Prerequisites

Requirement Details
GitHub Account Access to GitHub Copilot (any interface — Chat, VS Code, or Copilot CLI)
Copilot License Business or Enterprise recommended; concepts also apply to individual paid plans
No admin access required This module does not require organization/enterprise billing access
A recent Copilot Chat, Agent, or CLI session (optional) Useful for the hands-on exercises, but sample prompts are supplied if you don't have one handy

Important: No exercise in this workshop requires making a live paid AI request beyond what you'd normally run. Every exercise can be completed by analyzing supplied sample prompts, transcripts, inventories, datasets, and worksheets from the LAB guide. The live instrumentation in Section 4 is explicitly optional and spends AI credits.


Session Agenda

Section Topic Time
— Welcome & Developer Billing Primer 15 min
1 Right Interface for the Task 15 min
2 Context, Customization & Instruction Efficiency (Hands-On) 35 min
☕ Break 10 min
3 Session Lifecycle, Handoff, Cache & Session Limits (Hands-On) 25 min
4 Model Strategy, Verification & Before/After Evaluation (Hands-On) 25 min
5 Hands-On Optimization Capstone & Close 10 min

Total: 135 min (2h 15min)


Welcome & Developer Billing Primer (15 min)

Key Points

Billed vs. Unbilled at a Glance

Interface Billed in AI Credits?
Code completions / Next Edit Suggestions No — unlimited on paid plans
Copilot Chat (Ask mode) Yes
Edit mode Yes
Agent mode Yes
Copilot CLI Yes
Copilot cloud agent Yes
Copilot Spaces Yes
GitHub Spark Yes
Third-party coding agents Yes

Note — surfaces developers often forget: Copilot Spaces is a billed surface, not free context storage; GitHub Spark is also included in GitHub's billed AI-credit feature list. Third-party coding agents are in public preview, must be enabled by policy, and consume AI credits plus GitHub Actions minutes for the agent session. Module 1 covers the same billed-surface list from the admin side; see Usage-based billing for organizations and enterprises.

Replace the Premium-Request Mental Model

Former Mental Model Usage-Based Billing Mental Model
Count premium requests Measure tokens and AI credits
Treat a request as one visible cost unit Account for prompt, context, history, tools, and output
Focus on model multipliers Use per-model, per-token-category pricing
Optimize request count Optimize cost per completed, verified task

Important: Request count alone no longer explains cost. Two requests can consume very different credits when their context, model, tool output, reasoning, or generated output differs.

Note: For the full budget, pooling, and policy mechanics behind AI credits, see Module 1 — Admin Guardrails. This module assumes credits exist and focuses only on what you, as a developer, control.

One-Minute Paired Check

With a partner, classify each activity as billed or unbilled:

  1. Accept an inline code completion in the IDE
  2. Ask Copilot Chat to explain a test failure
  3. Accept a next edit suggestion (NES)
  4. Start a Copilot CLI session that sends a prompt to a model
  5. Ask GitHub Spark to generate or update an application

Answer: 1 and 3 are unbilled; 2, 4, and 5 are billed. Opening an interface or configuring a control is not itself the billing event — a request sent to the model is.

Discussion Points


1. Right Interface for the Task (Hands-On) (15 min)

Key Points

Interface Best For Billed in AI Credits?
Code completions / Next Edit Suggestions Small, local, in-the-flow edits No — unlimited on paid plans
Ask mode Explaining code, answering a scoped question Yes
Edit mode Focused, scoped multi-line changes Yes
Agent mode Multi-file work, running commands, verifying changes Yes
Copilot CLI Terminal-native agentic tasks, scripts, repo-wide operations Yes
Cloud agent Long-running autonomous work (for example, opening a PR) Yes

🧪 Hands-On: Interface Scenario Matching (6 min)

Roles: Work individually, then compare with a neighbor.

For each scenario, decide the single best-fit interface and explain why in one sentence:

  1. Renaming a local variable and its five usages within one file
  2. Investigating why a production incident started after last night's deploy, across three services
  3. Adding unit tests directly to an existing test file for a function you just finished, using its current tests as the pattern
  4. Asking what a regular expression in a legacy file does, with no intention of changing it
  5. Running a long, multi-step refactor of a legacy module from your terminal

Success Criteria

  • ✅ You chose code completions/NES (not Chat) for Scenario 1
  • ✅ You chose Agent mode or Copilot CLI with cross-service scope for Scenario 2
  • ✅ You chose Edit mode for Scenario 3 (a bounded change in a named file)
  • ✅ You chose Ask mode for Scenario 4 (a question, not a change)
  • ✅ You chose Copilot CLI for Scenario 5 and can name why a terminal-native agentic interface fits better than Chat

Discussion Points


2. Context, Customization & Instruction Efficiency (Hands-On) (35 min)

Key Points

What Good Custom Instructions Contain (and Don't)

Include Avoid
Required frameworks, libraries, or patterns Long, generic documentation
Known pitfalls the agent tends to repeat AI-generated guidance that doesn't reflect your real system
Output expectations ("be concise," "only return code") One-off preferences or rarely used details
Team conventions the agent must follow Overloaded instructions that make the context noisy
Build, test, and lint commands Duplicated detail that already lives in scoped instructions

Important — a prompt that's too short is not the goal. A prompt that omits the context the model actually needs produces a wrong or incomplete answer, which triggers follow-up prompts that cost more in total than one well-scoped prompt would have. The goal is the smallest sufficient prompt and context — not the shortest possible one.

Always-On vs. On-Demand Customization

Not every customization contributes its full body to every turn. Some are recurring context; others load their full instructions or content on demand when invoked, selected, or chosen as relevant. Knowing which is which tells you where trimming actually pays.

Customization How it enters context Cost pattern
Repo-wide, path-scoped, and personal custom instructions / AGENTS.md Automatically, on every interaction within its defined scope Recurring — every in-scope turn carries it
Enabled built-in and MCP tool schemas Automatically — every enabled tool's definition is advertised to the model Recurring — grows with the number of enabled tools
Prompt files (*.prompt.md) Manually — referenced in chat or picked from the prompt picker On demand — only the run you invoke
Custom agents (.github/agents/*.md) Manually selected from the agent picker, or delegated to Scoped — its instructions and tool restrictions apply inside that agent's own context, not your main thread
Agent skills (SKILL.md) Loaded when the skill is chosen as relevant to the prompt On demand — the skill body enters context only when the skill is used
Subagents Spawned by the main agent for delegated work Isolated — runs in its own context instead of enlarging the parent thread

Trigger behavior source: Copilot customization cheat sheet and About agent skills.

Important: "More customization" is not automatically "more cost per turn." The recurring cost concentrates in always-on instruction scope and enabled tool schemas. Moving detail out of always-on instructions and into a prompt file, custom agent, or skill keeps the capability while removing it from every turn. Use /context in Copilot CLI to see the actual split between instructions, tool definitions, and message history before you trim anything.

Copilot Memory Hygiene

Copilot Memory is in public preview and is subject to change. It lets Copilot store and reuse what it learns instead of re-reading the same conventions every time.

Aspect What developers need to know
Scopes Repository-level facts (conventions, architectural decisions, build commands, project rules) and user-level preferences (how you personally like to work with Copilot). There is no team- or org-scoped memory store — organization and enterprise administrators manage the policy and can export or delete user-level preferences
Where it applies Copilot cloud agent, Copilot code review, and Copilot CLI. Copilot code review uses repository-level facts only
Enablement Per user, not per repository. On by default for individual plans; for organization- and enterprise-managed plans an administrator enables the policy first, then individual users can opt out
Retention A stored fact or preference that goes unused is deleted automatically after 28 days; the timer can reset when Copilot validates and uses the entry
Validation Repository-level facts are stored with citations and re-checked against the current branch before use, so an outdated fact is skipped rather than trusted blindly

Source: About GitHub Copilot Memory.

Hygiene practices:

Note — consistency with Optional Module 4: In Copilot CLI prompt mode (-p), memory is off by default and must be opted into with --enable-memory. Unattended automation should make that an explicit, recorded lane decision rather than an accident — see Optional Module 4.

🧪 Hands-On: Prompt, Customization Inventory, Tool Pruning & Memory Triage (20 min)

Roles: Work individually, then discuss as a table.

Part A — Before/After Prompt (4 min): Rewrite the vague prompt below so it has a clear task, named context, and an explicit stop condition.

Before: "Fix the bug in the payment code."

Use the LAB guide worksheet to draft your After version, then compare with the supplied model answer.

Part B — Customization Inventory: Keep / Scope / Retire (8 min): You're given a sample copilot-instructions.md excerpt plus a short customization inventory (see LAB guide). For each item, decide:

  1. Keep — specific, grounded, and worth carrying on every in-scope turn
  2. Scope — still valuable, but it belongs in path-scoped instructions, a prompt file, a custom agent, or a skill so it loads only when relevant
  3. Retire — generic filler, duplicated, or obsolete; delete it

Do not cut information the agent genuinely needs; moving it is not the same as deleting it.

Part C — Task-Based MCP and Tool Pruning (6 min): Using the LAB guide tool inventory, start from one concrete task ("triage and fix a failing CI check on an open PR") and classify every enabled tool as Required, Optional, or Remove for that task. Then mark the read/write boundary: which of the surviving tools only read, and which can write, comment, merge, deploy, or spend.

Part D — Copilot Memory Triage: Keep / Delete / Never Store (2 min): This is a paper exercise — nobody edits a live memory store. The LAB guide supplies four candidate memory entries: a stable repository build command, a stale architectural decision, a one-time sprint/ticket detail, and an API token pasted into a session while debugging. Classify each one:

  1. Keep — durable, still accurate, and safe to persist
  2. Delete — was reasonable to store, but is now stale, wrong, or obsolete; current-branch validation should prevent a contradicted repository fact from being used, but it should still be removed
  3. Never store — must not enter memory at all: secrets, credentials, tokens, customer-sensitive or personal data, and one-time task detail

Then write the action you would take for each. For the credential, deletion is not the whole answer — rotating or revoking the exposed credential comes first. Do not treat the 28-day expiry as a hygiene control; it is a retention default, not a review process.

Success Criteria

  • ✅ Your "After" prompt names a specific file/area, describes the expected behavior, and states a stop condition
  • ✅ You identified at least two lines in the sample instructions file that are generic filler to retire
  • ✅ You identified at least one item to scope rather than delete, and named the surface you would move it to
  • ✅ You identified at least one line that must stay because it reflects real, specific system behavior
  • ✅ Your tool inventory keeps every tool the named task actually requires and removes the rest
  • ✅ You can state which surviving tools can write or spend, and why each write-capable tool is justified for this task
  • ✅ You can name where you would look (/context) to confirm how much of the window instructions and tool definitions actually consume
  • ✅ You kept only the memory entry that is durable and still true, and deleted the stale architectural decision
  • ✅ You marked both the one-time sprint/ticket detail and the credential Never store
  • ✅ Your action for the credential starts with rotating or revoking it, not with deleting the memory entry
  • ✅ You can state the difference between Delete (was valid, now stale) and Never store (must never be persisted)

Discussion Points


☕ Break (10 min)


3. Session Lifecycle, Handoff, Cache & Session Limits (Hands-On) (25 min)

Key Points

Copilot CLI Session-Control Toolkit

Command Use It When
/new or /clear The problem or work phase changed and the old history is no longer useful
/resume You need to switch to a saved session that still matches the task
/usage You want the current session's usage metrics and statistics
/context You want to see what is consuming the context window and how much space remains
/compact [focus] The thread is still relevant, but its history is large; optionally tell the summary what to preserve
/cwd You need to inspect or change the session's working-directory root
/add-dir The task genuinely needs file access outside the current working directory

Compaction Is a Tradeoff, Not a Reflex

Important — three things this section does not claim: (1) it does not promise one universal cached-input discount ratio across all models, (2) it does not say you should never start a new session, and (3) it does not treat compaction as free or lossless. Restart when the problem or phase changes; compact when the task remains relevant and the smaller summary is worth the summarization step and possible loss of detail.

Clean-Session Handoff Template

When you do start a clean session, the cost you want to avoid is re-deriving what the last session already figured out. Write these six fields — in the last session or from your notes — and paste them as the first message of the new one.

Field What to write
1. Task and outcome The one task in scope and what "done" produces
2. Current state What is already implemented, verified, or ruled out
3. Important files The specific paths that matter, and nothing else
4. Decisions Choices already made that must not be relitigated, with a one-line reason each
5. Constraints Rules the work must respect — APIs, versions, patterns, security, out-of-scope areas
6. Next action and stop condition The single next step, and what "stop" looks like
Control What it does When the handoff is the better tool
/compact Summarizes and replaces the current thread's history in place You are deliberately leaving this thread, or you want to control exactly what carries over
/resume Reopens a saved session with its history intact The old thread carries context the new task doesn't need
VS Code /fork Branches a session into a new one that inherits the full conversation history and preserves the prompt cache for the next request (VS Code chat sessions) You want a clean context on purpose, not an inherited one

🧪 Hands-On: Session Design, Session Limit & Clean-Session Handoff (12 min)

Roles: Work individually, then discuss as a table.

Part A — Session Design & Cache Check (5 min): For each scenario, decide whether to continue the current session, start a new one, run /compact, or use another command from the toolkit. For Scenario 4, also state which cache-expiration window applies and name one change that would invalidate reusable cached context:

  1. You just finished debugging an auth issue and now want to ask an unrelated question about a CSS layout bug
  2. Your Copilot CLI thread has been open for two hours on the same refactor and is starting to feel sluggish
  3. You finished research and a plan for a feature and are about to start implementation
  4. You return to yesterday's Chat session to ask one more follow-up question on the same topic
  5. You want to confirm whether tool definitions or message history are consuming most of a long CLI session
  6. A task in the current repository needs one sibling directory, but not access to the rest of the parent directory

Part B — Session Limit Worksheet (3 min): Using the LAB guide worksheet, define a soft AI-credit session limit for a Copilot CLI task you run regularly (or a hypothetical one), write the exact /limits set command, and state what you'll do if the agent stops at the limit. If Copilot CLI is available, set and immediately unset the limit without submitting a model prompt; otherwise use the supplied command-review fallback.

Part C — Clean-Session Handoff (4 min): Using the six-field template above and the supplied scenario in the LAB guide, write the handoff message you would paste into the fresh session at the research → implementation boundary.

Success Criteria

  • ✅ You correctly chose "new session" for Scenario 1 (unrelated problem)
  • ✅ You correctly chose "/context, then /compact if warranted" for Scenario 2 (long but still-relevant thread)
  • ✅ You correctly chose "new session" for Scenario 3 (phase change: plan → implement)
  • ✅ For Scenario 4, you checked the applicable cache-expiration window and named at least one cache invalidator: a model switch; a reasoning, context-size, or tool-set change; or inactivity expiry
  • ✅ You chose /context for Scenario 5 and /add-dir for Scenario 6
  • ✅ Your session limit worksheet names a specific credit amount, includes a valid /limits set max-ai-credits NUMBER command, and states a concrete next step if the limit is hit
  • ✅ You identified sessionLimits.maxAiCredits as the equivalent Copilot SDK setting
  • ✅ Your handoff fills all six fields, names specific paths rather than "the repo," and ends with one next action plus a stop condition
  • ✅ You can explain why a handoff is not a replacement for /compact, /resume, or VS Code /fork

Discussion Points


4. Model Strategy, Verification & Before/After Evaluation (Hands-On) (25 min)

Key Points

Quality-First Verification & False-Economy Myths

Myth Reality
"Shorter prompts are always cheaper" A too-short prompt often triggers costly follow-ups; scope and clarity matter more than raw length
"Never start a new session" Start fresh for an unrelated problem or a new work phase; avoid repeatedly restarting the same active task
"Cheaper models are always the safe default" A wrong or incomplete answer from an under-powered model often costs more in total than one correct answer from the right model
"Completions and Chat cost the same" Completions and next-edit suggestions are unlimited on paid plans and do not consume AI credits; Chat/Edit/Agent/CLI/cloud-agent usage does
"Cached input is always exactly 10x cheaper" Cached input is typically billed at about 10% of that model's fresh-input price (roughly 10x cheaper), but it is not universal — verify the selected model on the pricing page before quoting or encoding a ratio

Full-Cost Model Decision

Option Full Cost per Attempt Durable Acceptance Rate Full Cost per Durable Accepted Outcome
Lightweight model $8.00 40% $8.00 ÷ 0.40 = $20.00
Powerful model $14.00 80% $14.00 ÷ 0.80 = $17.50

Note: The powerful model costs more per attempt but less per durable accepted outcome. This is a decision framework, not a universal model ranking; use measured acceptance and full-cost data for the task category.

Before/After Evaluation Loop (Fixed Task Set)

Every change in this workshop — a trimmed instructions file, a pruned tool set, a new session boundary, a different model — is a hypothesis. The loop below is how you turn it into evidence instead of an opinion. It is tool-neutral: no product, extension, or vendor beyond Copilot itself is required.

Step What you do
1. Freeze the task set Pick 5–10 representative tasks you actually do. Write a one-line acceptance rule for each before running anything
2. Hold everything constant Same model, same tools/MCP set, same instructions, same session strategy — except the one variable you are testing
3. Run the "before" arm Run the frozen task set as-is and record every task's result
4. Change one variable Change exactly one thing, then rerun the same frozen task set as the "after" arm
5. Compare and decide Compare full cost per durable accepted outcome, not credits per attempt, then decide: keep, revert, or retest

Record these fields per task, per arm:

Field Why it matters
AI credits consumed The spend side of the comparison
Context consumed Shows whether the change actually reduced carried context or just moved it
Pass / fail against the written acceptance rule Prevents "cheaper but worse" from looking like a win
Durable acceptance Did the result survive review and its stabilization period without material correction?
Rework Human correction and follow-up turns — the cost that cheap-looking options hide

Optional — live instrumentation (spends AI credits): If your team wants real numbers instead of the supplied dataset, capture them with /usage and /context in Copilot CLI, the CLI Chronicle session data and its cost tips, and the cost/session signals your IDE exposes. This is optional, it consumes credits, and it should run on a task set you already intended to complete.

🧪 Hands-On: Model Scenarios & Before/After Evaluation (12 min)

Roles: Work individually, then discuss as a table.

Part A — Model, Verification & False-Economy Scenarios (7 min): For each scenario, decide (a) Auto or a manual model choice, and if manual, lightweight or powerful, and (b) one quality-first verification step you'd pair with it. For Scenarios 4 and 5, also name the false-economy mistake that a token-only decision would make:

  1. Formatting and updating documentation comments across a handful of files
  2. Designing the approach for a cross-service architecture change before any code is written
  3. A subagent tasked with only summarizing test failures from a CI run
  4. A developer who insists on manually forcing the most powerful model for every single Chat question, "to be safe"
  5. The lightweight-versus-powerful model comparison above: which option is economically better, and what additional evidence would you require before making it the team default?

Part B — Before/After Evaluation Worksheet (5 min): Using the supplied before/after dataset in the LAB guide, complete the comparison and make the call: keep, revert, or retest. Then design your own loop — name the one variable you would change, the 5–10 tasks you would freeze, and the acceptance rule for one of them.

Success Criteria

  • ✅ You chose a lightweight model (or Auto) for Scenario 1 and named linting/formatting checks as the verification step
  • ✅ You chose a powerful/reasoning model for Scenario 2 and explained why the planning phase justifies it
  • ✅ You chose a cheaper, scoped model for the subagent in Scenario 3
  • ✅ You correctly identified Scenario 4 as the "cheaper models are always safe" myth in reverse — over-provisioning power without justification — and can explain why Auto would be the more efficient default
  • ✅ You chose the powerful model for Scenario 5 based on $17.50 versus $20.00 per durable accepted outcome, while requiring representative samples and a defined stabilization period before standardizing the choice
  • ✅ You explained why Scenarios 4 and 5 cannot be decided from per-attempt token cost alone
  • ✅ Your before/after decision is based on full cost per durable accepted outcome, not credits per attempt
  • ✅ Your own loop names exactly one changed variable, a frozen task set of 5–10 tasks, and a written acceptance rule

Discussion Points


5. Hands-On Optimization Capstone & Close (10 min)

Key Points

🧪 Hands-On Capstone: 30-Day Personal/Team Habit Plan (8 min)

Roles: Work individually or in pairs.

Using everything from Sections 1–4, draft a one-page 30-Day Habit Plan covering:

  1. Week 1 — Interface habit: One task type you'll redirect from a billed interface to completions/NES, or vice versa if you're currently under-using Agent/CLI where it's warranted
  2. Week 2 — Context & customization habit: One trim you'll make to your own prompting habits, to a shared copilot-instructions.md/scoped instructions file, or to your enabled tool set — plus one Copilot Memory review
  3. Week 3 — Session habit: One session-boundary rule you'll adopt (for example, "new session when I switch tickets" or "/compact after 45 minutes on the same CLI thread"), and where you'll use the six-field handoff
  4. Week 4 — Model, verification & evidence habit: One task type where you'll let Auto decide, one where you'll deliberately choose a lightweight model, one deterministic check you'll add or enforce, and one change you'll put through the before/after evaluation loop

Success Criteria

  • ✅ Your plan names one specific interface change for Week 1
  • ✅ Your plan names one specific instructions/customization trim and one memory review for Week 2
  • ✅ Your plan names one specific, testable session-boundary rule for Week 3
  • ✅ Your plan names a model choice, a deterministic verification step, and one change you will evaluate with a fixed task set for Week 4

Discussion Points


Recap

Note — where this goes next: These habits are individual and interactive. When the same work runs unattended — Copilot CLI in a script, scheduler, or CI job, or a Copilot SDK service — nobody reviews the cost of each call, so the habits have to become enforced configuration. That is the subject of Optional Module 4: Agent Fleet Efficiency and Cost Governance, an optional add-on outside the core curriculum duration.


Appendix: Official Sources & Facilitator Reference

Key URLs

Topic URL
Optimizing AI usage and reducing cost https://docs.github.com/en/copilot/tutorials/optimize-ai-usage
Optimizing Copilot Chat context to reduce AI credit usage https://docs.github.com/en/copilot/tutorials/optimize-chat-usage
Usage-based billing for organizations and enterprises (billed surfaces) https://docs.github.com/en/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises
About GitHub Copilot Spaces https://docs.github.com/en/copilot/concepts/context/spaces
About third-party coding agents (public preview) https://docs.github.com/en/copilot/concepts/agents/about-third-party-coding-agents
Models and pricing for GitHub Copilot https://docs.github.com/en/copilot/reference/copilot-billing/models-and-pricing
Copilot customization cheat sheet https://docs.github.com/en/copilot/reference/customization-cheat-sheet
About agent skills https://docs.github.com/en/copilot/concepts/agents/about-agent-skills
About GitHub Copilot Memory (public preview) https://docs.github.com/en/copilot/concepts/agents/copilot-memory
Managing Copilot Memory for your personal account https://docs.github.com/en/copilot/how-tos/use-copilot-agents/copilot-memory/manage-for-yourself
Chat sessions in VS Code (compact, fork, resume) https://code.visualstudio.com/docs/agents/run/sessions/manage-sessions
About Copilot auto model selection https://docs.github.com/en/copilot/concepts/models/auto-model-selection
Comparing AI models using different tasks https://docs.github.com/en/copilot/tutorials/compare-ai-models
Supported AI models in GitHub Copilot https://docs.github.com/en/copilot/reference/ai-models/supported-models
Managing context in GitHub Copilot CLI https://docs.github.com/en/copilot/concepts/agents/copilot-cli/context-management
GitHub Copilot CLI command reference https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference
Setting an AI credit session limit in Copilot CLI https://docs.github.com/en/copilot/how-tos/copilot-cli/use-copilot-cli/set-session-limit
Setting a Copilot SDK session limit https://github.com/github/copilot-sdk/blob/main/docs/features/session-limits.md
Adding repository custom instructions https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions
Support for different types of custom instructions https://docs.github.com/en/copilot/reference/custom-instructions-support
Configuring toolsets for the GitHub MCP Server https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/configure-toolsets
Best practices for using Copilot to work on tasks https://docs.github.com/en/copilot/tutorials/cloud-agent/get-the-best-results
About GitHub Copilot CLI session data (Chronicle) https://docs.github.com/en/copilot/concepts/agents/copilot-cli/chronicle
Monitoring your GitHub AI Credits usage https://docs.github.com/en/copilot/how-tos/manage-and-track-spending/monitor-ai-usage
Prompt engineering for GitHub Copilot Chat https://docs.github.com/en/copilot/concepts/prompting/prompt-engineering

Note: Dated facts carry multiple verification dates. The 10% Auto discount and pricing snapshots reflect the docs as verified on 2026-08-08; cache-expiration windows, the customization trigger model, Copilot Memory behavior and preview status, and the cached-input formulation were re-verified on 2026-08-30; the billed-surface list and third-party-agent preview status were re-verified on 2026-09-01. Re-verify against these live URLs before every delivery of this workshop.

Instructor Preflight Checklist

Backup Plan

If a live CLI or Chat demo is unavailable (no license, connectivity issue, or UI change):

  1. Walk through the Interface Comparison and Billed vs. Unbilled at a Glance tables as a slide-only discussion
  2. Use the supplied before/after prompt, sample instructions excerpt, tool inventory, and before/after evaluation dataset from the LAB guide instead of live editing or live instrumentation
  3. Reference the official docs URLs above and screen-share the documentation pages as a substitute for the live product UI
  4. Keep the hands-on worksheets (LAB guide) as the primary artifact attendees leave with, regardless of demo availability

Workshop guide for GitHub Copilot AI Credits Optimization — Module 2: Developer Efficiency (standalone; part of the GitHub Copilot AI Credits Optimization curriculum alongside Module 1 — Admin Guardrails and Module 3 — FinOps & Team Operating Model)