jev
Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting.
Skill by Busy-Office
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.
About
Use cases: research, productivity, agent-building
Reviews
Write a reviewNo 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 loopFrom Busy-Office/ai-skills, MIT.
More from Busy-Office/ai-skills
- 0.566score
loop-doctor
Busy-Office
Reviews — and, when asked, sets up — a project's autonomous, scheduled loop — the routine that wakes on a cadence (cron, launchd, a /loop interval, a cloud…
SkillAFreshness: AClaude Code +9 - 0.566score
graph-engineer
Busy-Office
Turns a linear agent, prompt chain, or orchestration script into an engineered graph — nodes with contracts, edges that carry data, fan-out/fan-in only where…
SkillAFreshness: AClaude Code +9 - 0.529score
app-icon-generator
Busy-Office
Generate a complete app icon set — iOS AppIcon.appiconset, Android launcher + adaptive icons, and web favicons/PWA manifest icons — from a single square…
SkillBFreshness: BClaude Code +9 - 0.529score
progress-dashboard
Busy-Office
Publishes a one-page stakeholder progress dashboard for any git project — where it stands, what's waiting on people, whether it's stalled — from whatever…
SkillBFreshness: BClaude Code +9 - 0.529score
requeue
Busy-Office
Reviews and reorders the queue an engineering loop or team works from — backlog, roadmap, todo, milestones — so the next work picked up is the right work.
SkillBFreshness: BClaude Code +9 - 0.525score
loop-economist
Busy-Office
Reviews what an engineering loop's actual runs cost and produced — reading Claude Code session transcripts and git history rather than the loop's documents.
SkillBFreshness: BClaude Code +9 - 0.525score
solo-flow
Busy-Office
Prescribes and audits a trunk-based git workflow for a repository with exactly one writer — a single autonomous agent or loop, with no other humans committing.
SkillBFreshness: BClaude Code +9 - 0.283score
sharpen-intent
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9 - 0.283score
loop-atlas
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9 - 0.283score
wake-weight
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9
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
- Repository
- github.com/Busy-Office/ai-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Busy-Office
- 0.566score
loop-doctor
Busy-Office
Reviews — and, when asked, sets up — a project's autonomous, scheduled loop — the routine that wakes on a cadence (cron, launchd, a /loop interval, a cloud…
SkillAFreshness: AClaude Code +9 - 0.566score
graph-engineer
Busy-Office
Turns a linear agent, prompt chain, or orchestration script into an engineered graph — nodes with contracts, edges that carry data, fan-out/fan-in only where…
SkillAFreshness: AClaude Code +9 - 0.529score
requeue
Busy-Office
Reviews and reorders the queue an engineering loop or team works from — backlog, roadmap, todo, milestones — so the next work picked up is the right work.
SkillBFreshness: BClaude Code +9 - 0.529score
app-icon-generator
Busy-Office
Generate a complete app icon set — iOS AppIcon.appiconset, Android launcher + adaptive icons, and web favicons/PWA manifest icons — from a single square…
SkillBFreshness: BClaude Code +9 - 0.529score
progress-dashboard
Busy-Office
Publishes a one-page stakeholder progress dashboard for any git project — where it stands, what's waiting on people, whether it's stalled — from whatever…
SkillBFreshness: BClaude Code +9 - 0.525score
loop-economist
Busy-Office
Reviews what an engineering loop's actual runs cost and produced — reading Claude Code session transcripts and git history rather than the loop's documents.
SkillBFreshness: BClaude Code +9
Cite this page
jev skill. Agent Mart. https://agentmart.dev/skills/busy-office-jev (last updated 2026-10-24)