wuyoscar/jev-skill

★ 98⑂ 2

An awesome collection of Jev use cases, workflows, and agent skills.

About wuyoscar/jev-skill

wuyoscar/jev-skill is an open-source project on GitHub, mainly written in Python. An awesome collection of Jev use cases, workflows, and agent skills. It currently holds 98 stars and 2 forks with 0 open issues, and was last pushed on 2026-09-20 (repository created 2026-09-20).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #99 with 0 new stars today.

GitHub Repository Details

Repository wuyoscar/jev-skill · default branch main · size 1011 KB · watchers 0 · source: GitHub REST API and repository README

README

⚡ Awesome Jev Skills

Things to try. Skills to install. Ideas to make your own.

Skills Scenarios Tests MIT

English · 简体中文

🎬 Demos · 📦 Install · 🚀 How to use · 🗂 All 90 scenarios · 🧪 Input → output · 🆕 Updates

Jev chooses, classifies and scores. Your agent supplies the context and does the work. Use it in an agent loop, or on your own inbox, documents and creative projects.

🎬 See what people are building

Community demos, linked to their authors. These are not our test runs.

https://github.com/wuyoscar/jev-skill/blob/HEAD/A browser that picks its next move
🌐 A browser that picks its next move
Jev selects; browser tools click and type.
Original / demo ↗
https://github.com/wuyoscar/jev-skill/blob/HEAD/Tetris you can read as probabilities
🧱 Tetris you can read as probabilities
Code enumerates placements; Jev ranks them.
Original / demo ↗
https://github.com/wuyoscar/jev-skill/blob/HEAD/A city on a whale, driven by decisions
🐋 A city on a whale, driven by decisions
Astra builds the world; Jev acts; H3 renders.
Original / demo ↗
https://github.com/wuyoscar/jev-skill/blob/HEAD/Music assembled from musical choices
🎹 Music assembled from musical choices
Jev picks parts; code renders editable MIDI.
Original / demo ↗

Media credits · Also explore code-review dashboards, semantic ⌘F and story sensors.

September 20: added semantic find, sponsor segments, story sensors, MIDI composition and local-model comparisons. Research notes →

📦 Install: give this to your agent

Paste this into Codex, Claude Code or OpenCode:

Install Jev Skills for my current agent, including the general skill and all scenario skills. Read and follow this installation guide, then verify the installation:
https://raw.githubusercontent.com/wuyoscar/jev-skill/main/docs/install.md

Your agent checks the environment, installs into the current project by default, and verifies the installation offline. You do not need to run commands yourself; handle any required approvals. No key? Your agent first asks you to get one or use agent simulation; it never switches silently. No Vercel account is needed; Node/npm is not required by the default install route. Agent installation guide · Manual installation and troubleshooting

🚀 Installed it? Here is how to use it

Send one of these prompts to your agent. Name the skill and the decision you need; you do not have to write JSON. Use real Jev, or let your current agent simulate the judgments after you approve that mode.

🔑 No key? Choose A or B first

When OPENROUTER_API_KEY is missing, the agent must warn you, ask, and wait for your choice:

No OpenRouter key was found, so I cannot call Jev. Which option do you prefer?
> A: Get a key. Create one, configure it locally, and use real Jev.
> B: Use your current agent. Simulate classification with the same input, candidates and criteria, without calling Jev.

Mode B labels results mode: agent_simulation and jev_called: false. These are not Jev responses or calibrated Jev probabilities. Your current agent's normal usage costs and privacy terms still apply. For A, configure the key locally, never in chat; real calls incur API usage. --dry-run is separate: it only validates input, with no network or classification.

Try one example

Use the jev-triage skill and read assets/example.json from its installed folder.
Show its context, questions and candidates. If OPENROUTER_API_KEY is missing, ask:
A: get a key and configure it locally for Jev; B: let the current agent simulate.
Wait for my choice. In API mode, validate with --dry-run, then make one Jev call.
In B mode, judge directly and label the result "Agent simulation; Jev not called".
Do not invent probabilities. Show the complete input, output and mode,
and explain the category and urgency. Do not access my mailbox or execute actions.

