New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Wire a System One model into a product feature

Wiring a System One model into a feature

by OneWave-AI · MIT license · ★ 306 on GitHub

Wiring a System One model into a feature cover

Wire a System One model (Jev, or an open reproduction like Von) into a product feature — routing, guardrails, scoring, classification. Use when replacing an LLM call that returns a label rather than prose, when adding a typed decision…

---
name: jev-integrate
description: Wire a System One model (Jev, or an open reproduction like Von) into a product feature — routing, guardrails, scoring, classification. Use when replacing an LLM call that returns a label rather than prose, when adding a typed decision to an agent loop, or when deciding between the hosted Jev API and a local open model. Covers question design, the eval-set-first workflow, threshold calibration, confidence gates, and the traps measured on real data.
---

# Wiring a System One model into a feature

A System One model answers **typed questions in one forward pass**. It generates no text.
State in, typed answers with calibrated probabilities out. It is an if-statement that can read.

Use it when the decision is **narrow, pre-specified, and repeated**. Do not use it for
anything that needs a written explanation — that is still a job for Claude.

## Before anything else: is this actually the right tool

Answer these three. If any is "no", stop and keep the LLM call.

1. **Are the possible answers known up front?** Choice caps at 255 options.

Overview

A System One model answers typed questions in one forward pass. It generates no text. State in, typed answers with calibrated probabilities out. It is an if-statement that can read.

Manual install (npx, ZIP)
Claude Codenpx skills add OneWave-AI/claude-skills --skill jev-integrate -g -a claude-code
Claude Code (degit)npx degit OneWave-AI/claude-skills/jev-integrate#main ~/.claude/skills/jev-integrate
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.6 KB
Read SKILL.md here
OneWave-AI/main1 file shown
SKILL.md
Show the full text164 lines

Wiring a System One model into a feature

A System One model answers typed questions in one forward pass. It generates no text. State in, typed answers with calibrated probabilities out. It is an if-statement that can read.

Use it when the decision is narrow, pre-specified, and repeated. Do not use it for anything that needs a written explanation — that is still a job for Claude.

Before anything else: is this actually the right tool

Answer these three. If any is "no", stop and keep the LLM call.

  1. Are the possible answers known up front? Choice caps at 255 options.
  2. Does the caller need only the label, not the reasoning? If a human reads a justification downstream, you need prose and this is the wrong tool.
  3. Is it high volume, or is a person waiting? This is a latency and cost optimisation, not a capability gain. It knows nothing Claude doesn't. On a nightly cron over fifty records it buys you a dependency and nothing else.

Measured on 150 hand-labelled records across three jobs (our Sep 20 2026 run): Jev ties GPT-5.2 at 145/150 and costs 46x less ($0.036 vs $1.64 per 1k records), but end to end it is only 1.7x faster than GPT-4.1-mini — the published 40x-200x is against a 3-329 s multi-step frontier workflow, not one call.

The open reproductions are not drop-in. Same run: Von 1.0.1 (395M) 92/150 (61%), Laya (421M) 62/150 (41%). They collapse onto one class rather than degrading — Von predicted exfiltration 25 times on a 50-command set containing five. A confidence gate does not rescue that: catching Von's errors meant escalating 92% of volume, Laya 100%, against Jev's 8%. Use them only where you have measured them on your own labelled set.

The three question types

"lead_type":  {"type":"choice", "instructions": "...", "criteria": {"opt_a":"desc","opt_b":"desc"}}
"is_urgent":  {"type":"noul",   "instructions": "..."}                       # -> 0.0–1.0
"priority":   {"type":"score",  "instructions": "...", "criteria":["ignore","low","high"]}

Ask every question you need in one call — they all resolve in the same forward pass, so four questions cost roughly what one does.

Response shape (both Jev and Von):

