Skip to content

jev-skill-router

OpenCode plugin that uses two gated Jev calls to inject at most one SKILL.md into the system prompt, or none.

Agent skillbeta

Overview

This OpenCode V2 plugin follows TypeSafe's cookbook skill-suggestion pattern to pick at most one skill for the main model. It hooks session context directly, so there is no separate process and no tool the agent has to call. When nothing is relevant or anything fails, nothing is injected and the task continues untouched.

The pipeline is a local pre-check for greetings, then a first Jev call that ranks the whole roster with a Choice plus three Noul gates (does the request act on the user's systems, would an expert follow a documented procedure, would prose suffice). If the gate mean is under 0.30 it abstains. A second call reranks the top three using full descriptions and a body excerpt with per-skill fit Nouls, again abstaining under 0.30. Only metadata is sent, never skill content beyond the excerpt. The README includes real captured request and response payloads.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich of these skills, if any, is the right one to load to help with the user's latest request?—
Yes / noIs the assistant being asked to act on the user's files, accounts, devices, or online services, rather than only to explain or advise?—
Yes / noCould a knowledgeable generalist fully satisfy this request in prose, with no tools, no documentation, and no access to the user's files or accounts?—
Yes / noDoes this candidate skill fit the request (per-candidate rerank)?(inferred)—

How it works

  1. Local pre-check filters greetings; roster is all indexed skills, BM25-trimmed only above 200
  2. Call 1: Choice over the roster plus three Noul gates; abstain if gate mean < 0.30
  3. Call 2: rerank top three with fit Nouls; abstain if all fits < 0.30
  4. Budget-checked load of the single winner into the system prompt

Strengths

  • Fails closed: on errors or low confidence nothing is injected
  • No extra process or agent tool call
  • Two-stage gating limits unnecessary skill injection

Caveats

  • Thresholds are fixed heuristics, not calibrated values per the README
  • Two decision calls add latency per routed request
  • Some documentation is in Indonesian

At a glance

Type
Agent skill
Status
beta
Language
TypeScript
Runtime
OpenCode plugin
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

How many skills can it inject?

At most one per request, and none when the gates or fit checks fall below 0.30.

Is it an MCP server?

No. It is an OpenCode plugin that hooks session context, so the agent never has to call a tool.

What does it send to the decision API?

Skill ids and descriptions in the first call, plus a 700-character body excerpt for the top three in the second.

Related projects

  • Orchestrator that probes which coding agents are installed and logged in, then has Jev pick the best one for a task.

    Agent skillbetaPython
  • Experimental plugin wiring Jev into coding-agent harnesses to pick skills, tools, models and browser moves, starting with OpenCode.

    Agent skillprototypeTypeScript
  • MIT plugin and local MCP server that hands an agent's closed questions to Jev or local Laya, with policy gates and receipts.

    Agent skillproductionPython
  • Claude Code and Codex skill that routes a task to one of 27 specialist roles, with an optional Jev engine for catalog selection.

    ProjectbetaPython
  • Claude Code hook that decides which agent or skill should handle a request using YAML rulebooks plus one Jev Choice with confidence bands.

    HookbetaPython
  • Hooks for Claude Code, Codex and pi that use Jev to suggest a skill each turn, plus a rule gate for subagent model routing.

    HookbetaJavaScript