
Jev Skill Select
Use when unsure which of many installed skills applies to a request, if any, or when...
Install
npx skills add kerpopule/hermes-jev-skills --skill jev-skill-select -g -a claude-code -y- Repository
- kerpopule/hermes-jev-skills1.3k
- Category
- Engineering
- Updated
- 6d ago
- License
- MIT
- Context cost
- Mediumabout 2,187 tokens
- Runs scripts
- No, instructions only
What it does
Use when unsure which of many installed skills applies to a request, if any, or when asked to make skill loading cheaper or more accurate. Jev ranks the whole catalog and may say no skill is needed.
Skill selection with Jev
Two round trips, about 0.5 s on a warm connection (this was ~1.2 s before the connections were pooled, every call used to open a new TLS session). The first round trip ranks every skill against the turn: the catalog is cut into batches of 120 that are asked side by side, so a 377-skill catalog is four requests sent at once and a 960-skill one is eight, all landing in the time of the slowest. The second round trip is one request: it reads the top five properly, judges each on its own, and may reject them all. Wall clock and billed requests are not the same number, and it is the requests you pay for: reckon on ceil(skills / 120) + 1 per turn that reaches Jev. A turn that nothing in the catalog comes close to ends after the first request. Small talk and ordinary turns come back with no skill. Reading the skill folders is extra: about 0.15 s for 460 skills.
When the plugin also runs model routing, the two share one request. Jev charges per request, not per question, so the plugin asks routing's three questions and this stage-1 question or questions in the same call (jevkit/turn.py), then hands the answers to each feature's own thresholds. Both halves are also pooled at the connection level (client.py keeps keep-alive sockets; a fresh TLS session per call cost ~275 ms of the ~520 ms a decision used to take). Measured against the live API on 2026-09-21/22 with a 379-skill catalog in this fleet: one question ~180-250 ms on a warm connection, and a full Hermes turn (routing + skill selection, merged, pooled) 1784 ms → 672 ms, 3 requests down to 2. The decisions do not change, the same answers, the same floors, and eight live turns before shipping gave the same tier and the same skill on all eight. /jev merge_requests off puts them back in separate requests. A private profile, a turn that looks sensitive, or routing configured for features-only state never merges, so no text moves that was not moving before.