r["answers"]["lead_type"]["choice"]         # the label
r["answers"]["lead_type"]["probabilities"]  # full distribution
r["answers"]["lead_type"]["confidence"]     # use this for gating
r["answers"]["is_urgent"]["noul"]           # 0.0–1.0
r["answers"]["priority"]["score"]           # position on the scale, e.g. 2.41

Workflow

1. Build the labelled set FIRST — 50 records minimum

Non-negotiable, and the single highest-value step. Hand-label real records from the stream you intend to point this at, before writing any criteria. Without it you cannot tell a bad question from a bad model, and the failure is silent — see jev-eval.

2. Write the criteria as if explaining to a new hire

Worst-to-best spread across four wordings of the same questions, 50 records per task (our Sep 20 2026 run):

task Jev Von (395M) Laya (421M)
agent command risk 44-49 (10 pts) 9-23 (28 pts) 18-28 (20 pts)
lead triage 47-49 (4 pts) 22-34 (24 pts) 15-24 (18 pts)
ticket routing 41-47 (12 pts) 23-41 (36 pts) 22-36 (28 pts)

Same sweep on the command task with the LLMs included: Haiku 4.5 46-48 (4 pts), GPT-4.1-mini 45-50 (10 pts), Jev 44-49 (10 pts), GPT-5-mini 41-49 (16 pts).

Jev is NOT more wording-robust than a small LLM — it swings the same ten points, and Haiku was the steadiest model in the test. Read the FLOOR, not the spread: every hosted model bottoms out at 82-92% and stays shippable, while Von bottoms out at 18% and Laya at 36%. Do NOT read this as "write better criteria and the open model catches up" — an earlier 15-record test concluded exactly that and it was wrong. Richer criteria did not reliably help: on lead triage Von scored 34/50 on the terse wording and 28/50 on the carefully written one. What moves those numbers is sensitivity to surface form, not comprehension, so every future criteria edit is an unannounced regression risk.

Write each option with: what it is, what it is not, and the edge case that tempts a wrong answer. Name the default explicitly when one option should dominate.

3. Calibrate thresholds against the labelled set — never assume 0.5

A noul is a probability, not a boolean. Jev's noul has a floor: on records that were plainly clean it still returned 0.2–0.5 where Claude returned 0.0. On the measured data the useful cut was ~0.85, not 0.5. Thresholds do not transfer between models — re-sweep when you switch.

Don't hand-write the sweep. jev-eval owns calibration and ships the tool:

python ~/.claude/skills/jev-eval/scripts/sweep.py labelled.json configs.json \
    --backend jev --question <name>
4. Design the confidence gate

Gate low-confidence answers up to Claude. The same script reports both halves that matter — what fraction of errors the gate catches, and what fraction of volume it escalates — and labels the result. A gate catching every error while escalating 73% of traffic is scored saves nothing, because it is a slow path with extra steps. If you see that, the fix is better criteria or the hosted model, not a different threshold.

a = r["answers"]["lead_type"]
if a["confidence"] < GATE:
    return escalate_to_claude(state)   # slow path
return a["choice"]                      # fast path
5. Ship behind a flag, log both paths for a week

Log the System One answer and what the old path would have said. Compare on real traffic before you cut over. Never cut over on eval-set numbers alone.

Access paths

# 1. TypeSafe direct — key in macOS Keychain, service `typesafe-api-key`
export TYPESAFE_API_KEY="$(security find-generic-password -s typesafe-api-key -w)"
curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" -H "Content-Type: application/json" \
  -d '{"model":"jev-latest","state":"...","questions":{...}}'
// 2. Cloudflare Workers AI — no waitlist
await env.AI.run('typesafe/jev', { state, questions })
# 3. Von — local, free, Apache-2.0, 395M ModernBERT
# pip install von-sdk
import von
r = von.system_one(state="...", questions={"x": von.Noul(instructions="...")})
r.answers["x"].noul

