{
  "proef": "lokale-inferentiestap",
  "titel": "Een lokale inferentiestap: contract, validator en statistiek",
  "datum": "2026-11-13",
  "platform": "Linux x86_64, Python 3.14.9",
  "afhankelijkheden": {
    "jsonschema": "4.26.0"
  },
  "verwachtingen": [
    "elke foutief-case wordt afgewezen (minstens één niet-PASS bevinding)",
    "elke correct-case passeert volledig (alle bevindingen PASS)",
    "de drie validatielagen vangen elk een andere foutklasse"
  ],
  "schema_sha256": "f2081adaabf6e2146b3d90dd58264299bbf2f0d9cc9e18efd85527850aa7b64b",
  "fixtures": {
    "besluit-1-ontkenning.txt": {
      "sha256": "47b6da6ee7ab18c1e9d1ec0f8611d58a194eb68fa37a801833d98c28096c059f",
      "klasse": "ontkenning"
    },
    "besluit-2-ontbrekende-info.txt": {
      "sha256": "81a22963bce8a66b3e929dc40c9a21477535304f9206c76fc6ce9d15737647f7",
      "klasse": "ontbrekende informatie"
    },
    "besluit-3-tegenstrijdigheid.txt": {
      "sha256": "84f88b0f3dd9084af4ba04dbee0163a8c32cf87931a2e3e07260458524f24c14",
      "klasse": "tegenstrijdigheid"
    },
    "besluit-4-codeswitching.txt": {
      "sha256": "0a8674c539075329b75913da17adb3cf9800ee1634e833d60a9261762a12551f",
      "klasse": "codeswitching"
    },
    "besluit-5-ingebedde-instructies.txt": {
      "sha256": "14ad100b166e745b81744e196de14550bc1b068e894dd015f115610b0ec81460",
      "klasse": "ingebedde instructies"
    }
  },
  "bronbestanden_sha256": {
    "validator.py": "e8d91b89b1f43b8960ffa505a2bfcbcc43e3ed6ddaa036c66fa7bac58e1920f8",
    "runner.py": "79797d2582f5f2d1967cc93767b8e7cd4cf36dedb8ff9bee88e97cfb9228806d",
    "model_uitvoer.py": "010429b80aa3a16963b901c7f11907f2c15575b09fa5ad998116cd051a6326e7",
    "evaluatie.py": "9c7fe70ae3c4243aecc14eaea25dcf3e36435a0c363cd64d9e9994369d0f8e4f",
    "route_keuzehulp.py": "4849558d5168cf712cb23caafebf735ea40f42d51e417832142d0d5b5c32415d",
    "context_budget.py": "facbd26e5e193e64c9fe419e23e22a1ac9c4fa93b9bd17fd6115a8b9d9370e37",
    "test_validator.py": "bcd04a347cdd5267db7a31584f7dac8bd87cbb963e74c7e5a672e60e989dbab7",
    "test_evaluatie.py": "0e1f26d712bedd54cbece9271681481c263a27f7ab248674b0b3e7ed6fbf5f91",
    "test_route_keuzehulp.py": "bcae3056890eb62020a86c5f15a29af8f2a2306bf2ecdb70fec2a961dc0722ec"
  },
  "resultaten": {
    "structuur_fout": {
      "totaal_bevindingen": 3,
      "pass": 1,
      "fail": 2,
      "menselijke_controle": 0,
      "oordeel": "AFGEWEZEN_OF_CONTROLE",
      "bevindingen": [
        {
          "laag": "structuur",
          "status": "FAIL",
          "detail": "feiten.0: 'oorzaak' is a required property"
        },
        {
          "laag": "grounding",
          "status": "FAIL",
          "detail": "feit[0]: bron_offset wijst niet naar broncitaat"
        },
        {
          "laag": "entailment",
          "status": "PASS",
          "detail": "feit[0]: geen proxy-tegenspraak"
        }
      ]
    },
    "besluit-1-ontkenning.txt": {
      "foutief": {
        "totaal_bevindingen": 4,
        "pass": 2,
        "fail": 2,
        "menselijke_controle": 0,
        "oordeel": "AFGEWEZEN_OF_CONTROLE",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "FAIL",
            "detail": "feit[0].oorzaak: status 'vastgesteld' botst met negatie in citaat"
          },
          {
            "laag": "entailment",
            "status": "FAIL",
            "detail": "feit[0].verplichting: status 'onbekend' met ingevulde tekst"
          }
        ]
      },
      "correct": {
        "totaal_bevindingen": 3,
        "pass": 3,
        "fail": 0,
        "menselijke_controle": 0,
        "oordeel": "GOEDGEKEURD",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      }
    },
    "besluit-2-ontbrekende-info.txt": {
      "foutief": {
        "totaal_bevindingen": 3,
        "pass": 2,
        "fail": 1,
        "menselijke_controle": 0,
        "oordeel": "AFGEWEZEN_OF_CONTROLE",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "FAIL",
            "detail": "feit[0]: broncitaat niet teruggevonden in bron"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      },
      "correct": {
        "totaal_bevindingen": 3,
        "pass": 3,
        "fail": 0,
        "menselijke_controle": 0,
        "oordeel": "GOEDGEKEURD",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      }
    },
    "besluit-3-tegenstrijdigheid.txt": {
      "foutief": {
        "totaal_bevindingen": 3,
        "pass": 2,
        "fail": 0,
        "menselijke_controle": 1,
        "oordeel": "AFGEWEZEN_OF_CONTROLE",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "MENSELIJKE_CONTROLE",
            "detail": "feit[0].bedrag: bedrag niet letterlijk in citaat (controleer zelf)"
          }
        ]
      },
      "correct": {
        "totaal_bevindingen": 3,
        "pass": 3,
        "fail": 0,
        "menselijke_controle": 0,
        "oordeel": "GOEDGEKEURD",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      }
    },
    "besluit-4-codeswitching.txt": {
      "correct": {
        "totaal_bevindingen": 3,
        "pass": 3,
        "fail": 0,
        "menselijke_controle": 0,
        "oordeel": "GOEDGEKEURD",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      }
    },
    "besluit-5-ingebedde-instructies.txt": {
      "foutief": {
        "totaal_bevindingen": 3,
        "pass": 2,
        "fail": 1,
        "menselijke_controle": 0,
        "oordeel": "AFGEWEZEN_OF_CONTROLE",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "FAIL",
            "detail": "feit[0]: citaat bevat instructie-achtige taal (mogelijke injectie)"
          }
        ]
      },
      "correct": {
        "totaal_bevindingen": 3,
        "pass": 3,
        "fail": 0,
        "menselijke_controle": 0,
        "oordeel": "GOEDGEKEURD",
        "bevindingen": [
          {
            "laag": "structuur",
            "status": "PASS",
            "detail": "schema geldig"
          },
          {
            "laag": "grounding",
            "status": "PASS",
            "detail": "feit[0]: citaat+offset kloppen"
          },
          {
            "laag": "entailment",
            "status": "PASS",
            "detail": "feit[0]: geen proxy-tegenspraak"
          }
        ]
      }
    }
  },
  "tests": {
    "totaal": 25,
    "geslaagd": 25
  },
  "modelprovider_aanroepen": 0,
  "providerkosten_eur": 0,
  "beperkingen": [
    "Geen taalmodel in de loop; de model-uitvoer is gesimuleerd om de validator te toetsen.",
    "De entailment-laag is een regel-gebaseerde proxy, geen algemene semantische entailment.",
    "Geen snelheid, geheugendruk of productiecapaciteit gemeten.",
    "Synthetische fixtures, geen klantdata of echte besluiten."
  ]
}