Jev Review
Sends the original development request and the relevant git diff to TypeSafe's
Jev model, gets back four probability judgments (aligned / unrelated changes /
missing requirements / security concern), and uses those as a signal for the
assistant to investigate and fix, not as a verdict to just report.
REQUIRED: TYPESAFE_API_KEY must be set in the environment. If it's not,
tell the user and stop — don't fabricate a result.
Steps
- Collect the original request. Pull it from the conversation — the
feature/fix/change the user actually asked for, in their words. Write it to
a temp file (e.g.
/tmp/jev-request.txt).
- Collect the relevant diff. Use whichever
git diff represents the
change under review (uncommitted work, a staged diff, or a branch vs.
main — pick based on what's actually being evaluated). Write it to a temp
file (e.g. /tmp/jev-diff.txt). If the diff is huge (>1000 lines), review
the most relevant hunks rather than sending the entire thing.
- Run the script:
python3 ~/.claude/skills/jev-review/jev_review.py \
--request-file /tmp/jev-request.txt \
--diff-file /tmp/jev-diff.txt
This makes one API call and prints JSON like:{
"answers": {
"is_aligned": {"type": "noul", "noul": 0.92},
"has_unrelated_changes": {"type": "noul", "noul": 0.10},
"has_missing_requirements": {"type": "noul", "noul": 0.05},
"has_security_concern": {"type": "noul", "noul": 0.02}
}
}
- Threshold and report. Flag a dimension when its probability crosses
0.6 (
has_unrelated_changes, has_missing_requirements,
has_security_concern) or when is_aligned is below 0.6. Present a
short structured summary to the user: aligned or not, and which concerns
were flagged, each with its probability.
- Investigate flagged items yourself. Jev returns a probability, not a
reason — it has no explanation to relay. For each flag, read the diff and
the request again to find the specific hunk or omission that justifies it.
Don't just repeat the probability back to the user.
- Offer to fix. Once you've identified the concrete issue, propose a
fix and, if the user agrees, implement it with your normal editing tools.
Notes
- The script is stateless and has no retry/backoff logic — on
429/529 it
just reports the error; rerun manually if needed.
- To extend with another dimension (e.g. "breaks existing tests"), add another
noul entry to the QUESTIONS dict in jev_review.py — no other changes
needed.
1---2name: jev-review3description: Use when a code change is ready for review and you want an automated check that the diff actually matches the original request — surfaces unrelated changes, missing requirements, or security concerns before the assistant hands the work back, using TypeSafe's Jev judgment model.4---56# Jev Review78Sends the original development request and the relevant git diff to TypeSafe's9Jev model, gets back four probability judgments (aligned / unrelated changes /10missing requirements / security concern), and uses those as a signal for the11assistant to investigate and fix, not as a verdict to just report.1213**REQUIRED:** `TYPESAFE_API_KEY` must be set in the environment. If it's not,14tell the user and stop — don't fabricate a result.1516## Steps17181. **Collect the original request.** Pull it from the conversation — the19 feature/fix/change the user actually asked for, in their words. Write it to20 a temp file (e.g. `/tmp/jev-request.txt`).212. **Collect the relevant diff.** Use whichever `git diff` represents the22 change under review (uncommitted work, a staged diff, or a branch vs.23 `main` — pick based on what's actually being evaluated). Write it to a temp24 file (e.g. `/tmp/jev-diff.txt`). If the diff is huge (>1000 lines), review25 the most relevant hunks rather than sending the entire thing.263. **Run the script:**27 ```bash28 python3 ~/.claude/skills/jev-review/jev_review.py \29 --request-file /tmp/jev-request.txt \30 --diff-file /tmp/jev-diff.txt31 ```32 This makes one API call and prints JSON like:33 ```json34 {35 "answers": {36 "is_aligned": {"type": "noul", "noul": 0.92},37 "has_unrelated_changes": {"type": "noul", "noul": 0.10},38 "has_missing_requirements": {"type": "noul", "noul": 0.05},39 "has_security_concern": {"type": "noul", "noul": 0.02}40 }41 }42 ```434. **Threshold and report.** Flag a dimension when its probability crosses44 0.6 (`has_unrelated_changes`, `has_missing_requirements`,45 `has_security_concern`) or when `is_aligned` is *below* 0.6. Present a46 short structured summary to the user: aligned or not, and which concerns47 were flagged, each with its probability.485. **Investigate flagged items yourself.** Jev returns a probability, not a49 reason — it has no explanation to relay. For each flag, read the diff and50 the request again to find the specific hunk or omission that justifies it.51 Don't just repeat the probability back to the user.526. **Offer to fix.** Once you've identified the concrete issue, propose a53 fix and, if the user agrees, implement it with your normal editing tools.5455## Notes5657- The script is stateless and has no retry/backoff logic — on `429`/`529` it58 just reports the error; rerun manually if needed.59- To extend with another dimension (e.g. "breaks existing tests"), add another60 `noul` entry to the `QUESTIONS` dict in `jev_review.py` — no other changes61 needed.