verdictJsonTemplate function

String verdictJsonTemplate({
  1. required String rubric,
  2. required String nodePath,
  3. required int round,
  4. String rationaleHint = '<why>',
  5. bool owner = false,
  6. bool refinement = false,
})

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}';