Guide · Agent skill
How to use the Skill invocation router agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The skill-invocation-router agent skill helps an agent act as a routing gatekeeper for a catalog of other agent skills. Instead of one on/off switch, it checks who or what is asking for a skill, whether the name is allowed for that channel, and whether the request could loop or nest too deeply. It is mainly a design and testing aid for people building agent platforms. After this guide you will know what it does, how to install it, how to trigger it, and how to run its policy simulator.
Quick start
- 1Download the ZIP. Get the skill-invocation-router ZIP from this page.
- 2Install the skill. Unzip it into ~/.claude/skills/ for personal use or into .claude/skills/ in a project, or upload the ZIP under Settings → Capabilities → Skills in the Claude apps.
- 3Read the invocation model. Open references/invocation-model.md and find the channel your request belongs to.
- 4Review the example policy. Check assets/host-policy.json and treat it as an example adapter, not a standard.
- 5Ask a routing question. Describe the activation policy problem in plain language so the agent can match this skill.
- 6Run the simulator. Use python3 scripts/simulate_invocation.py with your policy, actor, name, description, and query, adding optional flags as needed.
- 7Read the decision. Check the returned JSON for the adapter, channel, score, and policy reason.
What does the skill make the agent do?
Agent Skills are folders of instructions that an agent can load when a task matches them. This skill tells the agent to classify each activation request by channel: explicit human, implicit model or agent, programmatic application, skill composition, or programmatic harness. Each channel has its own selection rule. Human and application requests need an exact discovered name, while model requests rely on description relevance and host policy.
The agent then removes ineligible candidates, scores only the remaining descriptions, and selects the strongest eligible match or abstains if nothing clears the threshold. It returns a JSON decision that includes the adapter, channel, score, and policy reason.
- Explicit human: exact discovered name, checked against an allowlist
- Implicit model or agent: eligibility filtering first, then relevance ranking
- Programmatic application or harness: exact configured name and target allowlist
- Skill composition: exact target, caller identity, non-cyclic target, and bounded depth
How do you install the skill?
Download the skill ZIP from the page, then choose one of these options. For a personal setup, unzip it into ~/.claude/skills/. For a single project, unzip it into the project's .claude/skills/ folder. In the Claude apps, you can instead upload the ZIP under Settings → Capabilities → Skills.
The skill needs a SKILL.md-compatible agent runtime to load it. Python 3 is only needed if you want to run the included simulator script.
- Personal: unzip into ~/.claude/skills/
- Project: unzip into .claude/skills/ inside your project
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
How do you trigger the skill with a natural request?
You do not need a special command. Ask in plain language for help designing, auditing, or testing how skills get activated. The skill's description covers designing and testing explicit human, implicit model or agent, programmatic application, bounded skill-composition, and harness activation policies, so requests about those topics are the ones it is meant to match.
Requests that name a concrete problem work best, such as which skills a user may trigger directly or how to stop one skill from calling another in a loop.
- Design an activation policy for a catalog of skills that separates user-triggered and model-triggered use.
- Check whether a skill-to-skill call chain could loop or nest too deeply.
- Review our host-policy file and tell me which channels each skill is allowed on.
How do you run the policy simulator?
The skill includes scripts/simulate_invocation.py. Run it from the skill folder with a policy file, the actor, the skill name and description, and the query. Optional flags cover an explicit name, caller name, composition depth, and the user-invocable and disable-model-invocation settings. The bundled assets/host-policy.json is an example adapter configuration, not a portable standard, so adapt it to your own platform before relying on it.
python3 scripts/simulate_invocation.py --policy assets/host-policy.json --actor ACTOR --name NAME --description DESCRIPTION --query QUERY [--explicit-name NAME] [--caller-name NAME] [--depth N] [--user-invocable true|false] [--disable-model-invocation true|false]What reference material is included?
The file references/invocation-model.md contains a table of the five channels, their initiators, selection methods, and typical uses. It also explains that human and model activation form a 2x2 of neither, human only, model only, or both. Application, composition, and harness activation are separate channels with their own target, caller, and depth policies.
The model applies actor and host-extension eligibility before relevance ranking, so a blocked high-scoring skill is never selected.
What about safety, scripts, and network access?
The skill runs scripts, specifically the Python simulator, and it does not use the network. Activation loads instructions only. It does not approve tools, filesystem changes, network access, secret use, or bundled scripts, so review those separately.
The simulator only scores decisions. Do not treat it or the example host policy as the sole access control for sensitive tools. Production enforcement needs your own controls.
- Runs scripts: yes (scripts/simulate_invocation.py)
- Uses network: no
- Activation does not grant permissions by itself
What people use it for
- Designing which skills end users can trigger by name and which the model can select on its own.
- Preventing a skill from calling another skill in a loop or in deep nested chains.
- Auditing an existing skill catalog to confirm each channel has an exact allowlist.
- Testing activation rules before shipping a skill catalog to a product.
- Teaching agent tool and skill routing in an AI engineering course.
Frequently asked questions
Is the skill-invocation-router skill free to use?
The skill is published under the MIT licence, as stated on this page. Check the licence file in the repository for the full terms before reuse.
What do I need to run it?
You need a SKILL.md-compatible agent runtime to load the skill. Python 3 is required only to run scripts/simulate_invocation.py.
Where do I install the skill folder?
Unzip the downloaded ZIP into ~/.claude/skills/ for personal use or into .claude/skills/ in a project. In the Claude apps, you can upload it under Settings → Capabilities → Skills.
Does this skill stop users from running sensitive tools?
Not by itself. The simulator only scores decisions, and the bundled host policy is an example adapter. Use your own enforcement for sensitive tools.
Does the skill need internet access?
No, the skill is listed as not using the network. It does run a Python script, so review that script before running it.
How is this different from simply turning a skill on or off?
A single on/off flag cannot separate who is asking. This skill classifies the channel, checks exact names and allowlists, guards against loops and deep nesting, and then ranks descriptions for model-driven requests.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits engineers designing, auditing, or testing how an agent platform decides which skills can be triggered by users, the model, or other skills, and students learning skill routing. It is not useful for everyday users who just want an agent to complete a task, and it should not be your only access control for sensitive tools.
Download the skill