MKLab · tech talk

Four ways to teach your Copilot

Maja makes sense of prompts, instructions, agents and skills.

Space to begin

I · Lost in the nomenclature

Meet Maja.

Maja is a developer who just got access to GitHub Copilot. AI moves fast, every vendor names the same ideas differently, and the docs mention prompts, instructions, agents and skills. Maja has one question: when do I use what?

II · One brain, many harnesses

Copilot lives in many places.

The AI offering is called GitHub Copilot. You reach it through a harness: Visual Studio Code, Copilot CLI, github.com, or the cloud agent working on a task in the background. Everything Maja is about to learn is plain markdown, kept in the repository for the whole team or globally on Maja's own machine.

III · Prompt files

A prompt worth saving.

Every week Maja types the same request: write unit tests for this file, follow our conventions. A prompt file, tests.prompt.md in .github/prompts/, saves it once and replays it on /tests. It runs only when Maja asks. For now, prompt files live in the IDE only.

IV · Instructions

Rules that apply themselves.

Some things should not need asking. copilot-instructions.md applies to every request in the repository. A file like style.instructions.md applies itself when the applyTo pattern in its header matches the files being touched. Maja stops repeating the coding standards. They are simply always there.

V · Custom agents

A specialist you switch on.

The word agent makes people nervous, but nothing here runs on its own. A custom agent, reviewer.agent.md in .github/agents/, is a saved prompt plus a tool list that Maja switches on for a while, through the agents menu, and off again. Do not confuse it with AGENTS.md in the repo root: that one is ambient instructions, read automatically by every agent.

Interlude · Other vendors

Some ideas travel. Some do not.

Repo-wide instructions translate cleanly: copilot-instructions.md, CLAUDE.md and AGENTS.md all play the same role, and Copilot reads them all. Slash commands are prompt files by another name. But the path-scoped *.instructions.md, with its applyTo header, has no twin elsewhere, nor do switchable custom agents: Claude's subagents are parallel workers, a different idea. Where names match, check the meaning.

VI · Skills

The new kid in town.

A skill is a folder with a SKILL.md inside: instructions, and when needed the scripts and tools to follow them. Share the folder and you share the tooling too. Skills began at Anthropic and are now an open standard, adopted by GitHub Copilot in .github/skills/.

VII · Progressive disclosure

Loaded only when needed.

Prompts, instructions and agents are loaded up front. A skill loads in stages. Only its name and description sit in the context. The full instructions load when the skill is chosen, and the bundled files only when they are used. The context stays clear for the actual work.

VIII · Portability

One folder, every assistant.

A skill can do what a prompt file, an instruction or an agent does, and carry code besides. Because it is a standard, the same folder works in Copilot, Claude Code, Codex, Cursor and dozens of other tools. Many times, one skill replaces all three of the older concepts.

IX · When to use what

Maja's map.

A request you repeat: a prompt file. A rule you repeat: instructions. A persona you switch on: a custom agent. Anything bigger, portable, or carrying tools: probably a skill, though not always. The easiest way to create any of them is to ask Copilot to write it. Knowing what to ask for is the point of this talk.

MKLab · EST. MMXXV

That was the whole map.

This is the end of the presentation. Thank you for watching. More tech talks are on the way.

All tech talks

01 · 10