
ms-mfg-community/day-in-the-life-copilot-lab
Developer toolsA Day in the Life with GitHub Copilot - Hands-On Lab
Overview
A comprehensive, hands-on lab teaching the — agents, skills, instructions, prompts, hooks, MCP servers, orchestration, and GitHub Agentic Workflows — all while working on a real .NET application. ⏱️ — complete setup before the session begins. Setup takes 15–30 minutes on a good network and can fail on restricted laptops. Attendees arriving with a failing preflight may need to switch to Codespaces to keep up. 1. and install anything you are missing. 2. so the session does not start on a login prompt: - gh auth login — GitHub CLI - copilot (launch it once and complete the sign-in flow) 3. On Windows/WSL2 this means a path (e.g. ~/repos/day-in-the-life-copilot-lab), not /mnt/c/…. See the Lab 14 compatibility matrix for why. 4. and resolve any FAIL items. WARN items are acceptable but review them: Expected green result: --lab14 / -Lab14 enables the strict Lab 14 checks (tmux required, WSL1 and Windows-PS-only become FAIL). Drop that flag if you are certain you will skip Lab 14. 5.
README
Everything GitHub Copilot — Hands-On Lab
A comprehensive, hands-on lab teaching the full GitHub Copilot agentic development experience — agents, skills, instructions, prompts, hooks, MCP servers, orchestration, and GitHub Agentic Workflows — all while working on a real .NET application.
⏱️ Pre-work — complete setup before the session begins.
🚨 Pre-Workshop Setup Checklist
Facilitators: share this section with attendees before the session. Setup takes 15–30 minutes on a good network and can fail on restricted laptops. Attendees arriving with a failing preflight may need to switch to Codespaces to keep up.
Attendees — run this checklist end-to-end and arrive with a green preflight:
- Read the Prerequisites section below and install anything you are missing.
- Authenticate the CLIs once so the session does not start on a login prompt:
gh auth login— GitHub CLIcopilot(launch it once and complete the sign-in flow)
- Clone the repo to a fast local filesystem. On Windows/WSL2 this means a path under your Linux home directory (e.g.
~/repos/day-in-the-life-copilot-lab), not/mnt/c/…. See the Lab 14 compatibility matrix for why. - Run the preflight script and resolve any
FAILitems.WARNitems are acceptable but review them:
Expected green result:# macOS, Linux, WSL2 scripts/preflight.sh --lab14 # Windows PowerShell (non-Lab-14 paths only; see matrix) pwsh scripts/preflight.ps1 -Lab14Summary: 0 FAIL, 0 WARN Result: READY ✅--lab14/-Lab14enables the strict Lab 14 checks (tmux required, WSL1 and Windows-PS-only become FAIL). Drop that flag if you are certain you will skip Lab 14. - Optional but recommended: open the devcontainer once (Codespaces or local Docker/Podman) so its image is pre-pulled. See Choose Your Path.
If preflight FAILs:
| FAIL | Fix |
|---|---|
copilot not found |
npm install -g @github/copilot (Node 22+ required) |
gh not found |
Install GitHub CLI then gh auth login |
git not found |
Install git |
node not found |
Install Node.js 22+ from nodejs.org |
tmux not found (with --lab14) |
Linux: sudo apt-get install -y tmux · macOS: brew install tmux · Windows: run the workshop inside WSL2 |
os is wsl1 |
Upgrade: wsl --set-version 2 |
os is windows (with --lab14) |
Switch to WSL2 or GitHub Codespaces — Lab 14’s tmux-orchestrator pattern is not supported on Windows PowerShell. See the compatibility matrix. |
Warnings to review:
| WARN | What it means |
|---|---|
Repo on /mnt/c/… |
WSL2 file I/O is ~10× slower across the Windows↔Linux boundary; file-watchers are flaky. Move the clone to ~/repos/… before the session. |
gh-aw extension not installed |
Only needed for Labs 08–09. Install with gh extension install github/gh-aw. |
| No container runtime | Only needed if you intend to use the local devcontainer path. Codespaces works without it. |
Prerequisites
Must-Have Now
| Requirement | Details |
|---|---|
| GitHub account | With Copilot license (Individual, Business, or Enterprise) |
| VS Code | Latest version with GitHub Copilot extension |
| Git | Install — configured with your GitHub credentials |
Additional Tools by Path or Lab
| Applies to | Requirement |
|---|---|
| All labs | GitHub CLI (gh) — Install — verify with gh --version |
| All labs | Copilot CLI — Install guide: npm install -g @github/copilot — verify with copilot --version |
| Manual Setup only | .NET 8 SDK — Download — verify with dotnet --version — devcontainer users: already included in the container |
| Labs 08–09 | gh-aw extension — gh extension install github/gh-aw — verify with gh aw version |
| Manual Setup only (all labs for Copilot CLI install; also used in Labs 08–09) | Node.js (v22+) — Download — verify with node --version |
Permissions & Licensing
Most labs (01–07, 10) work with any Copilot license. A few labs require specific plans or permissions:
| Lab | Feature | Required License | GitHub Permissions |
|---|---|---|---|
| Lab 08 | GitHub Agentic Workflows (gh-aw) |
Copilot Business or Enterprise | Actions enabled, COPILOT_GITHUB_TOKEN secret (setup) |
| Lab 09 | Copilot Coding Agent + Code Review | Copilot Pro+, Business, or Enterprise | Repo admin (to configure rulesets + enable coding agent) |
| All other labs | Agents, Skills, Instructions, Prompts, Hooks, MCP, Orchestration | Any Copilot license (Individual+) | Repo write access |
Note: If your organization restricts Copilot features via policy, check with your admin that agent mode, MCP servers, and Copilot CLI are enabled.
Choose Your Path
Maintainer-only packaging work: the prepared-core Phase 1 recipe is staged separately. It is not a published or exercised browser entry point; the attendee setup paths below are unchanged.
| Path | Time | For | Recommendation |
|---|---|---|---|
| Codespaces | 5–10 min | In-person workshops, no local install | ⭐ Start here |
| Docker Desktop | ~15 min | Already using Docker | ✅ Popular |
| Podman | ~15 min | Enterprise (Docker restricted) | ✅ Supported |
| Manual | ~20 min | Prefer direct install | Advanced |
Pick a stack: .NET track or Node track
The lab ships with two parallel implementations of Contoso University so you can practice the Copilot agentic surface against the stack you actually work in:
| Track | Code lives in | Install deps (manual setup) | Run tests | When to pick |
|---|---|---|---|---|
| .NET (ASP.NET Core 8 + EF Core + xUnit) | dotnet/ |
(none — dotnet restores on build) |
make test-dotnet (or dotnet test dotnet/ContosoUniversity.sln) |
C# / ASP.NET shops, Azure App Service / Functions, Bicep deploys |
| Node (Fastify 5 + Drizzle ORM + Vitest + Playwright) | node/ |
npm install -g pnpm && pnpm -C node install |
make test-node (or pnpm -C node test) |
TypeScript / Node shops, Container Apps, edge / serverless TS |
Dev-container / Codespaces users can skip the install step — the
post-create.shscript runspnpm -C node installautomatically. Manual-setup users on the Node track must install pnpm first (npm i -g pnpm) because the Node workspace ships apnpm-lock.yamland is only supported via pnpm; usepnpm -C node install, notnpm install, insidenode/.
Both tracks share the same domain (Student / Course / Instructor / Enrollment), the same lab
narrative, and the same .github/ Copilot configuration. Lab bodies are language-agnostic;
each lab links a per-track appendix under labs/appendices/dotnet/
and labs/appendices/node/ for stack-specific commands.
Run both tracks with a single command:
make test-all
Option A — GitHub Codespaces
5–10 min | Zero local install
- Fork this repository (see Fork & Clone below)
- On your fork: click Code → Codespaces → Create codespace on main
- Wait for the codespace to build (first time takes a few minutes — the post-create script installs all tools and builds the solution)
- Once the terminal is ready, authenticate:
copilot login gh auth login - ➜ Jump to Verify Copilot CLI
Tip: If “Codespaces” does not appear under the Code button, your organization may not have Codespaces enabled. Ask your admin, or use Option B or C below.
Option B — VS Code + Docker Desktop
~15 min | Has Docker
- Install the Dev Containers VS Code extension
- Ensure Docker Desktop is running
- Fork and clone this repository (see Fork & Clone below)
- Open the repo folder in VS Code
- When prompted “Reopen in Container”, click Yes — or run Dev Containers: Reopen in Container from the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) - Wait for the container to build (first time takes a few minutes)
- Once the terminal is ready, authenticate:
copilot login gh auth login - ➜ Jump to Verify Copilot CLI
The container includes: .NET 8 + 9 SDKs, Node.js, GitHub CLI, Copilot CLI, gh-aw, jq, and all recommended VS Code extensions.
Option C — VS Code + Podman
~15 min | Enterprise/Docker restricted
-
Install Podman and the Dev Containers VS Code extension
-
Configure VS Code to use Podman as the container engine. Open Settings (
Ctrl+,/Cmd+,) and set:"dev.containers.dockerPath": "podman" -
Start the Podman machine (if not already running):
macOS / Windows:
podman machine init podman machine startLinux: Podman runs natively — no machine needed. Ensure the Podman socket is active:
systemctl --user enable --now podman.socket -
Fork and clone this repository (see Fork & Clone below)
-
Open the repo folder in VS Code
-
Run Dev Containers: Reopen in Container from the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) -
Wait for the container to build (first time takes a few minutes)
-
Once the terminal is ready, authenticate:
copilot login gh auth login
Podman troubleshooting: If the container fails to start, verify the Podman socket path matches what VS Code expects. On Linux, set
"dev.containers.dockerSocketPath": "/run/user/1000/podman/podman.sock"(adjust the UID if yours differs). On macOS/Windows,podman machine starthandles this automatically. Your organization may require you to download a CA certificate into the Podman Virtual Machine, please visit: https://github.com/containers/podman/blob/main/docs/tutorials/podman-install-certificate-authority.md
Option D — Manual Setup
~20 min | Prefer direct install
Before starting, ensure you have all prerequisites installed.
- Fork and clone this repository (see Fork & Clone below)
- Build the solution:
dotnet build dotnet/ContosoUniversity.sln - (Optional) Run the application:
The app starts at https://localhost:52379 (or http://localhost:52380). Pressdotnet run --project dotnet/ContosoUniversity.WebCtrl+Cto stop. - Open in VS Code:
code . - ➜ Jump to Verify Copilot CLI
Fork & Clone
GitHub EMU users: If your organization uses GitHub Enterprise Managed Users (EMU) and cannot fork external repositories, skip to Clone into Your Own Namespace below.
🌐 On GitHub:
- Fork this repository: click Fork at the top of this page
- Go to your fork’s Settings → Actions → General and ensure Actions are enabled
- Go to the Actions tab and click “I understand my workflows, go ahead and enable them” if prompted
🖥️ On your machine:
- Clone your fork:
WSL/Bash:
git clone https://github.com/YOUR-USERNAME/day-in-the-life-copilot-lab.git
cd day-in-the-life-copilot-lab
git checkout feature/modernize
PowerShell:
git clone https://github.com/YOUR-USERNAME/day-in-the-life-copilot-lab.git
Set-Location day-in-the-life-copilot-lab
git checkout feature/modernize
- Verify the .NET project builds:
dotnet build dotnet/ContosoUniversity.sln
You should see Build succeeded. with 0 Error(s). A handful of nullable-reference warnings may appear in some Razor views; they do not block the labs. If you see any Error(s), re-run scripts/preflight.sh and consult TROUBLESHOOTING.md.
- (Optional) Run the application:
dotnet run --project dotnet/ContosoUniversity.Web
The app starts at https://localhost:52379 (or http://localhost:52380). On first run, the database is automatically created and seeded with sample data.
Note: The Development configuration uses SQLite, which works on all platforms (Windows, macOS, Linux). The database file (
ContosoUniversity.db) is created automatically. Production uses SQL Server.
Press Ctrl+C to stop.
Clone into Your Own Namespace (GitHub EMU Users)
Who is this for? If your organization uses GitHub Enterprise Managed Users (EMU), you cannot fork repositories that live outside your enterprise. Follow these steps to create a copy in your own GitHub namespace.
🌐 On GitHub:
- Navigate to github.com/new to create a new repository
- Set the Owner to your EMU account (e.g.,
YOUR-USERNAME_ENTERPRISE) - Name the repository
day-in-the-life-copilot-lab - Set visibility to Private (or Internal, per your organization’s policy)
- Do not initialize the repository with a README,
.gitignore, or license - Click Create repository
- After pushing the lab content (see steps below), go to Settings → Actions → General and ensure Actions are enabled
🖥️ On your machine:
- Clone the source repository:
WSL/Bash:
git clone https://github.com/ms-mfg-community/day-in-the-life-copilot-lab.git
cd day-in-the-life-copilot-lab
git checkout feature/modernize
PowerShell:
git clone https://github.com/ms-mfg-community/day-in-the-life-copilot-lab.git
Set-Location day-in-the-life-copilot-lab
git checkout feature/modernize
- Change the remote
originto point to your new repository:
WSL/Bash:
git remote set-url origin https://github.com/YOUR-USERNAME_ENTERPRISE/day-in-the-life-copilot-lab.git
PowerShell:
git remote set-url origin https://github.com/YOUR-USERNAME_ENTERPRISE/day-in-the-life-copilot-lab.git
- Push all branches and tags to your new repository:
git push --all origin
git push --tags origin
- Verify the .NET project builds:
dotnet build dotnet/ContosoUniversity.sln
- (Optional) Run the application:
dotnet run --project dotnet/ContosoUniversity.Web
Tip: To keep your copy in sync with the source, add it as an
upstreamremote:git remote add upstream https://github.com/ms-mfg-community/day-in-the-life-copilot-lab.git git fetch upstream git merge upstream/main
Once complete, continue with Verify Copilot CLI below.
Verify Copilot CLI
🖥️ On your machine:
- Verify Copilot CLI is installed:
copilot --version
- Authenticate the Copilot CLI:
copilot login
Note: The Copilot CLI has its own authentication — it does not use
gh auth. Runningcopilot loginopens a browser-based device code flow. Alternatively, set aGH_TOKENenvironment variable with a fine-grained PAT that has the Copilot Requests permission.
- Verify Copilot CLI is authenticated by sending a test prompt:
copilot -p "hello"
If authenticated, you’ll receive a response. If not, the CLI will prompt you to log in.
- Verify the Agentic Workflows CLI is installed:
gh aw version
Note: The
gh awextension relies ongh authfor GitHub API access. Rungh auth statusto verify your GitHub CLI authentication separately.
Explore the Repository
🖥️ On your machine:
- Open the repository in VS Code:
code .
- Explore the key directories:
| Directory | Contents | Count |
|---|---|---|
.github/skills/ |
Agent skills (SKILL.md): 7 knowledge packs and 19 /name command skills |
26 |
.github/hooks/ |
Hook configuration | 1 |
.github/instructions/ |
Path-specific instructions (.instructions.md) |
4 |
.copilot/ |
MCP server configuration (mcp-config.json, the template Lab 05 copies to ~/.copilot/; the root .mcp.json carries the same four servers at workspace scope for Copilot CLI and VS Code) |
2 |
scripts/hooks/ |
Hook shell scripts | 17 |
ContosoUniversity.* |
.NET project files | 5 projects |
- Read the repository context document:
WSL/Bash:
cat AGENTS.md
PowerShell:
Get-Content AGENTS.md
- (Optional) Create a tracking issue in your fork:
🌐 On GitHub — create an issue with:
- Title:
Lab Progress — Everything GitHub Copilot - Body:
### Lab Progress
- [x] Setup
- [ ] Lab 01: Exploring Copilot Configuration
- [ ] Lab 02: Custom Instructions & AGENTS.md
- [ ] Lab 03: Creating a .NET Agent
- [ ] Lab 04: Skills & Prompts
- [ ] Lab 05: MCP Server Configuration
- [ ] Lab 06: Hooks
- [ ] Lab 07: Multi-Agent Orchestration
- [ ] Lab 08: gh-aw: PRD Generation
- [ ] Lab 09: Copilot Coding Agent & Code Review
- [ ] Lab 10: Agent memory — personalities, lessons, and consolidation
✅ Setup Complete
You now have:
- A forked repository with all Copilot configurations
- A building .NET project (ContosoUniversity) — optionally verified running at https://localhost:52379
- Copilot CLI authenticated and gh-aw CLI installed
- An understanding of the repository structure
Next: Lab 01 — Exploring Copilot Configuration
The Application
ContosoUniversity is a brownfield .NET 8 web application with clean architecture. You’ll use it throughout every lab to build, test, and orchestrate AI-powered development workflows.
ASP.NET MVC (Web) → EF Core (Infrastructure) → SQL Server / SQLite
erDiagram
Department ||--o{ Course : offers
Department ||--o| Instructor : "administered by"
Course ||--o{ Enrollment : has
Student ||--o{ Enrollment : "enrolled in"
Instructor }o--o{ Course : teaches
Instructor ||--o| OfficeAssignment : has
Enrollment }o--o| Grade : receives
| Project | Layer | Purpose |
|---|---|---|
ContosoUniversity.Core (dotnet/) |
Domain | Models, interfaces, business rules |
ContosoUniversity.Infrastructure (dotnet/) |
Data | EF Core, repositories, services |
ContosoUniversity.Web (dotnet/) |
Presentation | MVC controllers, views, DI |
ContosoUniversity.Tests (dotnet/) |
Testing | xUnit + WebApplicationFactory |
ContosoUniversity.PlaywrightTests (dotnet/) |
E2E | Browser-based Playwright tests |
What You’ll Learn
| Feature | What It Does | Lab |
|---|---|---|
| Plugin Marketplace | Browse and install community agents from the CLI marketplace | 01 |
| Agents | Custom .agent.md profiles with specialized AI roles |
01, 03 |
| Skills | SKILL.md auto-activating knowledge packs |
01, 04 |
| Instructions | copilot-instructions.md + path-scoped .instructions.md |
02 |
| AGENTS.md | Repository-level context — always loaded | 02 |
| Command skills | SKILL.md with disable-model-invocation: true — reusable /name commands |
04 |
| MCP Servers | External tool integrations (Context7, Microsoft Learn, WorkIQ) | 05 |
| Hooks | Pre/post tool-use lifecycle automation | 06 |
| Orchestration | Multi-agent coordination workflows | 07 |
| Agentic Workflows | gh-aw CI/CD automation with AI agents |
08, 09 |
| Coding Agent | Platform-level issue → PR implementation | 09 |
| Code Review | AI-powered pull request reviews | 09 |
| Reindex | Automatic semantic understanding of your codebase | 10 |
| Session Management | Agent memory via markdown lessons — decisions, handoffs, project wiki | 10 |
Lab Modules
💡 Multi-Platform Support: All lab command lines provide both PowerShell and WSL/Bash alternatives. Choose the commands that work best for your environment.
| Lab | Module | Focus |
|---|---|---|
| Setup | Fork, Prerequisites, Overview | Fork repo, enable Actions, install tools |
| Lab 01 | Exploring Copilot Configuration | Plugin marketplace, agents, skills, instructions, prompts |
| Lab 02 | Custom Instructions & AGENTS.md | Instruction hierarchy, modify, extend |
| Lab 03 | Creating a .NET Agent | Build dotnet-dev.agent.md |
| Lab 04 | Skills & Prompts | Create a skill, write a prompt template |
| Lab 05 | MCP Server Configuration | Configure Context7, Memory, Sequential Thinking |
| Lab 06 | Hooks | Pre/post tool hooks, build checks |
| Lab 07 | Multi-Agent Orchestration | Orchestrator → dev → QA → review |
| Lab 08 | gh-aw: PRD Generation | Branch creation triggers PM agent |
| Lab 09 | Copilot Coding Agent & Code Review | Issue → Coding Agent → PR → AI review |
| Lab 10 | Agent memory: personalities, lessons, and consolidation | Three memory layers (Raw sources → Wiki → Schema), the /consolidate-lessons skill, .copilot/lessons/ |
| Lab 11 | Building & Distributing a Copilot Plugin | Enterprise marketplace, private registry, SBOM, allowlist policy |
| Lab 12 | Fabric MCP with Copilot CLI & VS Code | Fabric MCP wiring, lakehouse enumeration, inline-chat & agent-mode notebook editing, offline Parquet simulator fallback, notebook hygiene |
| Lab 13 | A2A Concepts with Copilot CLI ACP | Agent-to-agent fundamentals, two-agent (implementer + critic) walkthrough on the Node app, task/write_agent/read_agent primitives, three failure modes (looping, context drift, hand-off ambiguity) with mitigations |
| Lab 14 | Orchestrator + tmux Pattern (Deep-Dive) | Long-lived orchestrator pane + short-lived worker panes, prescribed plan → implement → handoff → clear → qa → clear cycle, scripts/orchestrator/ (tmux-start, handoff, clear-context), orchestrator-rubric prompt, worked example adding ?department=… to the Node /api/courses endpoint, tmux primer + cheatsheet |
| Lab 15 | LSP & Code Intelligence in Copilot CLI | Configure a language server, use go-to-definition/find-references/rename/call-hierarchy, know when Copilot still falls back to text search |
| Lab 16 | Enterprise Marketplace & Plugin Governance | GA managed-settings.json schema, strictKnownMarketplaces deny-by-default, AI Controls admin walkthrough |
| Lab 17 | GitHub Admin Controls for Copilot/AI | AI Controls nav, default-on model availability policy, Copilot audit log scope |
| Lab 18 | Spec-Driven Design, Stacked PRs & Code Review in the Loop | Spec Kit-style spec → PRD pipeline, stacked pull requests, Copilot Code Review on every stack layer |
| Lab 19 | Self-Improving Agents & Skills (gh-aw Template) | Portable self-improving-agents.md gh-aw workflow, eval-harness-driven drift detection, bounded/draft-only PRs |
| Lab 20 | Enterprise Token Optimization & Reporting | Org-level usage monitoring, prompt-management governance, cross-team knowledge-base consistency |
Total: ~7 hours (20 labs — self-paced or presenter-led)
🧭 Learning path. Labs 01-10 form the core sequence. Lab 11 is standalone (plugin distribution). Lab 12 is standalone (Fabric MCP). Labs 13 → 14 are sequential — Lab 13 introduces A2A concepts and Lab 14 operationalises them with tmux. Labs 15-20 are the 2026 modernization track: Lab 15 (LSP) and Lab 17 (admin controls) are standalone; Lab 16 → Lab 11 are companions (marketplace governance); Lab 18 builds on Labs 08-09 (spec-driven PRD + stacked-PR code review); Lab 19 builds on Lab 08’s gh-aw fundamentals; Lab 20 extends
docs/token-and-model-guide.mdto enterprise scale and should be read after Lab 17.
Pre-Configured Copilot Features
This repo ships with a rich set of configurations for you to explore and extend:
| Category | Count | Examples |
|---|---|---|
| Agents | 4 (+ more you build!) | planner, code-reviewer, agentic-workflows, lab-studio-maintainer — learners create more in Labs 03, 07 |
| Skills | 7 | coding-standards, tdd-workflow, security-review, verification-loop, frontend-patterns |
| Command skills | 19 | /commit, /code-review, /tdd, /create-test, /handoff, /cost-check |
| Hooks | 10 handlers across 5 events | sessionStart, userPromptSubmitted, preToolUse, postToolUse, errorOccurred — secret scanning, code formatting, type checking, continuous learning, error logging |
| MCP Servers | 4 | Context7 (library docs), Sequential Thinking, WorkIQ, Microsoft Learn |
| Instructions | 3 | Path-specific rules for .cs, test files, and more |
Current Copilot CLI surface (2026 refresh)
Version floors, model tiers, and MCP pins live in
docs/_meta/registry.yaml so labs stay in sync.
| Command / surface | What it does |
|---|---|
/plugin install owner/repo |
Install a plugin from a marketplace or private COPILOT_PLUGIN_REGISTRIES registry (see Lab 11). |
/fleet |
Launch parallel subagents for independent work streams. |
Shift+Tab (plan mode) vs autopilot mode |
Review each step vs. batch-execute well-understood tasks. |
/model |
Switch models mid-session — use models.cheap/standard/premium tiers from the registry. |
extensions_manage |
Tool discovery: list/inspect/guide/scaffold — the in-repo analogue of a marketplace. |
Useful Commands
| Task | Command |
|---|---|
| Run both tracks + lab/structure tests | make test-all |
| .NET unit/integration tests | make test-dotnet (or dotnet test dotnet/ContosoUniversity.sln) |
| Node unit/integration tests | make test-node (or pnpm -C node test) |
| Root vitest (lab structure, build, devcontainer) | make lint-labs (or npm test) |
| Activate repo-managed git hooks (strip notebook outputs) | make setup-hooks |
| Compile every gh-aw workflow (authoritative agentic-workflow lint) | make lint-workflows (or gh aw compile) |
| Build .NET solution | dotnet build dotnet/ContosoUniversity.sln |
| Run .NET web app | dotnet run --project dotnet/ContosoUniversity.Web |
| Run Node web app | pnpm -C node dev |
| Compile gh-aw workflows locally | gh aw compile |
| Check Copilot CLI | copilot --version |
| Install gh-aw extension | gh extension install github/gh-aw |
Repository Structure
day-in-the-life-copilot-lab/
├── .github/
│ ├── agents/ # Agent profiles (more created during labs)
│ ├── skills/ # Agent skills (SKILL.md), incl. /cost-check and the other /name commands
│ ├── hooks/ # Hook configuration (default.json)
│ ├── instructions/ # Path-specific instructions (.instructions.md)
│ ├── copilot-instructions.md # Repository-wide instructions
│ └── workflows/ # GitHub Agentic Workflows (.md + .lock.yml)
├── .copilot/
│ └── mcp-config.json # MCP server configuration (4 servers; root .mcp.json mirrors it)
├── dotnet/ # .NET track — ContosoUniversity solution
│ ├── ContosoUniversity.sln
│ ├── ContosoUniversity.Core/ # Domain models and interfaces
│ ├── ContosoUniversity.Infrastructure/ # Data access and services
│ ├── ContosoUniversity.Web/ # ASP.NET MVC web application
│ ├── ContosoUniversity.Tests/ # xUnit unit and integration tests
│ └── ContosoUniversity.PlaywrightTests/ # Playwright E2E tests
├── node/ # Node track — Fastify + Drizzle + Vitest
│ ├── core/ # Domain entities + repo interfaces
│ ├── infra/ # Drizzle schema, repos, in-memory db, seed
│ ├── web/ # Fastify app, routes, SSR views
│ └── tests/ # Unit + integration tests (Vitest)
├── plugin-template/ # Lab 11 — private Copilot plugin scaffold
├── modernization-bundle/ # Lab 19 — packaged self-improving-agents plugin
├── labs/ # 20 hands-on lab modules + per-track appendices
├── solutions/ # Reference solutions
├── docs/ # Reference docs + token & model guide
│ ├── _meta/ # registry.yaml — single source of truth for versions
│ └── token-and-model-guide.md # Phase 7 cost / model-selection mental model
├── scripts/
│ ├── hooks/ # Hook shell scripts (Bash + PowerShell)
│ └── orchestrator/ # Lab 14 — tmux-start, handoff, clear-context
├── mcp-configs/ # MCP server reference configurations
├── tests/ # Root vitest suite (lab structure, build, meta)
├── Makefile # `make test-all` orchestrates both tracks
├── AGENTS.md # Repository-level agent context
├── CHANGELOG.md # Keep-a-Changelog release notes
└── TROUBLESHOOTING.md # Common issues and fixes
GitHub Agentic Workflows
This lab uses GitHub Agentic Workflows (gh-aw) — author GitHub Actions using Markdown with YAML frontmatter. Three workflows are included:
| Workflow | Trigger | What It Does |
|---|---|---|
| PRD Generation | Feature branch created | PM agent generates a Product Requirements Document |
| Code Review | Pull request opened | Code review agent provides automated feedback |
| Weekly Content Audit | cron: 0 5 * * 0 (Sunday 05:00 UTC) + manual dispatch |
Audits the seven freshness checks in docs/_meta/registry.yaml (CLI, gh-aw, MCP, doc URLs, packages, models, lab pacing) and opens one PR on automation/weekly-audit-YYYY-MM-DD with a generated docs/_meta/audit-report.md, labeled automated, content-audit, needs-review. Drafted automatically when changes exceed audit.draft_pr_if_changes_exceed. Reviewers come from .github/CODEOWNERS. |
Workshop Content
| Resource | Description |
|---|---|
| Setup | Fork, prerequisites, environment setup |
| Lab Modules | 20 hands-on labs — start here |
| Lab Studio | Browser-based guided runner for all 20 labs — live Copilot sessions via the Copilot SDK, a simulated GitHub surface (Actions/PRs/rulesets) with real AI inside it, per-step verification |
| Reference Solutions | Completed solutions for each lab |
| Troubleshooting | Common issues and fixes |
| AGENTS.md | Full project context document |
Troubleshooting
| Problem | Fix |
|---|---|
| Copilot CLI not authenticated | Run copilot login and follow prompts |
| MCP servers not loading | Copy .copilot/mcp-config.json to ~/.copilot/, restart VS Code |
dotnet build fails |
Verify .NET 8 SDK: dotnet --version — download |
| Skills not activating | Reference the skill explicitly in your prompt, or check SKILL.md frontmatter |
| Copilot not responding | Verify the extension is signed in and enabled in VS Code |
For the full troubleshooting guide, see TROUBLESHOOTING.md.
Contributing
See CONTRIBUTING.md for guidelines on adding agents, skills, prompts, and other configurations.
License
Built with GitHub Copilot.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add ms-mfg-community/day-in-the-life-copilot-lab