SOP 004: Control Invocation
Fresh| Field | Value |
|---|---|
| SOP ID | 004 |
| Version | 1.0 |
| Status | Active |
| Last Updated | 2026-02-14 |
Purpose
Control who can trigger a skill - you, Claude, or both - and manage context loading behavior.
Decision Flowchart
Invocation Matrix
| Frontmatter | You can invoke | Claude can invoke | When loaded into context |
|---|---|---|---|
| (default) | Yes | Yes | Description always in context, full skill loads when invoked |
disable-model-invocation: true | Yes | No | Description NOT in context, full skill loads when you invoke |
user-invocable: false | No | Yes | Description always in context, full skill loads when invoked |
Procedure
Step 1: Identify the Use Case
When to disable model invocation
Use disable-model-invocation: true for workflows with side effects:
/deploy- you control when to deploy/commit- you decide when to commit/send-slack-message- you choose when to send
When to hide from users
Use user-invocable: false for background knowledge:
legacy-system-context- explains old systemsapi-conventions- coding standards- Claude should know these but
/legacy-system-contextisn't meaningful as a command
Step 2: Configure Frontmatter
User-only (deploy):
yaml
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
---
Deploy $ARGUMENTS to production:
1. Run the test suite
2. Build the application
3. Push to the deployment target
4. Verify the deployment succeededClaude-only (background knowledge):
yaml
---
name: legacy-system-context
description: How the legacy billing system works
user-invocable: false
---
The legacy billing system uses...Step 3: Restrict Skill Access via Permissions
Three levels of control:
Disable all skills:
# Add to deny rules in /permissions:
SkillAllow/deny specific skills:
# Allow only specific skills
Skill(commit)
Skill(review-pr *)
# Deny specific skills
Skill(deploy *)Per-skill control:
yaml
# In SKILL.md frontmatter
disable-model-invocation: trueImportant
user-invocable only controls menu visibility, not Skill tool access. Use disable-model-invocation: true to block programmatic invocation.
Verification Checklist
- [ ] Invocation pattern matches the intended use case
- [ ] Side-effect skills have
disable-model-invocation: true - [ ] Background knowledge skills have
user-invocable: false - [ ] Permission rules configured if additional restrictions needed
- [ ] Tested both automatic and manual invocation patterns