Skip to content

v0.8.0

Choose a tag to compare

@schalermthai schalermthai released this 07 Sep 16:59
· 76 commits to main since this release

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

  • CompletedProofOutcome gains a required reason: ProofEvaluation field. Code that builds outcomes by hand must set it. ok is unchanged.
  • ProofEvaluation is exported. A proved RED carries its target. 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.