A deploy skill must never start by itself, only when someone runs it. What do you set?
Why D is the answer
disable-model-invocation: true
disable-model-invocation keeps a skill manual only. A written warning is only guidance, and paths limits when a skill loads automatically.
In detail
- disable-model-invocation: true stops Claude from starting the skill by itself.
- A person can still run it directly, which suits something with side effects like a deploy.
- Use it for any skill with side effects that you want a person to trigger.
Use case
An illustrative scenario, not a real incident.
A deploy skill pushes to production. With disable-model-invocation set, Claude cannot start it by itself, even when someone mentions deploying. A person must run it.
See it in different ways
flowchart TD
A{"Needed in every session?"} -->|Yes| B["CLAUDE.md"]
A -->|No| C{"Must it run by itself?"}
C -->|"Only on request"| D["Skill with disable-model-invocation"]
C -->|"When relevant"| E["Skill"]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 --> [*]
stateDiagram-v2 state "Skill installed" as s0 state "Manual only" as s1 state "Skill runs" as s2 [*] --> s0 s0 --> s1: disable-model-invocation s1 --> s2: a person runs it s2 --> [*]
Key point: Risky skills should be started only by a person.
Why the other options are wrong
- A. A warning at the top of the skill telling Claude not to run it
- A written warning is guidance, not a control.
- B. allowed-tools, listing no tools at all in the skill frontmatter
- allowed-tools concerns which tools can run without approval. It does not control who starts the skill.
- C. paths, listing only the deployment folder in the skill
- paths limits when a skill loads automatically, but it can still start by itself.