Traps

  • Von's Choice takes criteria=, not choices=. Pydantic error if you guess wrong.
  • Von returns .answers[k], not .nouls[k] / .choices[k]. The LangChain wrapper differs from the raw SDK here.
  • Von's 34 s cold start loads weights. Warm it at boot; never measure it in latency.
  • Don't threshold a noul at 0.5. See step 3.
  • Jev is early access, single vendor, no SLA. Do not put a client-facing critical path on it without a fallback to Claude.
  • Small eval sets lie. 15 records where both hosted models scored 100% proves almost nothing. Use hundreds.

jev-eval builds and runs the labelled set. jev-audit finds which existing LLM calls in a codebase are worth converting.

1---
2name: jev-integrate
3description: Wire a System One model (Jev, or an open reproduction like Von) into a product feature — routing, guardrails, scoring, classification. Use when replacing an LLM call that returns a label rather than prose, when adding a typed decision to an agent loop, or when deciding between the hosted Jev API and a local open model. Covers question design, the eval-set-first workflow, threshold calibration, confidence gates, and the traps measured on real data.
4---
5 
6# Wiring a System One model into a feature
7 
8A System One model answers **typed questions in one forward pass**. It generates no text.
9State in, typed answers with calibrated probabilities out. It is an if-statement that can read.
10 
11Use it when the decision is **narrow, pre-specified, and repeated**. Do not use it for
12anything that needs a written explanation — that is still a job for Claude.
13 
14## Before anything else: is this actually the right tool
15 
16Answer these three. If any is "no", stop and keep the LLM call.
17 
181. **Are the possible answers known up front?** Choice caps at 255 options.
192. **Does the caller need only the label**, not the reasoning? If a human reads a
20 justification downstream, you need prose and this is the wrong tool.
213. **Is it high volume, or is a person waiting?** This is a latency and cost optimisation,
22 not a capability gain. It knows nothing Claude doesn't. On a nightly cron over
23 fifty records it buys you a dependency and nothing else.
24 
25Measured on 150 hand-labelled records across three jobs (our Sep 20 2026 run):
26Jev ties GPT-5.2 at **145/150** and costs **46x less** ($0.036 vs
27$1.64 per 1k records), but end to end it is only **1.7x faster** than GPT-4.1-mini — the
28published 40x-200x is against a 3-329 s multi-step frontier workflow, not one call.
29 
30**The open reproductions are not drop-in.** Same run: Von 1.0.1 (395M) **92/150 (61%)**,
31Laya (421M) **62/150 (41%)**. They collapse onto one class rather than degrading — Von
32predicted `exfiltration` 25 times on a 50-command set containing five. A confidence gate
33does not rescue that: catching Von's errors meant escalating 92% of volume, Laya 100%,
34against Jev's 8%. Use them only where you have measured them on your own labelled set.
35 
36## The three question types
37 
38```python
39"lead_type": {"type":"choice", "instructions": "...", "criteria": {"opt_a":"desc","opt_b":"desc"}}
40"is_urgent": {"type":"noul", "instructions": "..."} # -> 0.0–1.0
41"priority": {"type":"score", "instructions": "...", "criteria":["ignore","low","high"]}
42```
43 
44Ask every question you need in **one call** — they all resolve in the same forward pass, so
45four questions cost roughly what one does.
46 
47Response shape (both Jev and Von):
48 
49```python
50r["answers"]["lead_type"]["choice"] # the label
51r["answers"]["lead_type"]["probabilities"] # full distribution
52r["answers"]["lead_type"]["confidence"] # use this for gating
53r["answers"]["is_urgent"]["noul"] # 0.0–1.0
54r["answers"]["priority"]["score"] # position on the scale, e.g. 2.41
55```
56 
57## Workflow
58 
59### 1. Build the labelled set FIRST — 50 records minimum
60 
61Non-negotiable, and the single highest-value step. Hand-label real records from the
62stream you intend to point this at, **before** writing any criteria. Without it you cannot
63tell a bad question from a bad model, and the failure is silent — see `jev-eval`.
64 
65### 2. Write the criteria as if explaining to a new hire
66 
67Worst-to-best spread across four wordings of the same questions, 50 records per task
68(our Sep 20 2026 run):
69 
70| task | Jev | Von (395M) | Laya (421M) |
71|---|---|---|---|
72| agent command risk | 44-49 (10 pts) | 9-23 (**28 pts**) | 18-28 (20 pts) |
73| lead triage | 47-49 (4 pts) | 22-34 (**24 pts**) | 15-24 (18 pts) |
74| ticket routing | 41-47 (12 pts) | 23-41 (**36 pts**) | 22-36 (28 pts) |
75 
76Same sweep on the command task with the LLMs included: Haiku 4.5 46-48 (4 pts), GPT-4.1-mini
7745-50 (10 pts), **Jev 44-49 (10 pts)**, GPT-5-mini 41-49 (16 pts).
78 
79**Jev is NOT more wording-robust than a small LLM** — it swings the same ten points, and
80Haiku was the steadiest model in the test. Read the FLOOR, not the spread: every hosted
81model bottoms out at 82-92% and stays shippable, while Von bottoms out at 18% and Laya at
8236%. Do NOT read this as "write better criteria and the open model catches up" — an earlier
8315-record test concluded exactly that and it was wrong. Richer criteria did not reliably help: on lead
84triage Von scored 34/50 on the terse wording and 28/50 on the carefully written one. What
85moves those numbers is sensitivity to surface form, not comprehension, so every future
86criteria edit is an unannounced regression risk.
87 
88Write each option with: what it is, what it is *not*, and the edge case that tempts a
89wrong answer. Name the default explicitly when one option should dominate.
90 
91### 3. Calibrate thresholds against the labelled set — never assume 0.5
92 
93A noul is a probability, not a boolean. **Jev's noul has a floor**: on records that were
94plainly clean it still returned 0.2–0.5 where Claude returned 0.0. On the measured data
95the useful cut was **~0.85**, not 0.5. Thresholds do not transfer between models — re-sweep
96when you switch.
97 
98Don't hand-write the sweep. `jev-eval` owns calibration and ships the tool:
99 
100```bash
101python ~/.claude/skills/jev-eval/scripts/sweep.py labelled.json configs.json \
102 --backend jev --question <name>
103```
104 
105### 4. Design the confidence gate
106 
107Gate low-confidence answers up to Claude. The same script reports both halves that matter —
108what fraction of **errors** the gate catches, and what fraction of **volume** it escalates —
109and labels the result. A gate catching every error while escalating 73% of traffic is scored
110`saves nothing`, because it is a slow path with extra steps. If you see that, the fix is
111better criteria or the hosted model, not a different threshold.
112 
113```python
114a = r["answers"]["lead_type"]
115if a["confidence"] < GATE:
116 return escalate_to_claude(state) # slow path
117return a["choice"] # fast path
118```
119 
120### 5. Ship behind a flag, log both paths for a week
121 
122Log the System One answer *and* what the old path would have said. Compare on real
123traffic before you cut over. Never cut over on eval-set numbers alone.
124 
125## Access paths
126 
127```bash
128# 1. TypeSafe direct — key in macOS Keychain, service `typesafe-api-key`
129export TYPESAFE_API_KEY="$(security find-generic-password -s typesafe-api-key -w)"
130curl -X POST https://api.typesafe.ai/v1/systemone \
131 -H "Authorization: Bearer $TYPESAFE_API_KEY" -H "Content-Type: application/json" \
132 -d '{"model":"jev-latest","state":"...","questions":{...}}'
133```
134 
135```javascript
136// 2. Cloudflare Workers AI — no waitlist
137await env.AI.run('typesafe/jev', { state, questions })
138```
139 
140```python
141# 3. Von — local, free, Apache-2.0, 395M ModernBERT
142# pip install von-sdk
143import von
144r = von.system_one(state="...", questions={"x": von.Noul(instructions="...")})
145r.answers["x"].noul
146```
147 
148## Traps
149 
150- **Von's `Choice` takes `criteria=`, not `choices=`.** Pydantic error if you guess wrong.
151- **Von returns `.answers[k]`**, not `.nouls[k]` / `.choices[k]`. The LangChain wrapper
152 differs from the raw SDK here.
153- **Von's 34 s cold start** loads weights. Warm it at boot; never measure it in latency.
154- **Don't threshold a noul at 0.5.** See step 3.
155- **Jev is early access, single vendor, no SLA.** Do not put a client-facing critical path
156 on it without a fallback to Claude.
157- **Small eval sets lie.** 15 records where both hosted models scored 100% proves almost
158 nothing. Use hundreds.
159 
160## Related
161 
162`jev-eval` builds and runs the labelled set. `jev-audit` finds which existing LLM calls
163in a codebase are worth converting.
164 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 306
Checked
Source
OneWave-AI/claude-skills ↗
Creator
OneWave-AI · 16 listings
View creator

