Demo Scenarios
Part 3 of the workshop — the heart of the day. Eight self-contained, production-grade scenarios that tell one connected story. You join the template-typescript-react project — a React 19 + TypeScript + Vite single-page app — and use Copilot CLI to build, review, automate, extend, scale, and release a real feature. Each page is reproducible, lists its prerequisites, and gives you a copy-pasteable command sequence plus the why behind each step.
Every scenario uses the same app as its subject and builds on the previous one — but each page also stands alone if you want to jump straight in.
Want a narrated, build-from-scratch companion?
GitHub's Dev Days workshop Build with the Copilot CLI — Mona Mayhem builds a different app (a retro-arcade "contribution battle") using the same techniques you practice here: /init context engineering, plan mode, autopilot vs. YOLO, screenshot-driven UI debugging, /plugin + awesome-copilot, /fleet, and /delegate. It pairs especially well with Demos 1, 6, and 7. See References → Talks & demos.
The running example
Across the eight demos you grow one small, realistic feature — a Reset button for the counter in src/App.tsx — and the engineering practices around it:
graph LR
D1["1 · Build the<br/>Reset button"] --> D2["2 · Review<br/>the PR"]
D2 --> D3["3 · Understand<br/>telemetry / E2E / CI"]
D3 --> D4["4 · Automate<br/>review in CI"]
D4 --> D5["5 · Drive the app<br/>via Playwright MCP"]
D5 --> D6["6 · Encode an<br/>agent + skill"]
D6 --> D7["7 · Scale a telemetry<br/>convention"]
D7 --> D8["8 · Release notes<br/>+ changelog"]
- Subject app:
ks6088ts/template-typescript-react— React 19, TypeScript, Vite, Biome, Vitest (browser mode), Playwright, optional OpenTelemetry / Application Insights, and GitHub Actions CI. - The feature thread: add a Reset button (with a telemetry event) to the counter, then review, test, automate, extend, refactor, and release it.
Shared prerequisites
Complete Getting Started first. Then fork (or press Use this template on) template-typescript-react so you have a copy you can push to, and clone it:
# Clone YOUR fork (replace <your-username>)
git clone https://github.com/<your-username>/template-typescript-react
cd template-typescript-react
# Node.js + pnpm are required (see the repo README)
pnpm install
Confirm the CLI is ready:
copilot --version # CLI installed
> /login # authenticated (or COPILOT_GITHUB_TOKEN set for headless)
> /mcp # GitHub MCP server present
Run against your fork
Several demos let Copilot edit files, run shell commands, and act on GitHub.com. Point them at your fork and a feature branch — never the upstream repo or main. Review proposed actions and prefer a sandbox when granting autonomy.
The eight scenarios
| # | Scenario | Theme | Key features exercised |
|---|---|---|---|
| 1 | Issue → Branch → PR automation | Daily dev loop | GitHub MCP, plan mode, /delegate |
| 2 | AI code review | Quality | Code review agent, @ file refs, /review |
| 3 | Codebase onboarding | Understanding | Explore & Research agents, multi-repo |
| 4 | CI/CD non-interactive automation | Automation | copilot -p, PAT auth, allow/deny tools |
| 5 | MCP server integration | Extensibility | /mcp add, external tools/data |
| 6 | Custom agents & skills | Extensibility | .github/agents, SKILL.md |
| 7 | Programmatic batch refactor / migration | Automation | plan mode, /fleet, checklists |
| 8 | Release notes & changelog automation | Automation | Git history, @ refs, copilot -p |
graph TD
subgraph Loop["Daily developer loop"]
D1[1 · Issue → PR]
D2[2 · Code review]
D3[3 · Onboarding]
end
subgraph Auto["Automation"]
D4[4 · CI/CD]
D7[7 · Batch refactor]
D8[8 · Release notes]
end
subgraph Ext["Extensibility"]
D5[5 · MCP]
D6[6 · Agents & skills]
end
Loop --> Auto
Ext --> Loop
Ext --> Auto
Suggested running order
- Short on time? Do 1, 2, and 4 — they deliver the most immediate value.
- Full day? Run them in order; the story compounds, and 5 and 6 (extensibility) give 7 and 8 reusable building blocks.
- Facilitating? Have attendees fork template-typescript-react and run
pnpm installbeforehand, so Demo 1 can open the first issue against their own copy.
Each page opens with a short "In this story" recap and ends with "What you learned" and "Take it further" prompts for self-paced exploration.
Start with Demo 1 · Issue → Branch → PR automation.