Artisan Commands
Motivation
The CLI makes review behavior scriptable for local QA, CI gates, and promotion workflows without exposing HTTP routes.
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
Commands emit deterministic exit codes: 0 clean, 2 findings, 1 failure.
| 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
php artisan evidence:review artifact.json --dry-run
php artisan evidence:profiles
php artisan evidence:taxonomy
php artisan evidence:log --limit=25
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.