Skip to main content
Glama

Jev check diff

jev_check_diff
Read-only

Review a stable diff for semantic risks, stale documentation, or specification drift when findings can inform an open decision.

Instructions

jev_check_diff: Review a stable diff for semantic risks, stale documentation or specification drift when that review can inform an open decision. Read the diff natively when you need its contents. Choose risk, docs or spec for the question at hand; neither risk followed by docs nor a Jev review before done is required. Findings are leads within the inspected scope, not proof of global safety or completeness. Use for: a semantic review of a stable diff when risks, existing documentation or specification obligations remain an open decision. Not for: reading the diff -> bash git diff. Choosing tests to run -> jev_select_tests. Work in progress: verdicts on a half-written diff are noise.

How Jev sees it: the diff cut into changed units (a function, a slice of a big one, a declaration, a config file), each shown before and after, with tests kept aside as evidence, never as units. The questions are fixed and reviewed; you write none, and Jev runs nothing. For replaced member accesses, risk also checks the statically resolved local callers (found by literal name, aliases included) in separate calls. This is source text, not an execution: coordinated edits count, unknown providers, cut pieces, and metaprogramming stay unchecked, and a clean shown caller does not clear the unseen ones. Dynamic access that names no literal is not covered.

check: risk names units with correctness, security, compatibility or reliability risk and grades severity. docs checks up to 40 tracked Markdown sections mentioning changed code or source importing it, naming an existing sentence that may no longer match the change. It is not an exhaustive detector of missing documentation (independent measurement: 2/45 docs obligations found on 180 partial got/zod commits). spec checks each ### REQ-… requirement and names changed behavior absent from the specification. base: a git ref to compare against (as for a pull request); default is HEAD plus untracked files. spec_path: required for spec; a repository Markdown specification with ### REQ-… headings. Specification text is passed as evidence; Jev has no instruction/data separation, so text inside the specification can sway an answer. Markdown tables are reported as a limit. dimensions: project rules as {"name":"a positive statement that is true of a risky change"}; asked alongside the built-ins, marked uncalibrated, without severity. only: restrict risk to these dimension names. witnesses: off | auto (default) | on. Leave it on auto. max_calls: cap on all Jev calls, including caller checks and severity; beyond it, units, callers, sections, requirements, and severity are listed unchecked. Caller checks run once per changed unit, not per caller, and count toward the cap.

Result: typed review items retain positive and negative results, unjudged work, context, provenance and scoped diagnostics. Findings name a unit, doc sentence or requirement and probability. A finding requires probability >= 0.7. docs probability of now_false between 0.2 and 0.7 is unsure (needs checking), without another call. Local caller probability between 0.2 and 0.7 is unsure; cannot_tell >= 0.3 is abstain and names the missing provider/binding. Every finding of a failed witness batch is unsure, with raw values and the reason. Local limits do not lower the separate matrix. No findings is not proof of safety on unseen callers or completeness of docs. Diagnostics name limits and useful next actions; the reading guide defines marks.

After an unavailable, refused or out-of-scope result, continue natively within the existing permissions; do not widen sharing or confinement to obtain a judgment. For uncertainty or missing evidence, inspect or obtain the decisive piece, or leave the conclusion open. Revisit Jev only when new evidence, a material context change or a new useful question makes the judgment useful; rewording unchanged evidence is not a reason to retry. There is no retry quota for genuinely changed evidence, and no certification is needed once decisive evidence settles the question. A reached cap or an unjudged result is not evidence of safety or zero affected tests.

Input Schema

NameRequiredDescriptionDefault
baseNo
onlyNo
rootNo
checkYes
max_callsNo
spec_pathNo
witnessesNo
dimensionsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotation, the description discloses important behavioral traits: probabilistic findings with a 0.7 threshold, unsure/abstain bands, caller-check limits, docs coverage limitations, instruction/data separation risks in specs, cap behavior, and retry conditions. It also correctly frames findings as scoped leads rather than proof of global safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well structured, beginning with purpose and routing rules before moving into parameter and result semantics. Most sentences add useful nuance for a complex review tool, though the volume and some repeated caveats keep it from being maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complex behavior, eight parameters, and output schema, the description is complete enough for an agent to invoke it correctly and interpret results. It explains result semantics, uncertainty handling, caps, limitations, and when to continue natively even though the output schema already defines the return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden and explains most parameters in detail: base default, spec_path requirement for spec, dimensions shape, only, witnesses default, max_calls, and the risk/docs/spec choices. The only notable omission is the root parameter, which is not discussed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: reviewing a stable diff for semantic risks, stale documentation, or specification drift. It scopes the purpose to when the review can inform an open decision and explicitly distinguishes the tool from reading the diff natively or selecting tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It contains explicit 'Use for' and 'Not for' sections, names alternatives such as bash git diff and jev_select_tests, and excludes work-in-progress diffs because verdicts on half-written diffs are noise. The routing guidance is unusually complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.