# Every request paid for one method.

> Instructions are always on. Skills load on demand.

- **Format:** short video, 9 steps, ~51 seconds
- **Topic:** GitHub Copilot Skills explained — why pasting a team method into copilot-instructions.md makes every request pay for it, and how a SKILL.md loads only when a task matches its description, measured on a real Flutter app.
- **Author:** Suthahar Jegatheesan (MSDEVBUILD)
- **Category:** GitHub Copilot · copilot
- **Published:** 2026-01-29
- **Tags:** githubcopilot, copilotskills, flutter, aicoding, aiagents, developerproductivity, tokens, msdevbuild
- **Canonical URL:** https://blog.msdevbuild.com/shorts/copilot-skills-pay-only-when-used/

---
## What you'll learn

- Why a method in the instructions file costs every request
- How Copilot reads only a Skill description until a task matches
- Why the description is the trigger

## Understand it one step at a time

### 1. Explained four times

Firestore in the widget, setState, no test. The same chat explanation, every week.

### 2. Paste it into instructions

Week 3: the whole method goes into copilot-instructions.md. It triples.

### 3. Rename pays for it too

A rename has nothing to do with screens, and still carries both methods.

### 4. Measure it with wc

Characters in the real files, at roughly four characters a token.

### 5. Split rules from methods

Rules stay in instructions. Each method becomes a SKILL.md.

### 6. A screen task matches

"Add a ratings screen" matches flutter-feature. Only that body loads.

### 7. A rename matches nothing

"Rename this variable" matches no description. Neither body loads.

### 8. The description is the trigger

A vague description never matches, and the Skill never loads.

### 9. Rules in instructions, methods in Skills

Instructions describe your team. Skills describe its methods.

---

## The takeaway

**Rules in instructions. Methods in Skills.**

A Skill costs its description until a task matches it.
