Keep exact matches
Existing regex routes stay first. No model call for a decision code already handles.
Use Jev when the possible answers are known, but the language is not. Route a request, classify a failure, or suggest a model tier—then let your code decide what happens.
Optional. Paid API. Off by default. Your main coding model still writes the code.

EasyChamp has existing routes for leagues, teams, and standings. Exact phrases are cheap to match in code. Paraphrases and other languages are the gap worth testing.
“Could I see the leagues available to me?”
fallbackget_leaguesThe Python regex falls back. Jev selects the existing league read with 0.96 confidence, above the 0.95 gate. In this replay, the integration routes directly instead of asking a generative model to choose a tool.
Existing regex routes stay first. No model call for a decision code already handles.
For unmatched requests, Jev can select an allowed read operation. Confidence and policy gates can reject it.
Ambiguity, timeout, or an unsupported operation returns to the existing chat path. Access checks stay in the application.
A useful result needs its denominator, baseline, and failures. These measurements come from live API calls on synthetic, author-labelled messages.
In 62 authored cases, the new regex-first integration added five correct direct reads. All five came from the 36 held-out cases, fixed before this run. This is an observed routing result in a replay, not a measured production productivity gain.
Sequential live requests · jev-1.13 · confidence gate 0.95 · p95 437 ms · regex baseline median 0.07 ms. This replay measures routing only. A separate controlled handler comparison appears below; production API latency is not included.
Correct routing decisions improved from 45/62 to 50/62, counting both direct reads and required fallbacks. Held-out decisions improved from 24/36 to 29/36. Jev introduced zero wrong accepted read routes in this run.
Inspect all 62 cases and source revision (JSON) ↗41 API calls produced five added routes. Most calls still fell back, adding latency and cost. The classifier used 12.9 seconds across the replay: each of the five recovered routes would need to avoid more than 2.58 seconds of work to offset that total latency. Three wrong direct routes in the existing regex remained unchanged. A small, authored corpus cannot establish production accuracy.
Integration defaults to off. Multilingual requests still use the existing English response templates. No measured production time savings, retention gain, or end-to-end chat speedup. Before enabling it for users, measure fallback volume, corrections, total latency, and total cost.
For “Could I see the leagues available to me?”, the existing Gemini fallback could not list leagues. With Jev enabled, the same Python handler reached its existing league read and returned the fixture result.
I'm sorry, I can't retrieve a list of all available leagues. I can only provide information for a specific league if you give me its name or ID.Gemini 2.5 Flash · no list API call
I found 1 league(s):Existing read route · no generative model call
Demo Community League
This is one selected demonstration, not an independent speed benchmark. The fallback currently lacks a general list tool; exposing that tool is another improvement to test. Five previously successful cases were rerun: four routed directly; one fell below the confidence gate. Network model calls were real, but EasyChamp API data was a fixture. Production HTTP, authorization, database latency, and billed Gemini cost were not measured.
Read all five paired runs and full outputs (JSON) ↗The September 21 benchmark classified broad intent labels, including writes. Jev matched 25/26 labels; the ported JavaScript regex matched 12/26. Median API latency was 258 ms; total cost was $0.00073853.
Its broad labels and the new integration’s restricted read-or-fallback decisions are different tasks, so their accuracy figures are not directly comparable. The interactive examples above use the newer Python replay.
Inspect the earlier 26-call dataset (JSON) ↗If a rule or lookup already gives the answer, keep it. A smaller model is still slower and more expensive than no model call.
Not in our EasyChamp check. Jev twice selected “done” on the homepage before reaching the requested competition listing. The completion verifier rejected both attempts. Treat navigation as experimental and verify the actual destination; do not equate a model’s “done” with completed work.
The state you submit is sent to your configured provider, OpenRouter or TypeSafe. That can include prompts, task text, shell commands, or page content. SpecWeave masks common secret patterns, but masking is best effort. Do not submit data you are not allowed to share.
No. Confidence is a model output, not authorization or proof. Validate allowed outcomes, retain deterministic access checks, measure errors on your own data, and route uncertain cases to the existing fallback.
SpecWeave’s Jev commands return exit code 4 when disabled, unconfigured, or unreachable. Continue with the existing workflow. The optional shell guard fails open on provider errors; it is advisory protection, not a security boundary.
Jev is off by default. Setup requires a provider key and an explicit opt-in. Tier routing is a suggestion; it does not silently replace your coding model. Each enabled call sends the state supplied to that call.
Choose a repeated classification. Label a representative sample. Compare your current route with Jev before enabling it for users.
specweave jev setupspecweave jev doctorspecweave jev usageNew to SpecWeave? Install the CLI first. No Jev key needed for the local planning workflow.