{
  "tool_id": "art-680-control-attestation-campaign-roll-up",
  "note": "Golden vectors authored by ATTEST-CAMPAIGN-BUILD-1 per ATTEST-CAMPAIGN-BUILD-SPEC.md. Vector 1 is the spec canonical preimage; its execution_hash pins 2666af8fc181875af309fe051bc100370879985c5bb8ed700a9706099c65d138 (byte-exact parity target). Vector 2 is the opposite-verdict vector (NO_ESCALATION, above threshold, zero exceptions). Vector 3 is the fail-closed vector. All counts are declared inputs; no runtime clock anywhere. human_sign_off: PENDING.",
  "vectors": [
    {
      "name": "spec-canonical-preimage (parity pin 2666af8f)",
      "policy_parameters": {
        "controls_total": 20,
        "attested": 17,
        "exceptions": 2,
        "unresponded": 1,
        "escalation_threshold_pct": 90
      },
      "output_payload": {
        "completion_pct": 85,
        "exception_rate_pct": 10,
        "below_threshold": true,
        "trace": "17/20=85% < declared 90% threshold; exceptions 2/20=10%",
        "overall": "ESCALATION_FLAGGED"
      },
      "golden_hash": "2666af8fc181875af309fe051bc100370879985c5bb8ed700a9706099c65d138"
    },
    {
      "name": "opposite-verdict no escalation",
      "policy_parameters": {
        "controls_total": 20,
        "attested": 20,
        "exceptions": 0,
        "unresponded": 0,
        "escalation_threshold_pct": 90
      },
      "output_payload": {
        "completion_pct": 100,
        "exception_rate_pct": 0,
        "below_threshold": false,
        "trace": "20/20=100% >= declared 90% threshold; exceptions 0/20=0%",
        "overall": "NO_ESCALATION"
      },
      "golden_hash": "6c8b0e828bfeb0e5d6e21bd5d7f076b8f576785a479e37cb2d1290cd1b8eba2b"
    },
    {
      "name": "fail-closed empty input",
      "policy_parameters": {},
      "output_payload": {
        "completion_pct": null,
        "exception_rate_pct": null,
        "below_threshold": null,
        "trace": "fail-closed: controls_total must be an integer in [1, 100000]; attested must be an integer in [0, controls_total]; exceptions must be an integer in [0, controls_total]; unresponded must be an integer in [0, controls_total]; escalation_threshold_pct must be a number in [0, 100]; no campaign roll-up computed -- correct the named inputs and resubmit. Arithmetic of caller-declared campaign declarations only: no register, GRC system, or control repository is read, and attested/exception/unresponded counts are your declarations, never observations this kernel makes.",
        "overall": null,
        "domain_errors": [
          "INVALID_TOTAL",
          "INVALID_ATTESTED",
          "INVALID_EXCEPTIONS",
          "INVALID_UNRESPONDED",
          "INVALID_THRESHOLD"
        ]
      },
      "golden_hash": "2b88a46cf5602986cac1f505510d78d5e00cbb678e2b43e50c8eea48d25b9e57"
    }
  ]
}
