{
  "schema": "NET001_VISIBLE_RULES_v1",
  "rules": [
    [
      "INPUT_INVALID",
      "UNKNOWN",
      "Malformed critical structures, types or unlabelled synthetic receipts cannot establish a decision."
    ],
    [
      "IDENTITY_GAP",
      "UNVERIFIED",
      "Profile/service/context/audit identity and declared synthetic-only execution scope must be explicit and consistent."
    ],
    [
      "DIGEST_MISMATCH",
      "FAILED",
      "baseline_digest and candidate_digest must equal canonical JSON hashes of the visible before/candidate objects."
    ],
    [
      "BASELINE_CONTRACT_FAILURE",
      "FAILED",
      "Before, target, source inventory and fixed candidate fields must match the selected public profile; changing expectations requires review."
    ],
    [
      "SDK_SELECTION_MISMATCH",
      "FAILED",
      "Resolve the explicitly supplied stable SDK set with disable/latestPatch. The result, recorded selection and declared candidate SDK must agree; mere installation is insufficient."
    ],
    [
      "VERSION_UNSUPPORTED",
      "UNSUPPORTED",
      "Known target families require a sufficient SDK, matching runtime major/minor and an explicit supported language not newer than the TFM default. Unknown families/selection policies cannot be guessed."
    ],
    [
      "SUPPORT_REVIEW_REQUIRED",
      "REVIEW_REQUIRED",
      "Require the dated source snapshot, exact channel/end, unexpired review and the snapshot current candidate runtime patch; the old baseline is historical only."
    ],
    [
      "PACKAGE_INCOMPATIBLE",
      "UNSUPPORTED",
      "Every exact package/version needs supplied verified target compatibility and matching evidence ref; a lower package TFM is not automatically incompatible outside this synthetic matrix."
    ],
    [
      "NULLABLE_BOUNDARY_FAILURE",
      "FAILED",
      "Keep nullable enabled and warnings-as-errors true; runtime guards remain separate."
    ],
    [
      "ASYNC_BOUNDARY_FAILURE",
      "FAILED",
      "Keep Task awaited with cancellation and scope lifetime containing await; async void is not the service contract."
    ],
    [
      "BREAKING_CHANGE_GAP",
      "REVIEW_REQUIRED",
      "Every fixed change entry, applicability, rationale and test/source reference must match the selected profile; URL presence is insufficient."
    ],
    [
      "COMPILE_FAILURE",
      "FAILED",
      "A compile receipt requires PASS, integer exit code 0, integer zero warnings and correct target/language. Its kind remains SYNTHETIC_DOTNET_RECEIPT."
    ],
    [
      "TEST_FAILURE",
      "FAILED",
      "Every named regression test must report PASS and exactly the visible expected typed value; compile success cannot hide a failure."
    ],
    [
      "TEST_EVIDENCE_GAP",
      "UNVERIFIED",
      "Every required test ID occurs exactly once, without unknown extras, and every capture reference is nonblank."
    ],
    [
      "DIAGNOSTIC_GAP",
      "UNVERIFIED",
      "A named diagnostic capture with PASS, exact resolved versions/boundaries and expected events is required."
    ],
    [
      "PRIVATE_DIAGNOSTIC_DATA",
      "FAILED",
      "No private_data_present true, secret/password/token/connection-string field or PRIVATE_CANARY marker in diagnostic payloads; inspect nested fields and values even if unrelated structure is malformed."
    ],
    [
      "CONTEXT_STALE",
      "STALE",
      "Compile/tests/diagnostics/review must each bind current service_id, context_id, baseline_digest, candidate_digest, source_digest and actual tools_sha256; missing or mismatched fields are stale."
    ],
    [
      "ROLLBACK_GAP",
      "UNVERIFIED",
      "A preserved snapshot/capture, exact original/restored baseline digest, VERIFIED_SYNTHETIC and no shared-state change are required; this covers only the disposable project fixture."
    ],
    [
      "REVIEW_GAP",
      "REVIEW_REQUIRED",
      "A synthetic reviewer, nonblank capture and REVIEWED_SYNTHETIC state are required; no real owner approval is implied."
    ]
  ],
  "contracts_sha256": "0a371c907e693d8b746f3c5af7649a07c7d6c3c494af9133754f3f368ce31a5e",
  "aggregate_rule": "VERIFIED_SYNTHETIC only if every required dimension is satisfied; otherwise HOLD. Never a real compiler/upgrade/deployment approval.",
  "date_policy": "The evaluation date is explicit; historical reproduction is labelled, not silently used for current claims."
}