For an offline format check only, say “only dry-run; no API call or simulated classification”. If the agent cannot find the skill, have it check the installation location and reload the session as required by your client.

Add checkpoints to an agent task

Replace [TASK] with your goal, such as “fix CSV parsing and pass the original tests”:

Use the jev skill to support decisions while working on [TASK].
If the key is missing, ask me to choose A (get a key) or B (current-agent simulation).
Use my chosen mode when failures repeat, a route needs choosing, or you are about to claim completion.
Supply the goal, acceptance checks, relevant history, fresh tool results,
existing permissions and the meaning of each candidate action.
Ask for the next step or whether completion is supported; gather missing evidence or ask me.
Act only within my existing authorization and verify the result afterward.
Do not add a Jev call to every trivial step.

Sort your own records in parallel

Replace [FILE PATH] with a prepared, redacted file. Agree on the categories with a small sample first:

Use jev-triage to classify feedback in [FILE PATH] as billing, bug, how-to or other.
Keep each record's ID, original text and relevant context. First take 3 records
and let me approve the questions and the data to be sent outside my machine.
If the key is missing, ask me to choose A (get a key) or B (current-agent simulation) and wait.
In API mode, after approval, put each record's classification and urgency in one request;
schedule at most 4 requests in flight. In B mode, judge with the same criteria,
label the results simulated, and do not invent API responses or probabilities.
Process only these 3 records first; do not automatically expand to the whole file.
Return record ID, category, urgency and review status; save inputs, outputs and the mode.
Keep uncertain cases separate. Do not reply to, delete or move any messages.

The agent schedules concurrency; the CLI does not start parallel jobs itself. Check the sample judgments before choosing a larger batch and budget.

Pick the skill for your task

| I want to… | Ask the agent to use | |---|---| | Define a custom decision or agent checkpoint | jev | | Classify and prioritize messages or feedback | jev-triage | | Select source spans and check evidence | jev-documents | | Choose among observed browser or desktop actions | jev-ui | | Recommend a tool, model or specialist | jev-route | | Assess context relevance and compaction timing | jev-context | | Prioritize code changes for review | jev-code-review | | Choose the next location in an observed file inventory | jev-find-code | | Choose legal actions in a simulated world | jev-simulation |

To customize a use case, tell the agent what to judge, the criteria, the options and how you will use the result. Use choice for one option, noul for an independent yes/no question and score for graded levels. Update state, questions and criteria together, not just the example text. Browser actions, message sending, music and video rendering still need separate host tools.

Prefer the command line? (Optional)

These commands are for real Jev calls or input validation. Mode B uses the agent directly, not the CLI.

With jev-decide installed, save any complete Input JSON below as request.json. Edit the context, questions and candidates for your task, then run in that file's directory:

jev-decide decide request.json --dry-run

After validation and approval to send that data to OpenRouter, make the live call and save its result:

jev-decide decide request.json > result.json

Read result.json, not just the process exit code. Exit 0 means selected/scored, 2 means review, and 1 means error; selecting an action does not execute it. If you installed only the general jev skill without the CLI, replace jev-decide with python3 /scripts/jev.py. More commands and troubleshooting · See input/output pairs

🧪 What goes in, what comes out

These are saved results from real Jev calls on synthetic examples. Here is the short version; each link opens the full input and output below.

| Try it on… | 📥 Input excerpt | 📤 Observed output | |---|---|---| | A stuck agent | “Same UnicodeDecodeError, twice. No source change between runs.” Choose: inspect the input, retry unchanged, report done or ask the user. | next_step = inspect_input
stuck = true, yes-probability 0.88 | | A support ticket | “The export button returns an error for all team members. We need the monthly report tomorrow.” Choose a queue and rate urgency. | queue = bug
urgency = 1.29 / 2 | | A document | s1: General questions: hello@example.invalid
s2: Send invoices to accounts@example.invalid
Which span is for invoice delivery? Does the claim naming s1 hold? | source = s2, probability 0.97
claim_support = contradicted |

