# `Excessibility.Review.Judge.LLM`
[🔗](https://github.com/lessthanseventy/excessibility/blob/v0.18.1/lib/excessibility/review/judge/llm.ex#L1)

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}

---

*Consult [api-reference.md](api-reference.md) for complete listing*
