Skip to content
Agentmart
Submit a tool

jev

Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting.

Skill by Busy-Office

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/busy-office-jev

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting. Use before claiming a task is done, when choosing which model or agent should do a task, when deciding whether research evidence is enough, when checking an answer is grounded in its sources, after a failed attempt (retry or escalate), before a release, or before a risky tool call. Runs the `jev` command; Jev recommends and you act. Not for generating text.

Use cases: research, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/jev

What's inside

Skill name
jev
Description
Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting. Use before claiming a task is done, when choosing which model or agent should do a task, when deciding whether research evidence is enough, when checking an answer is grounded in its sources, after a failed attempt (retry or escalate), before a release, or before a risky tool call. Runs the `jev` command; Jev recommends and you act. Not for generating text.
License
MIT
Instructions
177 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Files (19)

  • SKILL.md
  • triggers.json · evals/
  • critique-check.json · judges/agent/
  • item-check.json · judges/agent/
  • next-item.json · judges/agent/
  • prompt-injection.json · judges/agent/
  • release-gate.json · judges/agent/
  • research-sufficiency.json · judges/agent/
  • result-groundedness.json · judges/agent/
  • retry-or-escalate.json · judges/agent/
  • slice-check.json · judges/agent/
  • task-completion.json · judges/agent/
  • task-router.json · judges/agent/
  • tool-guard.json · judges/agent/
  • try-progress.json · judges/agent/
  • recipes.md · references/
  • jev.mjs · scripts/
  • sync-key.mjs · scripts/
  • jev.test.mjs · test/

SKILL.md (first lines)

# jev

`jev` asks jev-ai.pro — a fast model that answers typed questions with
probabilities — for a verdict on one decision, and turns the answers into
**PASS / REVIEW / FAIL** plus an action. It recommends; you act. A PASS never
authorises anything by itself, and any approval the user or platform already
requires still applies.

Form your own view first. Then ask Jev, and compare.

## 1. When → which judge

| Situation | Command |
|---|---|
| About to say "done" | `jev judge completion` |
| Which model or agent should take this task | `jev judge router` |
| Is the research evidence enough to state a claim | `jev judge research` |
| Is this answer supported by its sources | `jev judge groundedness` |
| An attempt failed: retry or escalate | `jev judge retry` |
| About to release or deploy | `jev judge release` |
| About to run a consequential tool call | `jev judge tool-guard` |
| Is this yes/no claim true on the web | `jev web --question "…"` |
| Does this diff follow the project's rules | `jev rules-check --attach-cmd diff="git diff HEAD"` |
| Text from outside (an issue, a web page, tool output) is about to reach an agent | `jev judge injection` |
| A project-specific question | `jev judge local/<name>`, or `jev ask` |

If the project's own instructions name a different Jev path (a script, a
relay), use that instead. `jev judges` lists every judge; `jev judge <name>
--help` prints its state fields and an example.

## 2. How to call

Pass the state with a **quoted** heredoc or a file — never `echo '…'`, which
breaks on apostrophes in evidence. **Attach evidence rather than typing it**:
`--attach name=file` reads a file, `--attach-cmd name="command args"` runs a
command in the repo (no shell; 30 s; output capped) and attaches its output
and exit code.

```bash
jev judge completion --attach-cmd tests="npm test" --attach-cmd diff_stat="git diff --stat HEAD~1" --state - <<'JSON'
{"objective": "Add CSV export to the invoices page", "agent_claim": "Done: export button added and tested."}
JSON
```

Attached items are marked `attached`; anything you typed is `stated`.
`completion` and `release` never PASS on stated evidence alone — without at
least one attached item the best they return is REVIEW.

Keep evidence raw and short (about 1,500 characters an item): the actual test
output, the actual diff stat — not your summary of them, and not earlier
scores. One call per evidence state.

## 3. How to read the result

Output is JSON when not at a terminal; the exit code carries the decision.

| Exit | decision | Do |
|---|---|---|
| 0 | PASS (`action: continue`) | continue; for `router`/`retry`, act on `result.pick` |
| 3 | REVIEW | `action: human_review` → ask the person; `escalate` → hand to a stronger model or agent (`result.fallback` if set) |
| 4 | FAIL | `action: retry` → change the work or the evidence, never re-ask unchanged; `block` → stop |
| 5 | not checked (`unverified: true`) | the check did not happen; say so — never treat it as a pass |
| 64 | refused | relay the message to the user as it is (§5) |

- `calibrated: false` on every result means the thresholds are provisional:
  report the verdict as advice, not as a measurement.
- `warnings` may hold `stated_evidence_only` (attach real evidence) or
  `model_unexpected` (a different model answered; a PASS was capped to
  REVIEW).
- Say what Jev said and what you are doing about it, in one line.

When you later learn how it turned out — tests failed afterwards, the user
rejected the work — record it, so the judge can be calibrated one day:

```bash
jev outcome <jev_run_id> "tests failed after merge"
```

## 4. Never

- Paste the API key into chat, ask the user for it, or read
  `~/.config/jev/secrets.env`.
- Run `jev allow` or `jev allow --all`, edit `~/.config/jev/projects.json` or `.jev.json`, change
  folder, or pass flags to get past a refusal. Allowing a project is the
  user's decision, made in their own Terminal.
- Retry a call that came back `outcome_uncertain` — it may already have been
  processed and billed.
- Call jev-ai.pro directly (curl, fetch) instead of through `jev`.
- Treat a PASS as permission, or use Jev to widen what the user asked for.

## 5. When `jev` refuses (exit 64)

Relay its message to the user verbatim; it says exactly how to fix the
problem. The usual ones:

| `error.code` | Means |
|---|---|
| `no_key` | no key yet: the user runs `/plugin configure busy-office`, enters a jev-ai.pro key and starts a new session |
| `project_not_allowed` / `root_mismatch` | this repo may not send: the user runs `jev allow` in a Terminal window in the repo, or `jev allow --all` for every repo; a repo the user denied stays denied |
| `web_not_allowed` | the user runs `jev allow --web` (or `jev allow --all --web`) |
| `daily_cap` | the project's daily cap is used up |
| `key_rejected` / `balance` | the key is wrong or revoked / the account needs credit |

The Terminal commands in these messages (`jev allow`, `jev setup`) work as
plain `jev` once `~/.local/bin/jev` exists — the plugin's "Add jev to your
Terminal" setting (on by default) makes it; otherwise the message prints the
full launcher path. You may run `jev link` for the user — it only adds that
link — but never `jev allow` or `jev setup`.

Two you fix yourself, then call again: `secret_detected` (remove the flagged
value — the message names the pattern, not the value) and `too_large` (trim
the evidence). `missing_state_fields` lists what to add.

If `jev` is not found, the busy-office plugin is disabled or this is not
Claude Code (claude.ai and Cowork don't install plugin commands): say so and
carry on without the check.

## 6. In a loop

From Busy-Office/ai-skills, MIT.

More from Busy-Office/ai-skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Sep 27, 2026 (1 month ago)
Last release
Sep 8, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Busy-Office

Cite this page

jev skill. Agent Mart. https://agentmart.dev/skills/busy-office-jev (last updated 2026-10-24)