If you've been using GitHub Copilot long enough, you've hit the same wall: it keeps suggesting Jest when your team uses Vitest, or default exports when you prefer named ones. You're constantly re-explaining context that should just... stick. That's exactly the problem GitHub Copilot's three customization primitives were built to solve: Instructions, Prompts, and Skills.
Instructions: The Always-On Rules
Instructions are Markdown files that passively shape Copilot's behavior on every interaction. They live at .github/copilot-instructions.md for project-wide rules, or in .github/instructions/*.instructions.md for targeted guidance. The key word is passive โ once you write them, they're automatically loaded without anyone invoking anything. The real power comes from the applyTo glob pattern. You can scope instructions to specific file patterns like src/components/**/*.tsx, so Copilot automatically knows your React component standards whenever it's working in that directory. No reminders, no repeated context โ it just reads the file and behaves accordingly.
Prompts: Reusable Tasks on Demand
Prompts are template files you trigger explicitly via slash commands like /generate-tests. They're saved workflows for focused, repeatable tasks. Unlike instructions, prompts are active โ you invoke them when needed rather than having them always running in the background. Where instructions shape how Copilot behaves, prompts define specific procedures to execute. A good prompt file includes metadata like which agent to use and what tools it should have access to. If you've typed the same multi-sentence request into Copilot chat more than twice, that's a candidate for a .prompt.md file.
Skills: Multi-Step Workflows with Bundled Assets
Skills are folders containing instructions plus supporting scripts, templates, and reference docs. They're designed for complex workflows that need multiple steps and external assets โ think smoke test scripts, endpoint documentation, or component scaffolding templates. A skill lives in .github/skills/ with subdirectories for scripts and references. The SKILL.md file describes the workflow procedure and lists which bundled files to use at each step. If a prompt is a recipe card, a skill is the entire cookbook chapter with ingredients included.
Key Takeaways
- Does the guidance apply broadly without being explicitly requested? โ Instructions
- Is it a single, focused task you run repeatedly and want consistent output from? โ Prompt
- Do you need scripts, templates, or multi-step orchestration with bundled dependencies? โ Skill
The Bottom Line
Start with copilot-instructions.md โ write down the corrections you've been making to Copilot. Five minutes of setup pays dividends on every subsequent interaction. Prompts come next when you notice yourself typing the same request repeatedly. Skills are for workflows complex enough to justify a folder structure. The goal isn't to configure everything perfectly on day one; it's to gradually encode your team's knowledge so Copilot gets smarter about your codebase over time.