Repository navigation
v0.9.0
Proof outcomes are states, not flags
A proof outcome now has one of three statuses. completed means the Check returned and the proof was judged. aborted means infrastructure failed before the Check returned, so there is no result. unrestored means the Check returned but the workspace did not return to its baseline, so there is a result and only a restoration error code.
The ok field is gone. proofEstablished(outcome) replaces it and is exported. A completed outcome is a union keyed by expected, and each proof kind has its own evaluation type. A proved RED always names its target. A GREEN proof cannot carry a RED-only reason. A verdict mismatch cannot report the verdict it expected.
Terminal and JSON prove output is unchanged.
Report Rules keep their breaches inside the breached state
RuleReportState puts the breaches inside the breached case as a NonEmptyList<Breach>. A held, unknown, or undecided Rule carries no list. The stored counts are gone; countBreachedRules(model) and countBreaches(model) replace them. RunSummary.breaches is a BreachTotal: exact with a count, or not-countable.
The JSON check report is unchanged.
Breaking API changes
InfrastructureProofOutcomeis nowAbortedProofOutcome | UnrestoredProofOutcome.status: 'error'is'aborted'or'unrestored'.okis removed from every outcome. UseproofEstablished(outcome).ProofEvaluationis the union ofRedProofEvaluation,GreenProofEvaluation, andRefuseProofEvaluation.proved.targetis required on a RED.RuleReport.breachesis removed. Readstate.breacheswhenstate.kind === 'breached'.GateReportModel.breachedRulesandbreachCountare removed. UsecountBreachedRulesandcountBreaches.RunSummary.exactBreachCountis removed. Readbreaches.kind.baselineBlocksProofandbaselineOutcometake aRedProof.
Skill
The redproof skill links the README and the docs by GitHub URL, so the links work after the skill is installed elsewhere.