Home › Skill not triggering

Gemini skill not triggering: why it uploads and never runs

A skill that will not trigger almost always has one cause: the name in the frontmatter does not match the name of the folder it sits in. The upload succeeds, the skill shows in your list, and nothing fires — with no warning anywhere. This page shows how to confirm that in about two minutes and how to fix it.

Do this first: look at the folder the skill lives in and compare its name, character for character, with the name field in its SKILL.md. They must be identical. A difference of one character, one hyphen, or one letter case is enough to stop the skill from ever running.

Paste your file into the validator with your folder name and it will tell you directly whether they match.

What the failure actually looks like

Because nothing is reported, people often assume the skill was not saved. That leads to uploading it again, renaming it, and eventually rebuilding it from scratch, none of which helps.

What you seeWhat it means
Upload completes with no error The file was accepted. Acceptance is not validation.
The skill appears in your list It was registered. Appearing in the list does not mean it can run.
No output when you send a matching request This is the symptom. It is not caused by the wording of your request.
No error, warning, or log entry anywhere Expected. A name mismatch is not treated as an error condition.
The skill runs after you fix the folder name Confirms the cause. Nothing else was wrong.

The important consequence: because there is no feedback, a skill with this problem can sit in your list for months. You will assume the skill is the problem, when the problem is a folder you never checked.

Why the folder name has to match

The name field is how a skill is addressed. The loader reads the frontmatter to learn which skill is being invoked, then looks for the content inside the directory that carries that name. If the directory is called pdf-tools and the frontmatter says name: pdftool, the loader looks for pdftool and finds nothing that matches its expectation.

Nothing about this is recoverable at runtime. The skill is registered and listed, but it can never be selected.

How to check, step by step

1

Note the folder name

Read the actual directory name from your file manager, not from your own memory of what you called it.

2

Read the name field

Open SKILL.md and read the name: line. Copy it rather than retyping it.

3

Compare character by character

Look for spaces, underscores, capital letters, trailing hyphens, and doubled hyphens.

4

Fix one side

Rename the folder or change the field. Renaming the folder is usually safer because the name field has format rules.

Differences that cause it

Every one of these is enough on its own. None of them produces an error.

Foldername fieldDifference
pdf-toolspdf-toolsMatches
pdf-toolspdf_toolsHyphen versus underscore
pdf-toolsPDF-ToolsLetter case
pdf-toolspdf toolsSpace in the field
pdf-toolspdf-tools-Trailing hyphen
pdf-toolspdf--toolsDoubled hyphen
PDF-toolspdf-toolsCapital folder name
pdf_toolspdf-toolsUnderscore folder
pdf toolspdf-toolsSpace in folder

Note the two rows marked as matching. A folder named pdf-tools with a field of pdf-tools is correct even if the name is not very descriptive — descriptiveness is not part of the rule, agreement is.

The name field has its own format rules

Separately from matching the folder, the name itself must satisfy the format. These cause rejection at upload, which is at least visible.

RuleDetail
Length1 to 64 characters
CharactersLowercase letters, digits, and hyphens only. No spaces, no underscores, no capitals.
HyphensCannot start with one, end with one, or appear twice in a row
Must equalThe parent folder name, exactly

So PDF-Processing, -pdf, pdf-, pdf--tools, and pdf_tools are all invalid regardless of the folder. The format reference documents every field.

Other reasons a skill does not fire

If the folder name matches, these are the remaining candidates.

The description does not say when to use it

Selection is driven by the description. It needs both what the skill does and when it applies. A description like "Helps with PDFs" gives the loader nothing to match against. Write it as what plus when:

description: Extracts text and tables from PDF files.
  Use when the user mentions a PDF, a scanned document,
  or needs text pulled out of a file.

This is the most common cause after the folder mismatch, and unlike the folder problem it is not always silent — the skill simply never gets selected. The validator warns when a description lacks a trigger condition.

The skill is disabled

Anything that came through the automatic migration from Gems arrives as a disabled draft. It appears in your list and does nothing until you enable it. This looks identical to a broken skill.

You are in a different surface

Gemini App skills and Workspace skills are separate systems. A skill uploaded to the App is not available in Workspace, and the reverse is also true. The same skill must be uploaded twice. This is not documented prominently and produces a convincing false impression that the skill is broken.

You have hit the active limit

Up to 100 skills can be active at once. If you are at the limit, newly uploaded skills may not become active. Check how many are currently enabled rather than assuming this particular skill is the problem.

A diagnostic order that works

1

Folder name equals name field

The cause behind most failures. Confirm this before anything else.

2

Name satisfies the format rules

1 to 64 characters, lowercase, digits and hyphens, no leading, trailing, or doubled hyphen.

3

Description states what and when

Without a trigger condition the loader has nothing to match.

4

Skill is enabled

Migrated skills start disabled. Check this before assuming the file is wrong.

5

Right surface

App and Workspace are separate. Upload to both if you use both.

6

Under the active limit

100 active skills maximum.

Checking every skill at once

Checking one file by hand takes a minute. If you have several, the validator does the folder comparison for you: paste the file, type the folder name, and it reports whether they match along with every other rule the file breaks.

There is also a deliberately broken example on that page — a file with capitals, an underscore, an external network call, a binary attachment, and a folder mismatch. Loading it shows exactly what each problem looks like in the output.

Frequently asked questions

Why does my skill show in the list but never run?

Almost always because the name field does not match its folder name. The upload registers the skill but it cannot be selected, and nothing is reported. Compare the two strings character by character.

Is there any warning when the names do not match?

No. This is the reason the problem is so often missed. The upload succeeds, the entry appears in the list, and there is no error, warning, or log message. If the names differ you get no signal at all.

Should I rename the folder or the name field?

Rename the folder. The name field has format restrictions — lowercase, digits and hyphens only, no leading, trailing, or doubled hyphen — while folder names on most systems are unrestricted. Changing the folder is less likely to introduce a new problem.

Are capital letters in the folder name a problem?

Only if the name field differs in case. A folder called PDF-tools with a field of pdf-tools is a mismatch. Capital letters inside the name field itself are invalid and will be rejected at upload.

My names match exactly and it still does not fire. What next?

Work through the remaining causes in order: description quality, whether the skill is enabled, whether you are in the same surface you uploaded to, and whether you are at the 100 active skill limit. The validator covers the format and description issues in one pass.

Why was my migrated skill disabled?

Everything that came through the automatic migration from Gems arrives as a disabled draft. It must be enabled individually. This is easy to miss because the skill is listed and looks normal.

Does a skill uploaded to the Gemini App work in Workspace?

No. They are separate systems and do not sync. The same skill must be uploaded to both if you use both surfaces. This is the reason behind a convincing false impression that a correctly built skill is broken.

What makes a good description for triggering?

State what the skill does and when to use it, in the third person. "Extracts text and tables from PDF files. Use when the user mentions a PDF, a scanned document, or needs text pulled out of a file." A description like "Helps with PDFs" gives the loader nothing to match against.

How many skills can be active at once?

Up to 100 active at once, with up to 100 MB of uploads in total. At the limit, newly uploaded skills may not become active. Both limits are on the format reference page.

Can a skill fail because of the body content?

Yes. Scripts inside a skill must not fetch external URLs, and binary formats such as .docx, .doc, and .xlsx are not supported as attachments. Both are caught by the validator. Unlike a name mismatch, these produce an upload error rather than silence.

How long does it take to fix a name mismatch?

Renaming the folder takes under a minute. Allow a few minutes for the change to take effect, then test with a request that should match the description. The backup checklist is worth reading first if you are about to rebuild anything from scratch.