Repository navigation
v0.8.0
Prove reports say why
redproof prove now adds one indented line under each proof. A proved RED names the Rule that breached and what the Check said. A proved REFUSE names the refusal. A proof that did not prove says why: the wrong Rule breached, the Check passed, the verdict did not match, or the target was already breached before the mutation.
✓ no-todo / detects a TODO comment expected=red actual=fail
breached source/no-todo: src/checkout.ts:12: TODO left in source
✗ lint / a var is flagged expected=red actual=fail
target lint/no-var not breached; breached lint/no-let
The first line of each proof is unchanged. The JSON prove report adds reason and, under check, the breaches or the refusal in the shape the check report already uses. The report stays version 1, and the schema declares the new field.
API
CompletedProofOutcomegains a requiredreason: ProofEvaluationfield. Code that builds outcomes by hand must set it.okis unchanged.ProofEvaluationis exported. A proved RED carries itstarget. A new kind,target-already-breached, marks a RED blocked by its baseline.
Self-hosting
The composition dependency Rule is now an allowlist: composition may import only composition, domain, and inspect.