verdictJsonTemplate function
The verdict JSON SHAPE every critic prompt hands its critic — the TWO
freshness stamps side by side: nodePath (A4's FOREIGN-NODE fence — WHOSE
verdict is this?) and round (A15(5) alt-A's ROUND fence — WHICH round's?).
rationaleHint lets a lane phrase its own rationale ask (the readiness lens
wants the fix, not just the why) without forking the shape.
ONE writer-side definition, shared by all three critic families (code, spec,
readiness), because they share ONE reader (_verdictFromFile; ADR-0000
A13(3)): a lane that omitted the round stamp would fail-close every verdict
it wrote.
Implementation
String verdictJsonTemplate({
required String rubric,
required String nodePath,
required int round,
String rationaleHint = '<why>',
bool owner = false,
bool refinement = false,
}) =>
'{"rubric":"$rubric","version":1,"grade":"<A-F>",'
'"rationale":"$rationaleHint",'
'${owner ? '"$kVerdictOwnerKey":"<$kOwnerArchitect|$kOwnerAuthor>",' : ''}'
'${refinement ? '"$kVerdictRefinementKey":"<bead-graph findings; omit when none>",' : ''}'
'"nodePath":"$nodePath",'
'"$kVerdictRoundKey":$round}';