What decides whether Claude uses a skill automatically?
Why D is the answer
Its description, which tells Claude when to use the skill
The frontmatter tells Claude when to use a skill, and the description is the key field. A vague description is the usual reason a skill never fires.
In detail
- Claude uses the skill's description to judge whether it applies to the task.
- State what the skill does and when to use it, because a vague description is the usual reason a skill never fires.
- Say what the skill does and when to use it, in words a user would use.
Use case
An illustrative scenario, not a real incident.
A team writes a skill described as "helper for documents". It never fires. Rewritten as "Use when writing release notes from merged pull requests", it is picked up when that task comes along.
See it in different ways
stateDiagram-v2 [*] --> Listed: description available Listed --> Loaded: task matches, or a person runs it Listed --> ManualOnly: disable-model-invocation ManualOnly --> Loaded: a person runs it Loaded --> [*]
flowchart TD
Q{"Does the description match the task?"}
Q -->|"Yes, clearly"| A0["Skill is used"]
Q -->|"Vague"| A1["Skill is ignored"]Key point: The description decides whether a skill is used.
Why the other options are wrong
- A. The order in which skills are listed inside the .claude/skills folder
- Folder order does not express when a skill applies.
- B. The alphabetical position of the skill name among all installed skills
- Alphabetical position has no connection to the task.
- C. How recently the skill file was edited in the local project folder
- File edit times tell Claude nothing about relevance.

