The checking program judges a check from its facts (milestone 47/B0, ADR 0644, ADR 0656): the rules package holds Facts v1, the level rule, the failure words and the verdict's outcome, and the running checker records each level answer as a fact and calls the rules. A row of the every-failure tests judges the gathered facts and finds the running checker's verdict. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
30 lines
978 B
Go
30 lines
978 B
Go
package check
|
|
|
|
import (
|
|
"mesh-delivery-checker/rules"
|
|
"strings"
|
|
|
|
"git.novox.be/novox/mesh-sdk/go/delivery"
|
|
)
|
|
|
|
// withComposition is v with the check's composition taken in: a failed one fails the check, naming its machine.
|
|
func withComposition(v *delivery.Verdict, comp delivery.CompositionVerdict) {
|
|
v.Composition = comp.Composition()
|
|
v.Took.Composition = comp.Took
|
|
if comp.State == delivery.CompositionPass && len(comp.Warnings) > 0 && v.Composition != nil {
|
|
v.Composition.Words = strings.Join(comp.Warnings, "; ") // passed with a warning (ADR 0593 §9)
|
|
}
|
|
if comp.State == delivery.CompositionFail {
|
|
machine := comp.Machine
|
|
if machine == "" {
|
|
machine = "the composition"
|
|
}
|
|
f := delivery.FailedFirst{Machine: machine, Words: comp.Words}
|
|
if v.State == delivery.VerdictFail {
|
|
rules.AddFailure(v, f) // the tests failed too: the composition is named after them (the operator, 2026-11-02)
|
|
return
|
|
}
|
|
v.State, v.Failed = delivery.VerdictFail, f
|
|
}
|
|
}
|