---
name: jev-decisions
description: >-
  Get fast, typed, calibrated judgments from the Jev System One model via
  jevmodel.org — choice labels, rubric scores, and yes/no probabilities your
  code can branch on. Use for routing, triage, moderation, guardrails,
  deduplication, evals and any small fuzzy decision that would otherwise need
  an expensive LLM call or brittle rules.
metadata:
  endpoint: https://jevmodel.org/v1/systemone
  mcp: https://jevmodel.org/mcp
  docs: https://jevmodel.org/docs/
---

# Jev decisions via jevmodel.org

Jev returns **typed decisions, not text**: a choice label, a fractional score, or
a yes/no probability (`noul`), each with calibrated probabilities. It never
writes prose — read the value and branch.

## When to use this skill

- Route or classify: tickets, emails, records → one typed `choice`
- Score or prioritise: severity, quality, lead fit → `score` on your rubric
- Gate or filter: escalate?, safe to merge?, injection? → `noul` probability
- Batch judgments: up to **8 questions per call**, all sharing one state

Do NOT use Jev to generate text, code or explanations — it cannot.

## Two ways to call

### 1. Remote MCP server (agents)

```
claude mcp add --transport http jev https://jevmodel.org/mcp \
  --header "Authorization: Bearer $JEVMODEL_API_KEY"
```

Tools exposed: `jev_decide` (full question map), `jev_noul`, `jev_choice`,
`jev_score`. Same balance as the API below.

### 2. Direct HTTP

```bash
export JEVMODEL_API_KEY=sk-...   # create at https://jevmodel.org/dashboard/

curl https://jevmodel.org/v1/systemone \
  -H "Authorization: Bearer $JEVMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Customer: I was charged twice. Fix this ASAP.",
    "questions": {
      "team": {
        "type": "choice",
        "instructions": "Which team should own this?",
        "criteria": {
          "billing": "Payments, invoices, refunds",
          "technical": "Bugs, outages, integrations",
          "sales": "Upgrades, new accounts"
        }
      },
      "escalate": {
        "type": "noul",
        "instructions": "Should a human review this now?"
      },
      "urgency": {
        "type": "score",
        "instructions": "How urgent is this ticket?",
        "criteria": ["Can wait for next release", "Fix this week", "Blocking revenue now"]
      }
    }
  }'
```

## Question types

| type | criteria | returns |
|------|----------|---------|
| `choice` | map of option → description (2–255 upstream; jevmodel.org caps at 20) | winning key + per-option probabilities + confidence |
| `score` | ordered list of 2–10 level descriptions | fractional score (probability-weighted mean) + distribution + confidence |
| `noul` | optional `{true, false}` descriptions | probability the answer is yes, 0–1 |

`instructions` may be a string or a `{task, context}` object.

## Response shape

```json
{
  "model": "jev-1.13.0",
  "answers": {
    "team": {"choice": "billing", "probabilities": {"billing": 0.91, "technical": 0.07, "sales": 0.02}, "confidence": 0.91},
    "escalate": {"noul": 0.87},
    "urgency": {"score": 2.6, "probabilities": [0.05, 0.35, 0.6], "confidence": 0.6}
  },
  "usage": {"input_tokens": 142}
}
```

Every 200 response carries `X-Tokens-Remaining` — your balance after settlement.

## Playbook

- **Ask everything in one call.** Questions share the state and run in parallel —
  3 questions in one call cost far less than 3 calls.
- **Threshold, don't trust.** A `noul` of 0.87 is a probability: pick your cutoff
  (e.g. ≥0.9 auto-approve, 0.6–0.9 review, <0.6 reject) and log decisions.
- **Choice beats free text.** Convert "summarize the ticket" into a small set of
  labelled options — calibrated, parseable, cheap.
- **Put policy in instructions.** "Shared tax ID is decisive; city spelling is
  weak evidence" works better than hoping the model guesses your rules.
- **Keep state under ~8,000 characters.** Serialize only what the decision needs.
- **Pin `jev-1.13.0` in production** so thresholds don't drift under you;
  `jev-latest` moves.
- **Retry with `Idempotency-Key`.** Failed upstream calls refund automatically;
  the header keeps retries from double-charging.

## Limits & billing

- Input tokens only — **output is free** ($0.042/1M upstream; packs from $9.90
  on jevmodel.org, never expire)
- 1–8 questions per request · 120 requests/minute per key
- `402` = balance empty → https://jevmodel.org/pricing/
- Guests: 10k free tokens · sign-in: 100k free tokens

Reference: https://jevmodel.org/docs/ · Playground: https://jevmodel.org/playground/
