The invocation-mode tradeoff when authoring a skill — model-invoked vs user-invoked, and the two loads you pay for the choice.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add yulonglin/dotfiles --skill skill-invocation-modes --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Skill Invocation Modes?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/yulonglin-skill-invocation-modes)More formats (shields.io, HTML) on the badges page.
---
name: skill-invocation-modes
description: The invocation-mode tradeoff when authoring a skill — model-invoked vs user-invoked, and the two loads you pay for the choice.
disable-model-invocation: true
---
# Skill Invocation Modes
For skill authoring generally — structure, TDD mapping, discovery optimisation, testing with subagents — use `superpowers:writing-skills`, which is far more thorough than anything kept here.
This file covers the one thing that skill does **not**: the invocation-mode decision. Vocabulary adapted from [mattpocock/skills](https://github.com/mattpocock/skills)@9603c1c.
## The Choice Is Which Load You Pay, Not Which Is Cheaper
Every skill is reached one of two ways, and each way spends a different budget.
- A **model-invoked** skill keeps its `description`, so the agent can fire it autonomously *and* other skills can reach it — you can still type its name too, so model-invocation always *includes* user reach. It pays a permanent **context load**: the description sits in the window every turn, spending tokens and attention.
- A **user-invoked** skill sets `disable-model-invocation: true`, stripping the description from the agent's reach. Only the human, typing its name, can invoke it — and no other skill can. Zero context load, but it spends **cognitive load**: *you* become the index that must remember it exists.
Pick model-invocation only when the agent must reach the skill on its own, or another skill must. If it only ever fires by hand, make it user-invoked and pay no context load.
**Cognitive load is not a cost to minimise.** It is the price of human agency, and the reason some skills stay user-invoked deliberately. Spend it where human judgement matters; remove it where it does not.
## A Router Skill Cures Piled-Up Cognitive Load
When user-invoked skills multiply past what you can remember, the cure is one user-invoked **router skill** that names the others and says when to reach for each — so you remember one skill instead of many.
A router can only hint, never fire: user-invoked skills have no description, so nothing but the human can reach them. In this repo `catalog` plays that role, indexing which skill owns each activity.
## The Description Is A Context Pointer, So Its Wording Decides Reliability
A `description` is a reference held in context that names out-of-context material and encodes the condition for reaching it. Its **wording, not its target**, decides when the agent reaches and how reliably.
A must-have target behind a weakly worded pointer is a variance bug. Sharpen the wording first; inline the material only if sharpening fails.
For a model-invoked description, two rules do most of the work:
- **Front-load the leading word** — the trigger term you actually type in your prompts. That is where the description does its invocation work.
- **One trigger per branch.** Synonyms renaming a single branch are duplication — "build features using TDD … asks for test-first development" is one branch written twice. Collapse them.
## Granularity Is Chosen By Which Load You Can Afford
Finer division always spends one of the two loads: more model-invoked skills crowd the context window with competing descriptions; more user-invoked skills give the human more to remember.
Two cuts guide the division:
- **By invocation** — split off a model-invoked skill where you have a distinct leading word to trigger it.
- **By sequence** — split a run of steps where a step's post-completion steps need hiding, since isolating it in its own context clears what follows. Beware the reverse: merging sequences exposes each step's post-completion steps to what follows, inviting premature completion.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!