All 14 I/O pairs: recovery · completion · code review · model routing · file search · context · browser choices ×2 · support triage ×2 · document evidence · simulation · idea rubric · voice direction.

Each Input block reproduces the saved request: model, context (state), questions and candidate definitions. Each Output block shows the CLI-normalized decisions; the linked receipt also contains the raw API response and distributions. The requests remain in their original English. These calls did not execute the chosen actions. For Noul, probability means P(true) even when value is false; a rubric score such as 1.29/2 is not a probability.

⚡ Two habits that make Jev useful

history and candidate meanings. Jev does not inherit your agent's conversation. Keep the question narrow, not the evidence artificially tiny. state in one request; run independent requests with bounded host concurrency. This is especially useful for replacing serial LLM classification, scoring and routing in large jobs. Dependent steps still need fresh state; Jev does not replace open-ended planning or text generation.

All nine skills teach these rules. Context and throughput guide · Two-record, six-question template (synthetic, not a measured result).

🗂 Pick a job

90 scenarios · 9 installable skills · 14 recorded API examples. Every scenario stays on this page: copy a task, open its template, change the criteria.

| | | | |---|---|---| | 🧭 Long-running agents
5 recipes | 🔎 Review & evaluation
9 recipes | 🔀 Routing & context
12 recipes | | 🌐 Browsers & interaction
13 recipes | 📬 Inbox & everyday work
11 recipes | 📚 Documents & evidence
12 recipes | | 🛠️ Data & developer tools
12 recipes | 🎨 Games & creative tools
12 recipes | 🧩 Build your own
4 recipes |

Reading the examples: 🧪 recorded outputs come from saved API receipts; 🛠 templates are editable inputs, not complete apps; 🎬 community demos belong to their authors. Each scenario states its evidence.

The first complete I/O pair: stuck-loop recovery ↓. How probabilities differ from scores.

🧭 Keep a long task on track

Goal-drift checkpoint · Stuck-loop recovery · Completion evidence check · Detect unsupported success language · Postmortem failure attribution

1. Goal-drift checkpoint

Use Jev: Noul: “Does this action directly advance acceptance check C3?” Criteria: concrete link to the check, not merely useful adjacent cleanup.

2. Stuck-loop recovery

Use Jev: Choice: inspect_error (unread evidence), change_hypothesis (same approach failed), verify_fix (new success evidence), escalate_unknown.
🧪 Recorded I/O — CSV parser: the same UnicodeDecodeError twice, no source change between runs.

📥 Input · full request

{
  "model": "typesafe/jev-1.13",
  "state": {
    "goal": "Fix the CSV parser without changing the public API; verify tests before declaring done.",
    "permissions": "Read and edit this local project, run tests; no publishing.",
    "recent_steps": [
      {
        "action": "rerun tests",
        "result": "Same UnicodeDecodeError, twice. No source change between runs."
      }
    ],
    "observations": "Failure is on a UTF-8 input fixture. The parser opens files without an explicit encoding.",
    "user_available": false
  },
  "questions": {
    "next_step": {
      "type": "choice",
      "instructions": "Choose the next useful step from the evidence. Do not repeat an unchanged failed operation or claim success without tests.",
      "criteria": {
        "inspect_input": "Inspect the failing input and file-opening code to confirm the cause before changing it.",
        "retry_unchanged": "Rerun the identical test only if a transient condition changed.",
        "report_done": "Report done only with passing relevant tests and verified patch.",
        "ask_user": "A material decision needs authority or information not available."
      }
    },
    "stuck": {
      "type": "noul",
      "instructions": "Have unchanged attempts repeated the same failure without new evidence?"
    }
  }
}

📤 Output · observed CLI decisions

