Home › Skills vs custom instructions
Gemini gives you at least three ways to change how it responds: custom instructions, Gems, and Skills. They are not competing versions of the same feature — they apply at different scopes. Custom instructions shape every conversation you have. Skills sit dormant until a request matches them. Choosing the wrong one is a common reason people build something that never fires.
Quick decision:
| Aspect | Custom instructions | Skills | Gems |
|---|---|---|---|
| When it applies | Every conversation, always | Only when the request matches the description | When you open it |
| Trigger required | No | Yes, and this is where most skills fail | You choose |
| How many you can have | One set | Up to 100 active, 100 MB total | No published limit |
| Can include files | No, text only | Yes, reference files travel with it | Uploaded files, partially |
| Per-project | No | No, skills are account-level | No |
| After Nov 17, 2026 | Unaffected | Unaffected | Gone |
Note on per-project behaviour: none of the three is scoped to a single project directory. Skills are account-level, which means two projects with contradictory conventions can produce unpredictable results. If you work across projects with very different conventions, keeping instructions outside the account is safer.
Custom instructions are for facts that are true in every conversation:
Anything here does not need a trigger because there is no trigger — it is always on. That makes it the cheapest possible place to put a preference.
Custom instructions occupy space in every request. Google has tightened how much fits, and the practical effect is that long lists get dropped or ignored without warning. If your instructions are long enough that you are not sure everything fits, the fix is to move the situational parts into skills.
| Instruction type | Where it belongs |
|---|---|
| "Always answer in British English" | Custom instructions |
| "I am a CNC programmer" | Custom instructions |
| "Use this exact template when writing change requests" | Skill |
| "When I paste a PDF, extract the tables into CSV" | Skill |
| "Prefer metric units" | Custom instructions |
| "For this client's reports, use their logo and colours" | Skill |
A skill is worth building when the behaviour is conditional. Four signals that you need one:
The most common mistake: putting a conditional workflow into custom instructions and then being annoyed that Gemini applies it when it should not. A skill that stays silent until it is relevant is strictly better than an always-on rule you have to apologise for.
The two are not competitors. A sensible setup puts the permanent layer in custom instructions and the conditional layer in skills.
Identity, tone, units, standing constraints. Short enough to fit reliably.
Each specific workflow as its own skill with its own folder and trigger description.
Check each SKILL.md before uploading. The folder-name match is the one that fails silently.
That gives you a small always-on layer that never has to be edited to accommodate a new project, and a set of skills you can add, test, and remove independently.
Not a problem, but worth fixing while the site is still relevant to you. Signs the skill is doing the wrong job:
| Symptom | Likely cause |
|---|---|
| The skill fires on almost every message | Its description is too broad. Widen the trigger conditions or move it to custom instructions. |
| You never see it fire | Its description is too narrow, or the folder name does not match. |
| You keep editing it for unrelated projects | It holds more than one job. Split it into separate skills. |
| You enabled it once and forgot about it | It probably belongs in custom instructions. |
The not triggering page has the full diagnosis for the second row.
Yes, and that is the recommended setup. Custom instructions apply first, skills add situational detail when relevant. Keep the always-on layer short.
Skills depend on the surface being used, not the device. The Gemini App and Workspace have separate skill systems, and each needs its own upload. The Gems vs Skills page covers the scope differences in detail.
Up to 100 active, with 100 MB of uploads in total. Past the limit, newly uploaded skills may not become active. Both figures are on the format reference page.
Two causes dominate. The folder name does not match the name field, which is silent, or the description is too vague to match anything. The validator checks the first; this page fixes the second.
No. They are a separate feature and are unaffected. The skills-vs-gems comparison covers what does change.
No. Always-on preferences cost you nothing to keep in custom instructions and work better there. Skills are for conditional behaviour.