Similar skills

See all →
SkillImplement the result of /to-spec and /to-tickets in codeImplement specmattpocock/skills · by mattpocockImplement the result of /to-spec and /to-tickets in code.★ 267k GitHub starsSkillStop and check this skill before finishing any replyAcademy guideanthropics/skills · by anthropicsStop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.★ 178k GitHub starsSkillAnalyze and prioritize a list of feature requests by themeAnalyze feature requestsphuryn/pm-skills · by phurynAnalyze and prioritize a list of feature requests by theme, strategic alignment, impact, effort, and risk. Use when reviewing customer feature requests, triaging a backlog, or making prioritization decisions.★ 26.6k GitHub starsSkillDesign an employee advocacy programAdvocacy program designeraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "design an employee advocacy program", "set up founder-led sharing", or "build a share kit for the team"; produces an advocacy program blueprint in two modes — participation-driven opt-in (default) or top-down assigned with its coercion and authenticity risks flagged — with a voluntary opt-in roster spec submitted as channel-registry proposal events, share kits with mandatory per-person variation, staggered human posting windows plus anti-pod guardrails (no coordinated identical reshares, no engagement rings), per-person material-connection disclosure lines per FTC and 《互联网广告管理办法》, and a Slack/Teams distribution spec. Not for paid creator campaigns — use campaign-planner. 员工倡导/创始人IP分享/内部分享计划/披露合规★ 2.9k GitHub starsSkillBuilds and edits a model-driven Power Apps appapp-builder — intent → model-driven appmicrosoft/power-platform-skills · by microsoftBuilds and edits a model-driven Power Apps app from a natural-language intent — tables, columns, relationships, adaptive forms with sub-grids, views, Choice-column charts, business rules, business process flows, generative page intents for overview/dashboard surfaces (page `.tsx` generated in generate-pages after plan approval), and an app module + sitemap — via the headless cds-maker-sdk. Runs an interactive, multi-turn authoring flow (env selection, jobs-to-be-done first, then design-only App Spec authoring across confirmed levels, guardrail lint, plan-mode approval, generate-pages, full build) and a narrated build, and can download a deployed app back into an editable spec to change it. Use when the user says "build an app for X", "create a model-driven app", "make me an app to manage Y", "add a business process flow", or "edit/add to my app". This skill stands alone and does not require /genpage — but for a standalone generative page added to an app that already exists, use /genpage instead.★ 954 GitHub starsSkillDirect, build and render premium cinematic motion designCineticLeonxlnx/cinetic · by LeonxlnxDirect, build and render premium cinematic motion design from code — launch films, product and feature videos, looping feature animations for landing pages and social, logo stings and reveals, UI walkthroughs, app demos, kinetic type, teasers, trailers, intros and promo clips. Use this whenever the user wants any video, animation, motion graphic or animated demo made with Remotion, HyperFrames, HTML/GSAP or React, or asks to storyboard, time, score, render, polish or critique one — even if they only say "make a video about X", "animate this feature" or "we need a launch clip". It supplies concept and copy discipline, type and colour taste that defers to a supplied brand, a beat-locked timeline that drives both picture and a code-made soundtrack, choreography and transition craft, real product UI in motion, film-grade finishing (true motion blur, no banding, BT.709, sync-checked mux) and a measured self-critique loop on contact sheets and renders.★ 347 GitHub stars

