Error Model
Motivation
Silent skips make risk review untrustworthy. The package surfaces invalid setup and runtime failures explicitly.
Theory
Evidence risk review treats an answer as a set of claims
The package then combines evidence gaps, profile checks, and verdict precedence into a stable ReviewResult.
Design + Diagram
Data Model / Contract
HTTP uses a stable error envelope with code, message, and details.
| Field | Meaning |
|---|---|
| artifact_id | Host-defined stable identifier. |
| claims | Discrete claims extracted by the host. |
| sources | Cited evidence with optional tier hints. |
| profile_key | Risk profile used for thresholds and checks. |
| findings | Structured review findings emitted by checks. |
ADR
Problem: adapters tend to grow business logic
Decision: keep PHP facade, Artisan, HTTP, and MCP as thin adapters over ReviewEngine.
Consequences: there is one behavior to test, but adapters must validate input carefully.
Problem: external review can become expensive
Decision: run cheap deterministic checks first and spend LLM budget only when enabled and useful.
Consequences: default installs have zero token cost, but hosts must bind an LLM contract for semantic review.
Worked Example
{ "error": { "code": "validation_error", "message": "Expected non-empty string." } }
Gotcha / Limits
The package reviews evidence strength and risk boundaries; it does not retrieve sources, extract claims automatically, or replace human review for regulated decisions.