Excessibility.Review.Judge.LLM (Excessibility v0.16.0)

Copy Markdown View Source

A judge that asks a model to reason about a change's blast radius.

excessibility owns the prompt, the response schema, and the parsing; the host application supplies the model call as a completion function so the library adds no HTTP dependency:

completion = fn prompt ->
  # call Claude (or any model) with `prompt`, return its text
  {:ok, response_text}
end

Excessibility.Review.Judge.LLM.judge(change, completion: completion)

The function is resolved from opts[:completion] or config :excessibility, :review_judge_completion. If none is configured, or the call errors, or the output can't be parsed, this falls back to Excessibility.Review.Judge.Heuristic — a missing/flaky model never crashes a review.

The model is asked to reply with JSON:

{"tier":"auto|review|block","blast_radius":"...",
 "risks":[{"severity":"...","area":"...","detail":"..."}],
 "confidence":0.0}