More from OneWave-AI

SkillFinding security vulnerabilities , correctness bugsCode review proOneWave-AI/claude-skills · by OneWave-AIPerforms a deep code review of files, modules, a diff, or a branch - finding security vulnerabilities (mapped to OWASP Top 10:2025), correctness bugs, performance problems, and maintainability issues - and returns severity-ranked findings with evidence and concrete fixes. Use when the user asks to review, audit, or sanity-check code, asks "is this safe", "what's wrong with this", "find bugs", or wants a security or performance pass before shipping. For posting line comments on a GitHub pull request, use git-pr-reviewer.★ 306 GitHub starsSkillMapping mismatched column names to one schemaCSV/Excel MergerOneWave-AI/claude-skills · by OneWave-AIMerges, appends, joins, and deduplicates multiple CSV, TSV, and Excel files (including multi-sheet workbooks) with pandas - mapping mismatched column names to one schema, normalizing keys, resolving conflicting values, tracking which file each row came from, and verifying the row math. Use when the user wants to combine spreadsheets or exports, stack monthly files, consolidate contact or lead lists, VLOOKUP-style join two sheets on an ID or email, or dedupe records across sources, even if they only say "put these together" or "clean up these lists into one".★ 306 GitHub starsSkillDesigns relational and document database schemasDatabase schema designerOneWave-AI/claude-skills · by OneWave-AIDesigns relational and document database schemas from requirements or an existing app - tables and collections, keys, relationships, constraints, indexes driven by real query patterns, ERDs, and reversible migration scripts - with PostgreSQL (including Supabase) as the default and MySQL, SQLite, and MongoDB supported. Use when the user wants to model data for a new app or feature, review or fix an existing schema, choose keys or indexes, plan multi-tenancy, normalize or denormalize, or write CREATE TABLE statements or migrations, even if they just describe their app and ask "how should I store this". For moving data between database providers, use database-migrator.★ 306 GitHub starsSkillBuild and run a labelled eval set for a System One model Evaluating a typed-decision configOneWave-AI/claude-skills · by OneWave-AIBuild and run a labelled eval set for a System One model (Jev, Von, or any typed-decision config), then sweep criteria wordings and thresholds against it. Use when a Jev/Von classification is wrong or unreliable, when choosing between the hosted API and a local open model, when tuning noul thresholds, or before shipping any typed-decision feature. Produces an accuracy-by-wording matrix and a calibrated threshold.★ 306 GitHub starsSkillExtract and analyze data from invoices, receiptsFinancial Document ParserOneWave-AI/claude-skills · by OneWave-AIExtract and analyze data from invoices, receipts, bank statements, and financial documents. Categorize expenses, track recurring charges, and generate expense reports. Use when user provides financial PDFs or images.★ 306 GitHub starsSkillWrites conversion-focused landing page copyLanding page copywriterOneWave-AI/claude-skills · by OneWave-AIWrites conversion-focused landing page copy - headlines, subheads, value propositions, feature and benefit blocks, social proof, FAQs, and CTA button text - using PAS, AIDA, or StoryBrand. Use when the user wants words for a landing page, sales page, product or pricing page, waitlist page, homepage hero, or ad-to-page flow, including rewriting weak copy, generating headline or CTA variants for A/B tests, or turning a product description into page sections. Use landing-page-optimizer instead for auditing an existing page's performance, and a frontend skill for building the page itself.★ 306 GitHub stars