Evidence-first pull request review with independent critique, selective challenger review, and human handoff.
89
92%
Does it follow best practices?
Impact
89%
1.36xAverage score across 43 eval scenarios
Risky
Do not use without reviewing
All configuration files live in .pr-review/ at the repository root. All are optional — the tile has sensible defaults without any of them.
verifiers.jsonDefine custom verification commands beyond what the tile auto-discovers.
[
{
"name": "contract-tests",
"command": "npm run test:contracts",
"timeout_ms": 90000
},
{
"name": "openapi-validate",
"command": "npx @stoplight/spectral-cli lint openapi.yaml",
"timeout_ms": 30000
},
{
"name": "db-schema-check",
"command": "python scripts/validate_schema.py --check-pending",
"timeout_ms": 60000
}
]Each entry:
name (required): human-readable verifier name, appears in the evidence pack and reviewer packetcommand (required): shell command to run from repo roottimeout_ms (optional): per-verifier timeout in milliseconds, defaults to 60000The command should exit 0 on success, non-zero on failure. Output to stdout/stderr is captured and parsed for findings.
risk-overrides.jsonForce specific path patterns to a minimum risk lane. Overrides can only escalate, never downgrade.
[
{
"pattern": "billing/",
"lane": "red"
},
{
"pattern": "internal-tools/",
"lane": "yellow"
},
{
"pattern": "\\.env\\.",
"lane": "red"
},
{
"pattern": "api/v[0-9]+/",
"lane": "red"
}
]Each entry:
pattern (required): regex pattern matched against touched file paths (case-insensitive)lane (required): "yellow" or "red" — the minimum lane for files matching this patternIf a file matches a red override but the classifier says green, the file is escalated to red. If the classifier already says red, the override has no effect.
subsystems.jsonExplicit subsystem map for repos where directory structure and CODEOWNERS are insufficient.
{
"api": ["src/api/**", "src/routes/**"],
"worker": ["src/worker/**", "src/jobs/**"],
"auth": ["src/auth/**", "src/middleware/auth*"],
"billing": ["src/billing/**", "src/stripe/**"],
"frontend": ["web/**", "src/components/**"]
}Keys are subsystem names. Values are glob patterns matched against touched file paths. A file matching multiple subsystems is assigned to the first match.
This map feeds directly into risk classification — if a PR touches files in 3+ subsystems, the "multi-subsystem" red factor triggers.
required-artifacts.jsonOverride default artifact requirements per risk lane.
{
"green": [
{
"artifact": "PR description or linked issue",
"check": "has_intent",
"required": false,
"why_required": "Recommended: helps reviewers understand why"
}
],
"yellow": [
{
"artifact": "PR description or linked issue",
"check": "has_intent",
"required": true,
"why_required": "Required: reviewers need motivation context"
},
{
"artifact": "Tests covering changed behavior",
"check": "has_tests",
"required": true,
"why_required": "Required: changed behavior must be verified"
}
],
"red": [
{
"artifact": "PR description or linked issue",
"check": "has_intent",
"required": true,
"why_required": "Required: high-risk changes need clear documentation"
},
{
"artifact": "Tests covering changed behavior",
"check": "has_tests",
"required": true,
"why_required": "Required: high-risk changes need test coverage"
},
{
"artifact": "Migration/rollback guidance",
"check": "has_migration_guidance",
"required": true,
"why_required": "Required for migrations: rollback plan must exist"
},
{
"artifact": "Security review note",
"check": "has_security_note",
"required": true,
"why_required": "Required for auth changes: security review documented"
}
]
}Available check types: has_intent, has_tests, has_changelog, has_migration_guidance, has_rollout_note, has_security_note.
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
rules
skills
challenger-review
finding-synthesizer
fresh-eyes-review
human-review-handoff
pr-evidence-builder
review-retrospective