{
  "next_step": {
    "status": "selected",
    "value": "inspect_input",
    "probability": 1,
    "margin": 1
  },
  "stuck": {
    "status": "selected",
    "value": true,
    "probability": 0.88
  }
}

Original request and full response

3. Completion evidence check

Use Jev: Noul per criterion: “Does the supplied evidence support criterion C2?” Require evidence for that criterion, not a generic success log.
🧪 Recorded I/O — The job was queued but not executed, the metrics file did not exist, yet the agent claimed completion.

📥 Input · full request

{
  "model": "typesafe/jev-1.13",
  "state": {
    "goal": "Run the evaluation and produce a metrics file.",
    "agent_claim": "The evaluation is complete.",
    "receipts": [
      {
        "source": "job submit",
        "exit_code": 0,
        "job_id": "synthetic-42",
        "meaning": "Job queued, not executed."
      },
      {
        "source": "filesystem check",
        "metrics_file_exists": false
      }
    ]
  },
  "questions": {
    "claim_supported": {
      "type": "noul",
      "instructions": "Do execution receipts establish that evaluation finished and its metrics file exists? A successful submission is not successful execution."
    },
    "next_step": {
      "type": "choice",
      "instructions": "What should happen next?",
      "criteria": {
        "check_job": "Query actual job state and retrieve logs/results.",
        "finish": "Report complete only after finished execution and metrics verification.",
        "ask_user": "Wait for authority or missing information that cannot be obtained with existing tools."
      }
    }
  }
}

📤 Output · observed CLI decisions

{
  "claim_supported": {
    "status": "selected",
    "value": false,
    "probability": 0.02
  },
  "next_step": {
    "status": "selected",
    "value": "check_job",
    "probability": 1,
    "margin": 1
  }
}

Original request and full response

4. Detect unsupported success language

Use Jev: Noul: “Does this message claim a successful outcome not established by the ledger?” Distinguish planned, attempted and observed.

5. Postmortem failure attribution

Use Jev: Separate Choice questions: responsible agent ID; decisive step ID; error class (missing_evidence, wrong_tool, stale_state, execution_error, unknown).

🔎 Supervision, review and evaluation

Plan versus action · Test weakening / reward gaming · Project-rule compliance · Action-risk triage · Suspicious tool-output instructions · Prioritize code review · Empty or unhelpful tool response · Independent answer comparison · Use Jev as a repeatable evaluation judge

6. Plan versus action

Use Jev: Noul: “Is this call consistent with the stated plan?” Compare target, scope and intended effect.

7. Test weakening / reward gaming

Use Jev: Noul: “Does this edit weaken a required check without implementing the requirement?” Show before/after assertion behavior.
🧪 Recorded I/O — The assertion was replaced with assert True; only the weakened test was run.

📥 Input · full request

```json { "m

GitHub Stars & Activity

98Stars
2Forks
0Open issues
PythonLanguage

GitHub Popularity

GitHub stars98
Forks2
Open issues0
Primary languagePython
LicenseMIT
Stars gained today0
Created2026-09-20
Last pushed2026-09-20

Trending History

Daily boardrank #99 · ▲ 0 stars

Related AI Projects

1

NousResearch / hermes-agent

Python★ 247,389⑂ 52,019
2

Significant-Gravitas / AutoGPT

Python★ 187,458⑂ 46,008▲ 30 stars
3

docling-project / docling

Python★ 67,388⑂ 4,855▲ 629 stars
4

openai / openai-python

Python★ 31,657⑂ 5,834▲ 13 stars
5

harvard-edge / cs249r_book

Python★ 28,378⑂ 3,589▲ 31 stars
6

browser-use / browser-harness

Python★ 17,835⑂ 1,747▲ 86 stars
7

FareedKhan-dev / train-llm-from-scratch

Python★ 10,129⑂ 1,408▲ 196 stars
8

zhouxiaoka / autoclip

Python★ 7,814⑂ 1,524▲ 325 stars

More AI Rankings