route

route is a skill for Claude Code, Codex from jongwony/epistemic-protocols. It costs 42 tokens per session (2,493 once invoked), scanned A, original, MIT.

A routing skill that matches the current session context to the loaded protocol whose missing capability it addresses.

In plain words
What is it for?
Use it to invoke the best-matching loaded protocol, ask for a nudge when several fit, or stay quiet when none does.
Why use it?
It reduces uncertainty about which available workflow should handle the situation.

Skill for Claude CodeCodex

Written for Claude Code and Codex: shipped in a Claude Code plugin, but also agents/openai.yaml present.

Part of the route plugin — 1 skill shipped together

Good fit Use it to invoke the best-matching loaded protocol, ask for a nudge when several fit, or stay quiet when none does.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jongwony/epistemic-protocols/route
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add jongwony/epistemic-protocols --skill route
Clone the repo
git clone --depth 1 https://github.com/jongwony/epistemic-protocols

Made for: Claude Code, Codex.

Or install route, the plugin that ships this one along with the rest of its 1 skill.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for route

README.md
[![agentmods](https://agentmods.dev/badge/skills/jongwony/epistemic-protocols/route.svg)](https://agentmods.dev/skills/jongwony/epistemic-protocols/route)
Your own site
<a href="https://agentmods.dev/skills/jongwony/epistemic-protocols/route"><img src="https://agentmods.dev/badge/skills/jongwony/epistemic-protocols/route.svg" alt="Measured on agentmods" height="20"></a>
Per session 42 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,493 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00042 $0.02493
Opus 5 $0.00021 $0.01247
Sonnet 5 $0.00008 $0.00499
Haiku 4.5 $0.00004 $0.00249

Measured today against content hash 1a29d977f62e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

route scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

route/skills/route/SKILL.md · 63 lines

How it starts

The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Route Skill

Route the accumulated session context to the core epistemic protocol whose deficit it shows, and invoke that protocol. Type: (DeficitUnrouted, AI, ROUTE, AccumulatedContext) → ProtocolInvocation.

What it does

  1. Take the candidates from the harness's own loaded-skills listing: the loaded core protocol identifiers, and nothing else. Route carries no matching table of its own; a protocol not loaded is not a candidate.
  2. Resolve each candidate's deficit from that protocol's own declared description — the text the protocol itself publishes, which names the interaction deficit it resolves. A listing that already carries those descriptions has resolved them and nothing further is read; a listing that carries identifiers alone leaves the deficits unresolved, and resolving them requires the capability to read a loaded skill's own declared description. A candidate whose description cannot be resolved drops out rather than being matched on a guess about what its identifier means.
  3. Match the accumulated session context against each resolved deficit. The question per protocol is whether the context, as it stands now, is the situation that description names.
  4. Decide by the option-set relay test:
    • one protocol is the analytically dominant match → call the skill-invocation capability with that protocol's skill identifier, passing a one-sentence deficit-framed statement of the current context as its argument. Issuing that call is what discharges this branch: naming the match belongs to the matching step, and the routing is the call. The invoked protocol's own opening detection and first gate hold the user's judgment.
    • several protocols fit, or the one match is weak → emit one line per fitting protocol, ↗ /command — reason, and stop.
    • nothing fits, or no candidate's deficit resolved → say nothing.
    • a gate holds the user's judgment — a protocol presented a checkpoint this session, and its own contract has not yet taken an answer at it, closed it, or entrusted the prompt to the session — → that protocol reads the prompt first, the way its contract reads any free response at that stop: an answer, a decline, a withdrawal, a dismissal, or a handoff to the session under a continuation it holds. Route reads the context that reading leaves, and reads off it which gates still hold: a checkpoint the reading closed, or whose contract entrusted the prompt to the session, holds no longer, so where none holds Route is in the ordinary branches above and what the protocol recorded is residual, read at the next prompt (Rule #5). One gate still holding, with a different protocol the dominant match → monitor mode: emit one ↗ /command — reason line as a finding, invoke nothing, and let the turn go back to that gate. Detecting a deficit and switching to it are separate flows: the finding is a line in the transcript, which the user reads where that gate next stops for them, and whether to switch is theirs to answer there — as a free response, which the protocol handles the way its contract handles any free response at that stop. That protocol's contract ends at its own boundary; the finding lives in the transcript, outside it, and adds no path to the contract. More than one gate holding — reachable only through the user's own invocation, since Route invokes nothing while one holds → silence: each protocol's own gate governs, and Route arbitrates nothing between them. Whether a gate holds is read from what its contract says of the checkpoint it presented, never from a session store; a protocol's prose in context holds nothing, and neither does an invocation whose checkpoint the contract has since closed.

Read the full file on GitHub · 63 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +6 lines 1a29d977f62e
  2. yesterday Changed · +8 lines · +4 tokens per session f01c26d27b85
  3. 2d ago Changed · +6 lines 4450a7c80f6a
  4. 4d ago First seen · 43 lines · 38 tokens per session scan A c37987d487e4

Subscribe to this mod's changes

route is a skill published in the GitHub repository jongwony/epistemic-protocols (160 stars, last pushed today), licensed MIT. It adds 42 tokens to every session and 2,493 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

flow-next-guide

Recommend the smallest sufficient flow-next workflow from the starting state. Stateless router. Use when unsure which command or stage applies next.

gmickel/flow-next · 29 tokens

maestro-bundle

Route work into the right maestro tier and drive the SPEC/NOTES/VERIFY bundle lifecycle - open, resume, close, recall.

ReinaMacCredy/maestro · 32 tokens

txt-copy

Copy generated text content to clipboard. Use when user asks to "copy this", "copy to clipboard", "save to clipboard", or after creating emails, messages, letters, or other text content that needs to be shared.

umputun/cc-thingz · 48 tokens

docs

Use when documentation generally needs to catch up with a branch before pushing or merging, covering internal developer docs, external customer-facing docs, and release notes together — "update the docs", "do a docs pass before I merge", "make sure everything's documented". Prefer this when no single documentation…

The01Geek/prflow · 97 tokens

develop-inspection-feature

End-to-end workflow for adding a new inspection or quick-fix feature to the explyt/spring-plugin repository: duplicate check, fact verification against authoritative javadoc, base-class and gating choice (isAvailableForFile), visible-element highlighting, registration, platform tests, branch and PR. Use when the user…

explyt/spring-plugin · 103 tokens

re0-upgrade

Bring your installed paperthin skills up to the full current catalog in one step: retire what's been renamed, add every skill you don't have yet, and refresh the rest, all shown and confirmed before anything changes.

LilMGenius/paperthin · 47 tokens