A hands-on course for experienced developers who are ready to take GitHub Copilot CLI beyond the basics and use it for real-world brownfield work — building reusable AI infrastructure (custom instructions, custom agents, agent skills, lifecycle hooks, LSP, and MCP integrations) on top of an existing multi-stack legacy codebase.
Important
Because GitHub Copilot, and generative AI at large, is probabilistic rather than deterministic, the exact code, files changed, and outputs may vary between runs. You may notice slight differences between what's described here and what you see in your terminal. This is expected.
You're already comfortable with Copilot in an IDE and with the basics of Copilot CLI (running copilot, having a chat, accepting an edit). You want to:
- Use Copilot CLI as your primary agent surface, not as a fallback when you're away from your editor.
- Codify your team's conventions so Copilot follows them automatically.
- Build reusable skills and custom agents instead of re-prompting from scratch every session.
- Extend Copilot CLI with LSP, MCP, and lifecycle hooks, and distribute it all as a plugin your team installs in one shot.
This course assumes you are familiar with:
- Copilot CLI and are looking to expand your knowledge.
- GitHub flow, including working with issues and pull requests.
- using VS Code as a code editor (or similar IDEs).
- creating software using different programming languages.
Note
The app used in the course scenario uses several programming languages, including Python, Java, TypeScript and C#. Familiarity with all languages is not a requirement to successfully complete this course. In fact, one of the core tasks you'll be performing is to ask Copilot about the project and how it works.
You've inherited AssetTrack at Contoso Industries — an internal asset-tracking application built across Java, Astro/TypeScript with React islands, .NET, and FastAPI. It's a brownfield app build like many brownfield apps: incomplete documentation, a long bug list, and the usual rough edges that come from years of accumulated tech decisions and tech debt.
You'll work the legacy app from geektrainer/legacy-app throughout the course, using Copilot CLI to understand it, extend it, and modernize it.
Across the seven core modules of this course (plus a prerequisites module and a wrap-up) you will:
- Understand what an AI agent is and how the Copilot CLI harness works under the hood, including how to control models, permissions, and modes — then use Copilot CLI to explore the repo and fill the obvious documentation gaps.
- Build the AI infrastructure for a brownfield repo: generate
copilot-instructions.mdwith/init, add path-scoped.instructionsfiles, author a custom agent for accessibility, and import themake-repo-contributionskill so every Copilot contribution flows through issues and PRs. - Validate accessibility upgrades with Playwright tests, drive a session against a hosted environment with
/remote, and offload bounded test work to the Copilot cloud agent with/delegate. - Wire lifecycle hooks so tests, lint, and build feedback flow back to the agent automatically.
- Plan and execute a new feature (barcode support) with
/research,/plan, rubber-duck critique, QA + accessibility custom agents, and/fleetparallel subagents. - Give Copilot better signal with LSP servers across stacks, a documentation MCP server, and
/research— then drive modernization with per-stack migrator agents. - Scale your AI infrastructure: package it as a plugin, build a custom MCP server exposing AssetTrack's database safely, and reason about enterprise-tier custom agents.
Each module is a single markdown file under content/. Modules build on each other but each module's exercises include a starting-state note so you can drop in if you need to.
- Environment setup
- Working with Copilot CLI
- Building an AI infrastructure foundation
- Enhancing the test suite with remote and delegation
- Shaping Copilot CLI's lifecycle with hooks
- Adding a new feature: barcode support
- Modernizing apps with Copilot CLI
- Managing Copilot's infrastructure
- Wrap-up and next steps
Head to Module 0: Environment setup to get your environment ready.
If you jump directly into Module 3, run the catch-up script from the AssetTrack repository root:
node scripts/catchup.mjs --source-repo-url https://github.com/GeekTrainer/advanced-copilot-cli --asset-path assets/03node scripts/catchup.mjs --source-repo-url https://github.com/GeekTrainer/advanced-copilot-cli --asset-path assets/03The script pulls from the course source repository and copies the selected asset path into the AssetTrack repository root, excluding the scripts/ directories. To test against a local checkout before the assets are merged upstream, pass --source-path. To reuse it for another module, pass that module's asset path, such as --asset-path assets/04.
This repository contains the skeleton for the course. Each module file captures the structure, talking points, and exercise outlines. Full prose, screenshots, and step-by-step content will be filled in by the course authors.