---
name: review-free
description: >
Use when the user asks to check code that is not a GitHub PR — named files
or modules, uncommitted working-tree changes, or a diff against a branch.
---
# Review anything
The `review_diff` tool of the `jev-flash-review` MCP server accepts any unified
diff.
**Core principle: you curate, the engine judges.** Read what the user asked
about, build the diff yourself, send only what is needed — the engine reads
nothing on its own.
## If the engine is missing
If the `review_diff` MCP tool is not in your available tools: STOP. Tell the user
the review engine MCP is not registered in this session and give them the
registration line for their harness. Do NOT substitute a manual diff analysis,
and never present one as the engine's result.
## Building the diff
Pick the first case that matches:
- **Uncommitted work**: `git diff HEAD`, plus each untracked file
(`git ls-files --others --exclude-standard`) rendered as an all-additions
diff.
- **Changes on a branch**: `git diff ...HEAD -- `.
- **Files the user named, no git change to show**: render their full content as
all-additions diffs:
```
--- a/
+++ b/
@@ -0,0 +1,N @@
+
```
## Steps
1. Build the diff per above; set `title` to a one-line summary of what is being
reviewed and `description` to the user's request. Put the business context
in `taskContext`: purpose of the change, its boundaries (what is in and out
of scope), invariants it must respect. This is what lets the engine judge
business-logic fit, not just diff-level hygiene.
2. Call `review_diff`.
3. Report: verdict first, then blockers with evidence locations and impact,
then other violations by severity, then summary counts. `N/A` rules in one
line. Read findings from the `violations` array — it holds only confirmed
findings; `results` is the full matrix including dropped ones.
## Common mistakes
- Sending secrets, `.env` files, vendored code, or lockfiles — never.
- Sending whole-file dumps when the user asked about a module — diff the
module's files, not the world.
- Splitting a huge target by character count — split by coherent slices (per
module) and merge results.
- Treating a `NO` as a verdict — it is a finding with a probability.