{
  "schemaVersion": 1,
  "auditVersion": "1.5.0",
  "siteVersion": "0.1.31",
  "tool": "Pabo Rekenklaar",
  "toolVersion": "1.11.0",
  "generatedAt": "2026-10-21T08:02:44.719Z",
  "status": "passed",
  "configuration": {
    "generatorSeed": 12062026,
    "samplesPerCombination": 100,
    "diagnosticSamplesPerPattern": 20,
    "flirtSeed": 6092026
  },
  "counts": {
    "generatedQuestions": 61300,
    "generatorCombinations": 613,
    "rubricSelections": 3500,
    "fallbackQuestions": 0,
    "diagnosticPatterns": 30,
    "diagnosticProbes": 1200,
    "naturalDiagnosticCoverage": 30,
    "naturalClassificationChecks": 8842,
    "unambiguousDiagnosticMatches": 8839,
    "ambiguousDiagnosticsSuppressed": 3,
    "chartInstances": 1300,
    "exactReadableChartInstances": 1200,
    "sprintQuestionChecks": 2250,
    "sprintFallbackQuestions": 0,
    "flirtChains": 30,
    "flirtAnswerChecks": 120,
    "flirtNegativeChecks": 90,
    "flirtModeExclusions": 60,
    "variationFullExams": 98,
    "variationQuestionChecks": 5880,
    "variationDuplicates": 0
  },
  "gates": [
    {
      "id": "source-integrity",
      "label": "Bron en declaraties",
      "passed": true,
      "evidence": "0 bronproblemen; 0 dubbele functies; 2250 veilige sprintvragen; Moshpit-ingang veilig begrensd"
    },
    {
      "id": "generated-variants",
      "label": "Gegenereerde vraagvarianten",
      "passed": true,
      "evidence": "61.300 vragen in 613 combinaties"
    },
    {
      "id": "reproducible-answers",
      "label": "Herberekenbare antwoorden",
      "passed": true,
      "evidence": "Vaste seed tweemaal gelijk; canonieke antwoorden en rekenregels herberekend"
    },
    {
      "id": "no-fallbacks",
      "label": "Geen terugvalvragen",
      "passed": true,
      "evidence": "0 terugvalvragen aangetroffen"
    },
    {
      "id": "readable-graphs",
      "label": "Afleesbare grafieken",
      "passed": true,
      "evidence": "1.300 grafiekinstanties; rasterwaarden, asschaal, mobiele pixelafstand en toegankelijke SVG-markering gecontroleerd"
    },
    {
      "id": "diagnostic-patterns",
      "label": "Diagnostische patronen",
      "passed": true,
      "evidence": "30 patronen; 30/30 natuurlijke dekking; 1200 controlevragen; 8842 natuurlijke classificatiechecks; 3 dubbelzinnige gevallen veilig zonder diagnose"
    },
    {
      "id": "flirt-trigger-chain",
      "label": "Van antwoordpatroon naar juiste flirt",
      "passed": true,
      "evidence": "30 ketens; 120 vaste antwoordchecks; 90 andere fouten; 60 toets-/sprintuitsluitingen; dubbelzinnige denkroute onderdrukt; vaste seed tweemaal gelijk"
    },
    {
      "id": "flirt-content-lock",
      "label": "Beoordeelde flirtinhoud bewaakt",
      "passed": true,
      "evidence": "30 beoordelingen gekoppeld aan de exacte tekst, media en misconceptie. 0 open inhoudelijke herstelpunten; dit vinkje bevestigt de ongewijzigde review, geen inhoudelijke goedkeuring."
    },
    {
      "id": "session-variation",
      "label": "Spreiding en variatie van volledige sessies",
      "passed": true,
      "evidence": "98 volledige toetsroutes, 8 korte toetsen en 59 oefenreeksen; geen dubbele opgaven binnen de geteste sessies; alle 18 deelonderwerpen in iedere volledige toets; maximaal drie opgaven per familie."
    },
    {
      "id": "reasoning-diversity",
      "label": "Denkvariatie over meerdere oefensessies",
      "passed": true,
      "evidence": "295 geregistreerde ontwerpen (inclusief contextvarianten, geen claim van 295 onafhankelijke families); 49920 gecontroleerde varianten; 99840 foutmutaties; 72 meer-sessie-routes met 3600 vragen. Niveau en leerdoel begrenzen de variatie; 44 selecties hadden onvoldoende aanbod voor de volledige acht-vragen-afstand."
    }
  ],
  "variation": {
    "passed": true,
    "configuration": {
      "seed": 16092026,
      "seedsPerProfile": 8,
      "progress": false
    },
    "counts": {
      "adaptiveFullExams": 56,
      "fixedLevelFullExams": 40,
      "sequentialFullExams": 2,
      "miniExams": 8,
      "practiceSessions": 59,
      "questions": 5880,
      "duplicates": 0,
      "coverageFailures": 0,
      "familyLimitFailures": 0,
      "generatorFallbacks": 0,
      "selectionFailures": 0,
      "negativeChecks": 90,
      "migrationChecks": 5
    },
    "summaries": [
      {
        "name": "all-correct-16092026",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16092123",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16092220",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16092317",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16092414",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16092511",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16092608",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16092705",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102033",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102130",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102227",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102324",
        "questions": 55,
        "unique": 55,
        "families": 50,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102421",
        "questions": 55,
        "unique": 55,
        "families": 50,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102518",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102615",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-wrong-16102712",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "alternating-16112040",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112137",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112234",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112331",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112428",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112525",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112622",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "alternating-16112719",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122047",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122144",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122241",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122338",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122435",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122532",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "first-weak-16122629",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "first-weak-16122726",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132054",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132151",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132248",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132345",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132442",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132539",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132636",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "last-weak-16132733",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142061",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142158",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142255",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142352",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142449",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142546",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "domain-uneven-16142643",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "domain-uneven-16142740",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "seventy-percent-16152068",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "seventy-percent-16152165",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "seventy-percent-16152262",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "seventy-percent-16152359",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "seventy-percent-16152456",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "seventy-percent-16152553",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "seventy-percent-16152650",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "seventy-percent-16152747",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-0",
        "questions": 55,
        "unique": 55,
        "families": 51,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-1",
        "questions": 55,
        "unique": 55,
        "families": 50,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-2",
        "questions": 55,
        "unique": 55,
        "families": 50,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-3",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-4",
        "questions": 55,
        "unique": 55,
        "families": 50,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-5",
        "questions": 55,
        "unique": 55,
        "families": 48,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-6",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-1-7",
        "questions": 55,
        "unique": 55,
        "families": 47,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-0",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-1",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-2-2",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-3",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-4",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-5",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-6",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-2-7",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-3-0",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-1",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-2",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-3",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-4",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-5",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-6",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-3-7",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-4-0",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-4-1",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-4-2",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-4-3",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-4-4",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-4-5",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-4-6",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      },
      {
        "name": "fixed-4-7",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-0",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-1",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-2",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-3",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-4",
        "questions": 55,
        "unique": 55,
        "families": 51,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-5",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-6",
        "questions": 55,
        "unique": 55,
        "families": 52,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "fixed-5-7",
        "questions": 55,
        "unique": 55,
        "families": 54,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16172027",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172028",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172029",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172030",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172031",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172032",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172033",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16172034",
        "questions": 15,
        "unique": 15,
        "families": 15,
        "scoredTopics": 14,
        "maxFamily": 1
      },
      {
        "name": "all-correct-16183027",
        "questions": 55,
        "unique": 55,
        "families": 53,
        "scoredTopics": 18,
        "maxFamily": 2
      },
      {
        "name": "all-correct-16183028",
        "questions": 55,
        "unique": 55,
        "families": 55,
        "scoredTopics": 18,
        "maxFamily": 1
      }
    ],
    "failures": [],
    "traceFingerprint": "396c4d70f70692006c878242402ac7a331c2f0c35e0dede64e2dd848ed442a5b"
  },
  "reasoning": {
    "version": "1.11.0",
    "passed": true,
    "counts": {
      "designs": 295,
      "generated": 49920,
      "mutations": 99840,
      "journeys": 72,
      "questions": 3600,
      "semanticRepeats": 0,
      "relaxed": 44,
      "persistenceChecks": 363
    },
    "journeys": [
      {
        "domain": "A",
        "topic": "place-value",
        "requested": 2,
        "distinctDesigns": 21,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "place-value",
        "requested": 3,
        "distinctDesigns": 26,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "place-value",
        "requested": 4,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "place-value",
        "requested": 5,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "operations",
        "requested": 2,
        "distinctDesigns": 22,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "operations",
        "requested": 3,
        "distinctDesigns": 24,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "operations",
        "requested": 4,
        "distinctDesigns": 21,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "operations",
        "requested": 5,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "negative-divisibility",
        "requested": 2,
        "distinctDesigns": 22,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "negative-divisibility",
        "requested": 3,
        "distinctDesigns": 26,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "negative-divisibility",
        "requested": 4,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "negative-divisibility",
        "requested": 5,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "powers-order",
        "requested": 2,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "powers-order",
        "requested": 3,
        "distinctDesigns": 20,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "powers-order",
        "requested": 4,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "A",
        "topic": "powers-order",
        "requested": 5,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-concept",
        "requested": 2,
        "distinctDesigns": 19,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-concept",
        "requested": 3,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-concept",
        "requested": 4,
        "distinctDesigns": 18,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-concept",
        "requested": 5,
        "distinctDesigns": 11,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-operations",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-operations",
        "requested": 3,
        "distinctDesigns": 19,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-operations",
        "requested": 4,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "fraction-operations",
        "requested": 5,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "conversions",
        "requested": 2,
        "distinctDesigns": 16,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "conversions",
        "requested": 3,
        "distinctDesigns": 16,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "conversions",
        "requested": 4,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "conversions",
        "requested": 5,
        "distinctDesigns": 9,
        "adjacentRepeats": 0,
        "relaxed": 32
      },
      {
        "domain": "B",
        "topic": "percent",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "percent",
        "requested": 3,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "percent",
        "requested": 4,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "percent",
        "requested": 5,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "ratio-scale-probability",
        "requested": 2,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "ratio-scale-probability",
        "requested": 3,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "ratio-scale-probability",
        "requested": 4,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "B",
        "topic": "ratio-scale-probability",
        "requested": 5,
        "distinctDesigns": 11,
        "adjacentRepeats": 0,
        "relaxed": 1
      },
      {
        "domain": "C",
        "topic": "units",
        "requested": 2,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "units",
        "requested": 3,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "units",
        "requested": 4,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "units",
        "requested": 5,
        "distinctDesigns": 9,
        "adjacentRepeats": 0,
        "relaxed": 8
      },
      {
        "domain": "C",
        "topic": "area-perimeter",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "area-perimeter",
        "requested": 3,
        "distinctDesigns": 19,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "area-perimeter",
        "requested": 4,
        "distinctDesigns": 19,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "area-perimeter",
        "requested": 5,
        "distinctDesigns": 10,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "volume-surface",
        "requested": 2,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "volume-surface",
        "requested": 3,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "volume-surface",
        "requested": 4,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "volume-surface",
        "requested": 5,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "speed-time",
        "requested": 2,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "speed-time",
        "requested": 3,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "speed-time",
        "requested": 4,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "speed-time",
        "requested": 5,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "geometry-scale",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "geometry-scale",
        "requested": 3,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "geometry-scale",
        "requested": 4,
        "distinctDesigns": 10,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "C",
        "topic": "geometry-scale",
        "requested": 5,
        "distinctDesigns": 10,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "charts",
        "requested": 2,
        "distinctDesigns": 20,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "charts",
        "requested": 3,
        "distinctDesigns": 21,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "charts",
        "requested": 4,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "charts",
        "requested": 5,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "statistics",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "statistics",
        "requested": 3,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "statistics",
        "requested": 4,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "statistics",
        "requested": 5,
        "distinctDesigns": 13,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "formulas",
        "requested": 2,
        "distinctDesigns": 14,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "formulas",
        "requested": 3,
        "distinctDesigns": 17,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "formulas",
        "requested": 4,
        "distinctDesigns": 16,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "formulas",
        "requested": 5,
        "distinctDesigns": 15,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "patterns",
        "requested": 2,
        "distinctDesigns": 11,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "patterns",
        "requested": 3,
        "distinctDesigns": 12,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "patterns",
        "requested": 4,
        "distinctDesigns": 11,
        "adjacentRepeats": 0,
        "relaxed": 0
      },
      {
        "domain": "D",
        "topic": "patterns",
        "requested": 5,
        "distinctDesigns": 9,
        "adjacentRepeats": 0,
        "relaxed": 3
      }
    ],
    "failures": []
  },
  "flirtContent": {
    "status": "reviewed-with-notes",
    "counts": {
      "reviewed": 30,
      "aligned": 18,
      "withNotes": 12,
      "needsRevision": 0
    },
    "reviewedAt": "2026-09-29",
    "reviewer": "Codex — AI-ondersteunde inhoudelijke review; geen onafhankelijke docentbeoordeling",
    "scope": {
      "text": "Volledige titels, catalogusbeschrijvingen, Nederlandse ondertiteling en transcripten vergeleken met het canonieke foutpatroon.",
      "visuals": "Zes tijdstippen per MP4 bekeken, met extra detailframes waar tekst en beeld botsten. Tijdstippen en waarnemingen staan per film. C01 en C04 zijn na beeldherstel opnieuw bekeken op de vastgelegde beeldmomenten en alle scène-/opbouwovergangen; de uitgevoerde correcties en technische mediacontrole staan bij die beoordelingen. D01 eigenstem: titel, hoofdbeeld en eindkaart opnieuw bekeken; tien seconden overtollige stilte verwijderd, zonder gesproken materiaal te verwijderen. Op 9 september 2026 zijn bij alle 30 flirts uitsluitend de statische oude herstelset-slotbeelden vervangen door een neutrale Wisik-achtergrond. De volledige videoduur bleef per flirt gelijk; de inhoudelijke scènes vóór het slotbeeld zijn niet gewijzigd. A02 is op 29 september 2026 vervangen door de gecontroleerde Roadie-montage met drie festivalborden; zie het afzonderlijke reviewmoment bij A02. B03 is op 29 september 2026 vervangen door de nieuwe Roadie-film met zes halve-literglazen en de fysieke breukkaart; zie de afzonderlijke B03-review.",
      "audio": "De nieuwe eigenstemopnamen A–D zijn op 9 september opnieuw technisch en tekstueel gecontroleerd. Voor D01 is de volledige slotconclusie teruggezet en opnieuw vergeleken met het canonieke foutpatroon. De masteraudio en alle 30 segmenttijden worden apart bewaakt in tests/pabo-eigenstem-review-2026-09-09.json. De audiotrack is niet onafhankelijk beluisterd door een tweede persoon. De losse eigenstem-audio is niet gewijzigd door deze slotbeeldcorrectie; de vastgestelde spraakoverlap van circa 4–6 seconden in het oude slotdeel blijft volledig behouden.",
      "limitations": "Een steekproef van beelden is geen frame-voor-framebeoordeling. Dit oordeel bewijst geen leerwinst en meet niet hoe vaak het diagnostische systeem bij echte studenten een fout-positief geeft.",
      "publication": "Bestaande festivalpublicatie blijft beschikbaar conform de eerder gekozen experimenteerruimte. Een mismatch is een open herstelpunt, geen inhoudelijke goedkeuring. De automatische controle bewaakt wijzigingen aan de beoordeelde versie."
    },
    "entries": [
      {
        "code": "A01",
        "verdict": "aligned",
        "expectedMisconception": "De waarde van een cijfer wordt los gezien van zijn positie in het getal.",
        "intendedInsight": "Dezelfde 7 kan 7, 70 of 700 voorstellen; in 4.072 vertegenwoordigt hij zeven tientallen, dus 70.",
        "observedContent": "Titel en poster: Plaatswaarde. Script breekt de gedachte dat het cijfer op zichzelf zijn waarde bepaalt. De kernillustratie toont 4-0-7-2 in een plaatswaardetabel en markeert de 7 onder tiental.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 48,744 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Plaatswaardetabel duizendtal/honderdtal/tiental/eenheid, geel gemarkeerde 7 bij tiental; tekst waarde 70."
          }
        ],
        "captionEvidence": "35,979–40,136 s: “In 4.072 staat hij bij de tientallen. Daarom is zijn waarde 70.”",
        "notes": [],
        "videoId": "wisik-flirt-a01",
        "title": "Plaatswaarde"
      },
      {
        "code": "A02",
        "verdict": "aligned",
        "expectedMisconception": "Het aantal cijfers achter de komma wordt gebruikt in plaats van de plaatswaarde.",
        "intendedInsight": "0,8 = 0,800 > 0,125; plaatswaarde en hoeveelheid bepalen de grootte, niet het aantal decimalen.",
        "observedContent": "Roadie legt met eigen Nederlandse stem bij drie festivalborden uit waarom 0,8 groter is dan 0,125. Het tweede bord toont 0,8 = 0,800 zonder verandering van de balklengte. Het derde bord vergelijkt 800 en 125 duizendsten op gelijke eenheidsbalken.",
        "visualEvidence": [
          {
            "timestamps": "3,000; 10,000 s",
            "observation": "Opening en eerste bord tonen 0,8 of 0,125; Roadie met ronde Wisik-opdruk."
          },
          {
            "timestamps": "24,000 s",
            "observation": "Blauwgroen bord links: 0,8 = 0,800 met dezelfde 80%-balk."
          },
          {
            "timestamps": "43,000 s",
            "observation": "Geel bord rechts: titel Vergelijk in duizendsten; gelijke eenheidsbalken, vulling 80% en 12,5%, labels 800/125 duizendsten en 0,8 > 0,125."
          },
          {
            "timestamps": "59,000 s",
            "observation": "Open de herstelset verschijnt na de gesproken uitleg."
          }
        ],
        "captionEvidence": "35,140–45,000 s: 800 duizendsten tegenover 125 duizendsten, gevolgd door Dan is 0,8 duidelijk groter. Ondertitels volgen de twee loopstiltes.",
        "notes": [
          "AI-animatie; loopbeelden met voice-over. Eigen Nederlandse bronopname exclusief gebruikt, gegenereerde clipaudio verwijderd. Technische audiocontrole; geen onafhankelijke menselijke luistertest."
        ],
        "videoId": "wisik-flirt-a02",
        "title": "Meer decimalen, groter getal?",
        "reviewedAt": "2026-09-29"
      },
      {
        "code": "A03",
        "verdict": "aligned",
        "expectedMisconception": "Het minteken wordt bij het vergelijken onvoldoende meegenomen.",
        "intendedInsight": "−8 ligt verder links dan −3 en is kleiner; afstand tot nul is iets anders dan de grootte van het getal.",
        "observedContent": "Titel en poster: Negatieve getallen vergelijken. Script maakt de intuïtie acht is meer dan drie expliciet en betrekt daarna het minteken en de positie op één getallenlijn.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 44,016 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Regelmatig verdeelde getallenlijn van −10 tot 2, met −8 links van −3 en nul verder rechts. Onderschrift onderscheidt links/kleiner van afstand tot nul."
          }
        ],
        "captionEvidence": "27,437–32,031 s: “Daarom is −3 groter dan −8, ook al staat er een kleiner cijfer.”",
        "notes": [],
        "videoId": "wisik-flirt-a03",
        "title": "Negatieve getallen vergelijken"
      },
      {
        "code": "A04",
        "verdict": "aligned",
        "expectedMisconception": "Bij een overgang van negatief naar positief worden alleen de absolute waarden afgetrokken.",
        "intendedInsight": "De temperatuurstijging van −4 naar 7 is 4 + 7 = 11 graden; aftrekken van −4 verschilt van aftrekken van 4.",
        "observedContent": "Titel en poster: Het verschil over nul. Script haalt de fout 7 − 4 = 3 aan als misleidend antwoord op de situatie en corrigeert dit onmiddellijk via het beginpunt −4 en de tussenstop nul.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 45,120 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Thermometerschaal −4 tot 7; naast de schaal −4 → 0: 4°, 0 → 7: 7°, samen 11°. Formule 7 − (−4) = 11 ondersteunt de afstand."
          }
        ],
        "captionEvidence": "18,775–27,821 s: “Van −4 naar nul stijgt de temperatuur al vier graden. Daarna gaat hij nog zeven graden omhoog. De hele stijging is dus 11 graden.”",
        "notes": [],
        "videoId": "wisik-flirt-a04",
        "title": "Het verschil over nul"
      },
      {
        "code": "A05",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "De rekenvolgorde keer/delen vóór plus/min wordt niet toegepast.",
        "intendedInsight": "In 18 − 3 × 6 vormen de drie groepjes van zes de af te trekken hoeveelheid; vermenigvuldigen gaat hier vóór aftrekken, dus uitkomst 0.",
        "observedContent": "Titel en poster: Rekenvolgorde. Script zet de onjuiste links-naar-rechts-uitkomst 90 tegenover drie groepjes van zes afhalen en legt de andere bedoeling met haakjes uit. De kernillustratie heeft precies drie rijen van zes fiches.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 46,896 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "18 − 3 × 6 boven 18 gele fiches in een 3×6-formatie. Naast de fiches staan 3 × 6 hoort bij elkaar en er blijft 0 over. Op alle vier bemonsterde kernframes blijven de 18 fiches zichtbaar."
          }
        ],
        "captionEvidence": "16,102–22,113 s: “3 × 6 hoort bij elkaar: dat is de hoeveelheid die je weghaalt. Er blijft niets over.”",
        "notes": [
          "Niet-blokkerende beeldnotitie: het afhalen wordt verteld, terwijl ook bij 21 s nog alle 18 fiches zichtbaar zijn. Wegstrepen of laten verdwijnen kan de breuk met links-naar-rechts sterker maken; de huidige berekening en doelgroepkoppeling zijn correct."
        ],
        "videoId": "wisik-flirt-a05",
        "title": "Rekenvolgorde"
      },
      {
        "code": "A06",
        "verdict": "aligned",
        "expectedMisconception": "x² wordt geïnterpreteerd als 2 × x.",
        "intendedInsight": "6² betekent 6 × 6 = 36, terwijl verdubbelen 2 × 6 = 12 geeft.",
        "observedContent": "Titel en poster: Kwadrateren is niet verdubbelen. Het script benoemt de verkeerde interpretatie van het kleine tweetje en laat kwadrateren aansluiten op een vierkant met zes rijen van zes.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 47,616 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Vierkant rooster met zes kolommen en zes rijen; daarnaast 6² = 6 × 6 = 36 en de contrasterende bewerking 2 × 6 = 12."
          }
        ],
        "captionEvidence": "39,223–42,866 s: “Kwadrateren is een getal met zichzelf vermenigvuldigen.”",
        "notes": [],
        "videoId": "wisik-flirt-a06",
        "title": "Kwadrateren is niet verdubbelen"
      },
      {
        "code": "A07",
        "verdict": "aligned",
        "expectedMisconception": "De vierkantswortel wordt verward met delen door twee.",
        "intendedInsight": "√144 zoekt de niet-negatieve zijlengte van een vierkant met oppervlakte 144; 12 × 12 = 144, dus de wortel is 12 en niet 72.",
        "observedContent": "Titel en poster: Worteltrekken is niet halveren. Het script contrasteert halveren met het terugzoeken van een gelijke breedte en hoogte. De vierkantscontext maakt de positieve zijlengte passend zonder extra leerdoelen.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 50,880 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Vierkant rooster met twaalf rijen en twaalf kolommen; zijde onder en links gelabeld 12. Daarnaast √144 = 12 en afgewezen halveerbewerking 144 : 2 = 72."
          }
        ],
        "captionEvidence": "23,365–28,220 s: “12 × 12 geeft precies 144 vakjes. Daarom is √144 gelijk aan twaalf.”",
        "notes": [],
        "videoId": "wisik-flirt-a07",
        "title": "Worteltrekken is niet halveren"
      },
      {
        "code": "A08",
        "verdict": "aligned",
        "expectedMisconception": "“3 rest 2” wordt genoteerd als 3,2, alsof de rest tienden zijn.",
        "intendedInsight": "Bij 23 : 7 zijn de twee overgebleven koekjes de gezamenlijke rest; verder verdelen geeft ieder 2/7 extra en niet 2/10, dus 3 rest 2 is geen 3,2.",
        "observedContent": "Titel en poster: De rest achter de komma? Script en beeld houden de zeven porties van drie en de gezamenlijke rest van twee uit elkaar. Het script maakt ook expliciet wat 3,2 per persoon zou betekenen.",
        "visualEvidence": [
          {
            "timestamps": "4,000 s; 46,728 s",
            "observation": "Intro met juiste titel en code; oorspronkelijke statische herstelset-slotkaart is vervangen door een neutrale Wisik-slotachtergrond; inhoudelijke scènes daarvoor zijn ongewijzigd."
          },
          {
            "timestamps": "12,000; 21,000; 30,000; 39,000 s",
            "observation": "Zeven vakken met ieder drie gele koekjes en daaronder twee losse rode koekjes. Tekst 23 : 7 = 3 rest 2, niet 3,2; kernzin Rest 2 zijn twee helen. Niet twee tienden."
          }
        ],
        "captionEvidence": "30,105–33,021 s: “krijgt ieder 2/7 koekje extra. Niet 2/10.”",
        "notes": [],
        "videoId": "wisik-flirt-a08",
        "title": "De rest achter de komma?"
      },
      {
        "code": "B01",
        "verdict": "aligned",
        "intendedInsight": "Bij één stuk van hetzelfde geheel geeft een grotere noemer een kleiner stuk.",
        "observedContent": "Titel, script en beeld vergelijken 1/6 met 1/8 van even grote taarten. De verleiding acht is groter wordt doorbroken doordat dezelfde taart over meer stukken wordt verdeeld.",
        "visualEvidence": [
          "4 s: titelkaart Een grotere noemer, code B01.",
          "12, 21, 30 en 39 s: twee even grote cirkels met zes respectievelijk acht gelijke sectoren; één zesde heeft zichtbaar meer oppervlakte dan één achtste.",
          "47,856 s: eindkaart met B01; poster toont dezelfde titel en code."
        ],
        "captionEvidence": "Bij één stuk van hetzelfde geheel betekent een grotere noemer juist een kleiner stuk.",
        "notes": [],
        "expectedMisconception": "De grootte van de noemer wordt rechtstreeks aan de grootte van de breuk gekoppeld.",
        "videoId": "wisik-flirt-b01",
        "title": "Een grotere noemer"
      },
      {
        "code": "B02",
        "verdict": "aligned",
        "intendedInsight": "Bij optellen van helften tel je de stukken; hun grootte verandert niet. Twee helften vormen één geheel.",
        "observedContent": "Titel en script richten zich precies op het afzonderlijk optellen van tellers en noemers. Het tegenvoorbeeld 1/2 + 1/2 laat zien dat 2/4 taart zou laten verdwijnen; de twee getoonde helften dragen het juiste inzicht.",
        "visualEvidence": [
          "4 s: titelkaart Breuken optellen, code B02.",
          "12, 21, 30 en 39 s: twee complementaire taarthelften; 1/2 + 1/2 = 1 en expliciet niet 2/4.",
          "45,528 s: eindkaart met B02; poster stemt overeen."
        ],
        "captionEvidence": "De stukken worden niet ineens kwarten doordat je ze optelt.",
        "notes": [],
        "expectedMisconception": "Bij breuken wordt a/b + c/d uitgevoerd als (a+c)/(b+d).",
        "videoId": "wisik-flirt-b02",
        "title": "Breuken optellen"
      },
      {
        "code": "B03",
        "verdict": "aligned-with-notes",
        "intendedInsight": "Delen door een halve liter meet hoeveel halve liters in drie liter passen: 3 : 1/2 = 6. De deler omkeren geeft dezelfde uitkomst: 3 × 2/1 = 3 × 2 = 6.",
        "observedContent": "Roadie vult zes verschillende glazen vanuit een kan van drie liter. Het bord toont 3 gedeeld door 1/2 en daarna de samengestelde breuk. Roadie neemt het kaartje 1/2 onder de hoofdbreukstreep, draait het tot 2/1 en plaatst het rechts van de vaste 3. De hoofdbreukstreep wordt een keerteken. De uitkomst en algemene omkeerregel sluiten de uitleg af.",
        "visualEvidence": [
          {
            "timestamps": "4; 8 s",
            "observation": "Kan met 3 liter en zes gelijke lege glazen van 1/2 liter."
          },
          {
            "timestamps": "11.5; 13.3; 14.6; 15.6 s",
            "observation": "Nieuwe doorlopende schenkactie in zes verschillende glazen; eindoverzicht zes volle glazen en een lege kan."
          },
          {
            "timestamps": "25.2; 31.7; 35 s",
            "observation": "3 : 1/2 = 6 gaat over in 3 boven de hoofdbreukstreep met deler 1/2 eronder."
          },
          {
            "timestamps": "39.5; 41.9; 46.8; 48.3 s",
            "observation": "Fysieke kaart wordt gepakt, gedraaid en rechts van de vaste 3 gehangen; hoofdbreukstreep verandert in ×."
          },
          {
            "timestamps": "52; 56.5; 62.3 s",
            "observation": "3 × 2/1 = 3 × 2 = 6; juiste omkeerregel en slotkaart naar de herstelset."
          }
        ],
        "captionEvidence": "36.770–41.350: Alleen de breuk waardoor we delen, keren we om. Daarna: Een half wordt twee gedeeld door één, dus twee. Volledige nieuwe ondertitels en transcript corresponderen met de goedgekeurde Nederlandse opname.",
        "notes": [
          "Deze film toont een positief rekenvoorbeeld met de omkeerregel; de kenmerkende foute vermenigvuldiging wordt niet expliciet uitgerekend.",
          "AI-animatie met 720p-actiebronnen; vergrote close-ups zijn zachter dan de overige beelden. Het vloeistofverloop in de bronkan is niet fysisch betrouwbaar; de schenkclose-up toont de zes glazen.",
          "Edwin heeft deze montage voor nu geaccepteerd en publicatie gevraagd. De audiopakketten zijn ongewijzigd uit zijn goedgekeurde opname overgenomen; geen onafhankelijke tweede luisterbeoordeling."
        ],
        "expectedMisconception": "De breuken worden bij een deling rechtstreeks met elkaar vermenigvuldigd.",
        "videoId": "wisik-flirt-b03",
        "title": "Delen door een breuk",
        "reviewedAt": "2026-09-29"
      },
      {
        "code": "B04",
        "verdict": "aligned-with-notes",
        "intendedInsight": "0,7 is zeven tienden en dus zeventig honderdsten: 70%, niet 7%.",
        "observedContent": "Titel, script en gelijkheid richten zich op precies de fout één kommaplaats verschuiven. Zeven gevulde kolommen van tien maken 0,7 zichtbaar; de gesproken verfijning naar honderd vakjes ontbreekt in de bekeken beelden.",
        "visualEvidence": [
          "4 s: titelkaart Van decimaal naar procent, code B04.",
          "12 en 21 s: tien onverdeelde kolommen, waarvan zeven gevuld; bovenaan 0,7 = 7/10 = 70/100 = 70%.",
          "30 en 39 s: dezelfde tien kolommen zonder horizontale onderverdeling; ook bij de uitleg over zeventig van honderd vakjes is geen honderdveld zichtbaar.",
          "50,640 s: eindkaart met B04; poster stemt overeen."
        ],
        "captionEvidence": "Nu verdelen we elke kolom in tien vakjes.",
        "notes": [
          "Niet-blokkerend voor de experimentele festivalversie: voeg horizontale lijnen toe tijdens 19,710–31,419 s zodat de aangekondigde honderd vakjes en het behoud van hoeveelheid zichtbaar worden. De weergegeven gelijkheid en kernuitleg zijn correct."
        ],
        "expectedMisconception": "De komma verschuift één in plaats van twee plaatsen.",
        "videoId": "wisik-flirt-b04",
        "title": "Van decimaal naar procent"
      },
      {
        "code": "B05",
        "verdict": "aligned",
        "intendedInsight": "De nieuwe prijs na 20% korting is 80% van het oorspronkelijke geheel; hetzelfde percentage erbij gebruikt een andere basis.",
        "observedContent": "De film vraagt expliciet of €72 plus 20% de oorspronkelijke prijs geeft en doorbreekt dit met twintig procent waarvan. Een 80/20-strook maakt €72 als deel van €90 zichtbaar; €90 − €18 = €72 controleert het juiste geheel.",
        "visualEvidence": [
          "4 s: titelkaart Terugrekenen na korting, code B05.",
          "12, 21, 30 en 39 s: strook met circa 80% blauwgroen gelabeld €72 = 80% en 20% oranje; oorspronkelijk geheel = €90.",
          "52,080 s: eindkaart met B05; poster stemt overeen."
        ],
        "captionEvidence": "Eerst zien wat het bedrag voorstelt: hier 80%, niet het hele bedrag.",
        "notes": [],
        "expectedMisconception": "Het percentage wordt toegepast op het nieuwe bedrag in plaats van op het oorspronkelijke geheel.",
        "videoId": "wisik-flirt-b05",
        "title": "Terugrekenen na korting"
      },
      {
        "code": "B06",
        "verdict": "aligned-with-notes",
        "intendedInsight": "Een daling en stijging met hetzelfde percentage heffen elkaar niet op doordat de tweede basis kleiner is: 100 → 80 → 96.",
        "observedContent": "Het script confronteert de terug-naar-het-begin-verwachting rechtstreeks en rekent correct met 20% van 100 en vervolgens 20% van 80. Het honderdveld toont 80 behouden blokjes, 16 teruggevoegde blokjes en vier lege vakjes.",
        "visualEvidence": [
          "4 s: titelkaart Twintig procent eraf en erbij, code B06.",
          "12, 21, 30 en 39 s: 10 × 10-veld met 80 blauwgroene, 16 gele en vier lege vakjes; onderschrift 20% van 100 is 20. 20% van 80 is 16.",
          "12–39 s: losse rekentekst links toont −20, +16 en =96 zonder uitgeschreven startwaarde 100.",
          "50,400 s: eindkaart met B06; poster stemt overeen."
        ],
        "captionEvidence": "De percentages waren gelijk, maar de hoeveelheden waarover je ze berekende niet.",
        "notes": [
          "Niet-blokkerende notatieverbetering: schrijf bij de losse rekentekst ook de startwaarde 100, bijvoorbeeld 100 − 20 + 16 = 96. Script, blokjestelling en einduitkomst zijn correct; de huidige losse tekens kunnen zonder context onvolledig worden gelezen."
        ],
        "expectedMisconception": "−p% en daarna +p% worden verondersteld elkaar op te heffen.",
        "videoId": "wisik-flirt-b06",
        "title": "Twintig procent eraf en erbij"
      },
      {
        "code": "B07",
        "verdict": "aligned",
        "intendedInsight": "Bij een verhouding groeien beide hoeveelheden met dezelfde factor; vier groepjes 2 : 3 geven 8 : 12.",
        "observedContent": "De film maakt de additive fout 2 → 8 en 3 → 9 expliciet. Vier visueel herhaalde menggroepjes tonen waarom het verschil bewaren iets anders is dan dezelfde samenstelling bewaren.",
        "visualEvidence": [
          "4 s: titelkaart Verhoudingen vergroten, code B07.",
          "12, 21, 30 en 39 s: vier groepjes met elk twee oranje siroopeenheden en drie blauwgroene watereenheden; totaaltekst 4 groepjes → 8 siroop en 12 water.",
          "50,568 s: eindkaart met B07; poster stemt overeen."
        ],
        "captionEvidence": "Je kunt de groepjes herhalen of beide aantallen met vier vermenigvuldigen.",
        "notes": [],
        "expectedMisconception": "Het verschil tussen de verhoudingsgetallen wordt opgeteld in plaats van dezelfde factor te gebruiken.",
        "videoId": "wisik-flirt-b07",
        "title": "Verhoudingen vergroten"
      },
      {
        "code": "B08",
        "verdict": "aligned-with-notes",
        "intendedInsight": "De 36 geordende paren zijn even waarschijnlijk bij twee eerlijke onafhankelijk geworpen dobbelstenen; de elf sommen zijn dat niet.",
        "observedContent": "Titel en script confronteren gelijke kansen voor sommen 2 tot 12. De sommentabel toont één manier voor 2 en zes voor 7; de tekst onderscheidt (1,6) van (6,1) en noemt eerlijkheid en onafhankelijkheid expliciet.",
        "visualEvidence": [
          "4 s: titelkaart Kansen met twee dobbelstenen, code B08.",
          "12, 21, 30 en 39 s: correcte 6 × 6-sommentabel van 2 tot 12; één oranje cel voor som 2 en zes gele cellen voor som 7; labels som 2: 1 paar en som 7: 6 paren.",
          "12–39 s: geen rij-/kolomkoppen die eerste en tweede dobbelsteen aangeven.",
          "45,936 s: eindkaart met B08; poster stemt overeen."
        ],
        "captionEvidence": "De paren hebben gelijke kansen. De sommen niet.",
        "notes": [
          "Niet-blokkerende didactische verbetering: voeg rij-/kolomkoppen 1–6 en eerste/tweede steen toe, zodat leerlingen de geordende paren rechtstreeks uit het beeld kunnen aflezen. De huidige telling en conclusie zijn correct."
        ],
        "expectedMisconception": "De elf mogelijke somwaarden worden behandeld alsof elke som één even waarschijnlijke uitkomst is.",
        "videoId": "wisik-flirt-b08",
        "title": "Kansen met twee dobbelstenen"
      },
      {
        "code": "C01",
        "verdict": "aligned",
        "expectedMisconception": "De factor 100 van meter naar centimeter wordt niet gekwadrateerd.",
        "intendedInsight": "1 m² is 100 cm × 100 cm = 10.000 cm²; de lengtefactor werkt in twee richtingen.",
        "observedContent": "Het eerdere 10×10-raster is hersteld. Het vierkant blijft even groot en krijgt werkelijk 100 rijen en 100 kolommen. Beide zijden tonen 1 m = 100 cm. Eén gekoppeld vergroot vakje is 1 cm bij 1 cm, dus 1 cm². De uitkomst 1 m² = 10.000 cm² volgt zichtbaar uit beide lengtefactoren; beeld, VTT en transcript behandelen dezelfde misconceptie.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              54
            ],
            "observation": "C01-titelkaart en afsluiting behouden."
          },
          {
            "timestampsSeconds": [
              12,
              17
            ],
            "observation": "Hetzelfde vierkant van 1 m bij 1 m krijgt een fijnraster van 100×100, met beide zijden als 100 cm."
          },
          {
            "timestampsSeconds": [
              25,
              30
            ],
            "observation": "Gekoppelde vergroting van één vakje van 1 cm², naast 100 rijen × 100 vakjes en de juiste oppervlakteconversie. Kernlabels staan boven de ondertitelzone."
          }
        ],
        "captionEvidence": "16.460–20.245 s: langs beide richtingen 100 cm; 20.275–27.287 s: honderd rijen met elk honderd vakjes van één vierkante centimeter; vanaf 27.317 s: 10.000 vakjes. De ondertitelnotatie “100 cms” is hersteld naar “100 cm”, met dezelfde tijdstippen.",
        "notes": [],
        "videoId": "wisik-flirt-c01",
        "title": "Van vierkante meter naar vierkante centimeter",
        "reviewedAt": "2026-09-06",
        "visualRepair": {
          "date": "2026-09-06",
          "originalVideoSha256": "d8756e6debbd870d73c4eb3d4433841aed7ff37d03de162a7dcc175d1c68ebdd",
          "resolvedFindings": [
            "10×10-raster vervangen door werkelijk 100×100 met een vergroot vakje van 1 cm².",
            "Ondertitelnotatie 100 cms vervangen door 100 cm."
          ],
          "verification": {
            "code": "C01",
            "frames": 1381,
            "fps": 25,
            "duration": "55.240000",
            "sha256": "c530c34ef838018ce023d71fd1eb7b04def6075fdc5ab9a237626f008c71664c",
            "unchangedAudioSha256": "7c283ab0d66ad009df76319785524c1178411cdfc80bf3bbeb51750f8f8469cd",
            "stageFrames": [
              113,
              411,
              584,
              683
            ],
            "mainSceneEndFrame": 1244
          }
        }
      },
      {
        "code": "C02",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "De omzetfactor wordt slechts één keer of als 1.000 gebruikt waar 100³ nodig is.",
        "intendedInsight": "1 m³ bevat 100 × 100 × 100 = 1.000.000 cm³; breedte, diepte én hoogte tellen mee.",
        "observedContent": "Titel en volledige VTT/transcript breken de gedachte dat duizend cm³ in een m³ passen met een correcte rij-laag-stapeling. Het beeld is een onverdeelde kubus; de rekenregel staat grotendeels achter de witte inzichtbalk.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              53.52
            ],
            "observation": "Correcte C02-titelkaart en afsluiting."
          },
          {
            "timestampsSeconds": [
              12,
              21,
              30,
              39
            ],
            "observation": "Vaste kubus in perspectief met drie zichtbare vlakken; inzichtbalk “Inhoud telt drie richtingen.” Geen blokjes, maten of laagopbouw zichtbaar."
          },
          {
            "timestampsSeconds": [
              35
            ],
            "observation": "Extra opname op volledige resolutie bevestigt dat de onderste delen van 100 × 100 × 100 = 1.000.000 cm³ achter de inzichtbalk vallen."
          }
        ],
        "captionEvidence": "33.710–37.073: “Honderd keer 10.000 is 1.000.000.”",
        "notes": [
          "Nietblokkerende festivalnotitie: schuif de rekenregel omhoog zodat de uitkomst volledig leesbaar is.",
          "Het bedoelde inzicht is juist, maar de verwijzingen naar blokjes en lagen krijgen weinig visuele steun. Een zichtbaar laagje of drie maatlabels zou de bestaande uitleg directer maken."
        ],
        "videoId": "wisik-flirt-c02",
        "title": "Van kubieke meter naar kubieke centimeter"
      },
      {
        "code": "C03",
        "verdict": "aligned",
        "expectedMisconception": "De randmaat en de vlakmaat worden niet onderscheiden.",
        "intendedInsight": "Omtrek meet de rand in cm; oppervlakte meet het gevulde vlak in cm².",
        "observedContent": "Titel, volledige VTT/transcript en beeld vergelijken dezelfde rechthoek van 8 bij 5: rand 26 cm en vlak 40 cm². De vraag wat er gemeten wordt doorbreekt het verwisselen van beide grootheden.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              52.32
            ],
            "observation": "Correcte C03-titelkaart en afsluiting."
          },
          {
            "timestampsSeconds": [
              12,
              21,
              30,
              39
            ],
            "observation": "Rechthoek met telbaar 8×5-raster; warme buitenrand gekoppeld aan “omtrek 26 cm” en koel raster aan “oppervlakte 40 cm²”. Inzichtbalk onderscheidt rand lopen en vlak vullen."
          }
        ],
        "captionEvidence": "32.449–36.127: “Dezelfde rechthoek, maar twee verschillende grootheden.”",
        "notes": [],
        "videoId": "wisik-flirt-c03",
        "title": "Omtrek of oppervlakte"
      },
      {
        "code": "C04",
        "verdict": "aligned",
        "expectedMisconception": "Basis × hoogte wordt gebruikt alsof de figuur een rechthoek is.",
        "intendedInsight": "De oppervlakte van één driehoek is de helft van basis × loodrechte hoogte.",
        "observedContent": "Het eerdere driehoekige totaalbeeld is hersteld. Eerst staat één driehoek in beeld; vanaf 11,12 s komt de congruente kopie erbij en ontstaat een werkelijk parallellogram. De gedeelde diagonaal verdeelt dit in twee even grote driehoeken. Vanaf 19,56 s verschijnt b × h voor het geheel en vanaf 25,80 s ½ × b × h voor één driehoek. De hoogte staat loodrecht op de basis, met het rechtehoektekentje bij de voet; vanaf 29,48 s wordt dat benadrukt.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              47
            ],
            "observation": "C04-titelkaart en afsluiting behouden."
          },
          {
            "timestampsSeconds": [
              8,
              14,
              18
            ],
            "observation": "Eerst één driehoek, daarna twee congruente driehoeken binnen een buitenrand met twee paren evenwijdige zijden: een parallellogram."
          },
          {
            "timestampsSeconds": [
              28,
              34
            ],
            "observation": "Het gehele parallellogram heeft oppervlakte b × h; één driehoek de helft. De getekende h staat loodrecht op de horizontale basis, met rechtehoekmarkering aan de voet. Kernlabels staan boven de ondertitelzone."
          }
        ],
        "captionEvidence": "11.100–15.398 s: een precies gelijke driehoek erbij; 15.428–19.536 s: samen een parallellogram met dezelfde basis en hoogte; 25.802–29.465 s: één driehoek heeft de helft; 29.495–38.258 s: loodrechte hoogte, geen schuine zijde. Het herstelde beeld volgt deze opbouw.",
        "notes": [],
        "videoId": "wisik-flirt-c04",
        "title": "De oppervlakte van een driehoek",
        "reviewedAt": "2026-09-06",
        "visualRepair": {
          "date": "2026-09-06",
          "originalVideoSha256": "efd5bb4a8453f309b3b53d6102df2f143ef8af57c7991682a3c112ae242675b8",
          "resolvedFindings": [
            "Driehoekige buitenrand vervangen door een echt parallellogram uit twee congruente driehoeken.",
            "Loodrechte hoogte voorzien van een rechtehoekmarkering bij de voet van de hoogte."
          ],
          "verification": {
            "code": "C04",
            "frames": 1223,
            "fps": 25,
            "duration": "48.928005",
            "sha256": "628951efca6d0c53b177c144183dc10d1145748f7bc8bf7630859b6a747b5e70",
            "unchangedAudioSha256": "776c791ae88654a8b8316352062cc8bbe3f3ca84b8aec2844db2dbccd3bab3d5",
            "stageFrames": [
              113,
              278,
              489,
              645,
              737
            ],
            "mainSceneEndFrame": 1086
          }
        }
      },
      {
        "code": "C05",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "De gegeven straal wordt rechtstreeks als diameter gebruikt of opnieuw gehalveerd.",
        "intendedInsight": "De straal loopt van middelpunt naar rand; de diameter loopt door het middelpunt van rand naar rand en is tweemaal zo lang.",
        "observedContent": "Titel, volledige VTT/transcript en cirkelbeeld treffen de verwisseling van r en d. De film benoemt correct r = 5 cm, d = 10 cm en de gelijkwaardige omtrekformules πd en 2πr.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              45.6
            ],
            "observation": "Correcte C05-titelkaart en afsluiting."
          },
          {
            "timestampsSeconds": [
              12,
              21,
              30,
              39
            ],
            "observation": "Cirkel met middelpuntstip, volledige diameter en gelabelde rechterstraal “r = 5 cm”; “d = 10 cm” staat onder de cirkel. Inzichtbalk vraagt eerst straal of diameter. Een losse “M” staat ver rechts buiten de cirkel."
          }
        ],
        "captionEvidence": "23.267–26.063: “Die bestaat uit twee stralen en is hier dus 10 cm.”",
        "notes": [
          "Nietblokkerende visuele notitie: plaats M direct bij de middelpuntstip of laat die losse letter weg; de huidige positie buiten de cirkel is onduidelijk. De straal-diameterrelatie zelf is correct zichtbaar."
        ],
        "videoId": "wisik-flirt-c05",
        "title": "Straal of diameter"
      },
      {
        "code": "C06",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "Een lineaire factor wordt niet gekwadrateerd of tot de derde macht genomen.",
        "intendedInsight": "Bij gelijkvormige vergroting met lengtefactor 3 wordt de oppervlakte 9 maal en de inhoud 27 maal zo groot.",
        "observedContent": "Titel en volledige VTT/transcript doorbreken expliciet het gebruik van één factor voor lengte, oppervlakte en inhoud. De voorwaarde dat alle lengterichtingen met dezelfde factor groeien wordt correct genoemd. Het beeld ondersteunt de oppervlakte met negen vakjes en geeft alle drie correcte factoren.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              51.7
            ],
            "observation": "Correcte C06-titelkaart en afsluiting."
          },
          {
            "timestampsSeconds": [
              12,
              21,
              30,
              39
            ],
            "observation": "3×3-raster met “vlak ×9”; daarnaast “lengte ×3”, “oppervlakte ×9” en “inhoud ×27”. Inzichtbalk benoemt dat alleen hoger maken iets anders is. Geen blok of kubusverdeling zichtbaar."
          }
        ],
        "captionEvidence": "36.502–40.567: “Dat geldt omdat alle lengterichtingen met dezelfde factor groeien.”",
        "notes": [
          "Nietblokkerende festivalnotitie: de woorden “Dit blok” en de beschrijving van 27 blokjes hebben geen zichtbaar blok als referent; de film toont alleen het 2D-raster. Een compact 3×3×3-blok zou het inhoudsinzicht concreter maken. De huidige tekst en factoren zijn wiskundig correct."
        ],
        "videoId": "wisik-flirt-c06",
        "title": "Vergroten in één, twee en drie richtingen"
      },
      {
        "code": "C07",
        "verdict": "aligned",
        "expectedMisconception": "Minuten worden behandeld alsof een uur 100 minuten heeft.",
        "intendedInsight": "Minuten zijn zestigsten van een uur: 20 minuten = 1/3 uur; 0,20 uur = 1/5 uur = 12 minuten.",
        "observedContent": "Titel, volledige VTT/transcript en klokmodel richten zich precies op het behandelen van tijd als honderdsten. Het contrast tussen 20/60 en 20/100 maakt duidelijk dat een decimale komma geen scheiding tussen uren en minuten is.",
        "visualEvidence": [
          {
            "timestampsSeconds": [
              4,
              47.76
            ],
            "observation": "Correcte C07-titelkaart en afsluiting."
          },
          {
            "timestampsSeconds": [
              12,
              21,
              30,
              39
            ],
            "observation": "Cirkel met een correct ingekleurde derde sector en label “20 min = 1/3 uur”; daarnaast “0,20 uur = 12 minuten”. Inzichtbalk: “Twintig van zestig, niet twintig van honderd.”"
          }
        ],
        "captionEvidence": "40.646–43.071: “En 20 minuten is 20/60, niet 20/100.”",
        "notes": [],
        "videoId": "wisik-flirt-c07",
        "title": "Minuten zijn geen honderdsten van een uur"
      },
      {
        "code": "D01",
        "verdict": "aligned",
        "expectedMisconception": "Het hoogste punt wordt gekozen wanneer de grootste toename tussen opeenvolgende waarden wordt gevraagd.",
        "intendedInsight": "Vergelijk de verschillen: de hoogste eindwaarde hoeft niet na de grootste stijging te liggen.",
        "observedContent": "De eigen stem vergelijkt 10→30→35→40: de grootste toename is +20 in het eerste jaar, terwijl de hoogste eindwaarde 40 rechts ligt. De volledige slotconclusie maakt expliciet dat waar je het hoogst uitkomt niet automatisch de plaats van de grootste stijging is. Dit sluit aan op het canonieke denkpatroon.",
        "visualEvidence": [
          {
            "timestamps": [
              2
            ],
            "observation": "Titelkaart met D01 en Hoogste punt of grootste toename."
          },
          {
            "timestamps": [
              12,
              33,
              48
            ],
            "observation": "Grafiek 10, 30, 35, 40; eerste stap +20, volgende +5. Het kernonderscheid sluit aan op de eigen stem."
          },
          {
            "timestamps": [
              54
            ],
            "observation": "Bestaande eindkaart na de complete uitleg, zonder de overtollige stilte."
          }
        ],
        "captionEvidence": "De Nederlandse cues volgen de volledige eigen stem en bevatten nu ook de slotconclusie dat waar je het hoogst uitkomt niet automatisch is waar je het hardst bent gestegen.",
        "notes": [],
        "videoId": "wisik-flirt-d01",
        "title": "Hoogste punt of grootste toename"
      },
      {
        "code": "D02",
        "verdict": "aligned",
        "expectedMisconception": "Het grootste absolute aantal wordt verward met het grootste aandeel of percentage.",
        "intendedInsight": "Vergelijk ieder aantal met de eigen groepsgrootte; minder personen kunnen een groter aandeel vormen.",
        "observedContent": "Titel ‘Aantal of aandeel’ en script gebruiken twee groepen: 20/30 = 2/3 tegenover 18/20 = 9/10 = 90%. Het eerste aantal is groter, het tweede aandeel is groter. Twee correct getelde vakjesgroepen dragen hetzelfde inzicht.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘Aantal of aandeel’ met code D02."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "Links 30 vakjes waarvan 20 gevuld; rechts 20 waarvan 18 gevuld. Labels ‘20 van 30’ en ‘18 van 20’; takeaway ‘Meer mensen ≠ groter aandeel.’"
          },
          {
            "timestamps": [
              47.784
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "De tweede groep heeft dus minder geslaagden, maar een groter aandeel geslaagden.",
        "notes": [],
        "videoId": "wisik-flirt-d02",
        "title": "Aantal of aandeel"
      },
      {
        "code": "D03",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "De zichtbare staafhoogte op een afgekorte as wordt rechtstreeks gelezen als de werkelijke verhouding.",
        "intendedInsight": "Lees asstart en waarden: 100→110 is +10%, ook wanneer de zichtbare tweede staaf twee keer zo hoog lijkt.",
        "observedContent": "Titel, captions en staafdiagram behandelen precies de afgekorte as. De as begint op 90 en de staven eindigen correct op 100 en 110; ‘lijkt ×2 / is +10%’ doorbreekt de fout. Het script nuanceert terecht dat de betekenis van 10% van de context afhangt.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘Een afgekorte as’ met code D03."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "As met 90, 100, 110; zichtbare staafhoogten in verhouding 1:2; labels ‘lijkt ×2’ en ‘is +10%’."
          },
          {
            "timestamps": [
              26.2,
              28.5
            ],
            "observation": "Gerichte extra controle tijdens ‘Laat de as bij 0 beginnen’ en ‘de indruk verandert’: de zichtbare as blijft op 90 beginnen en de staven behouden hun hoogteverhouding."
          },
          {
            "timestamps": [
              47.376
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "Een stijging van 10%, geen 100%.",
        "notes": [
          "Niet-blokkerend voor deze experimentele festivalversie: het script vraagt een asstart bij nul en beschrijft een veranderende indruk, maar de bekeken beelden voeren die omslag niet uit. Een nulasbeeld op dat moment zou de bedoelde ontdekking versterken. De getoonde berekening en het kerninzicht zijn correct."
        ],
        "videoId": "wisik-flirt-d03",
        "title": "Een afgekorte as"
      },
      {
        "code": "D04",
        "verdict": "aligned",
        "expectedMisconception": "Bij een vraag naar het rekenkundig gemiddelde wordt de middelste of meest voorkomende waarde gekozen.",
        "intendedInsight": "Modus, mediaan en gemiddelde beantwoorden verschillende vragen; voor het gemiddelde telt het totaal gedeeld door het aantal waarden.",
        "observedContent": "De geordende rij 1, 1, 3, 5, 10 heeft modus 1, mediaan 3 en gemiddelde 20/5 = 4. Titel, script en één rij kaarten tonen deze drie verschillende uitkomsten correct en confronteren expliciet ‘het vaakst = gemiddelde’.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘Gemiddelde, mediaan en modus’ met code D04."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "Vijf kaarten 1, 1, 3, 5, 10; beide enen krijgen ‘modus’, de 3 krijgt ‘mediaan’; onderaan staat ‘gemiddelde = 20 : 5 = 4’."
          },
          {
            "timestamps": [
              47.376
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "Voor het gemiddelde kijken we naar het totaal: 20.",
        "notes": [],
        "videoId": "wisik-flirt-d04",
        "title": "Gemiddelde, mediaan en modus"
      },
      {
        "code": "D05",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "Voor het gemiddelde wordt de som gedeeld door het aantal tussenruimten of een ander verkeerd aantal.",
        "intendedInsight": "Vier meetwaarden vormen vier bijdragen aan het totaal; daarom wordt 20 over vier waarden verdeeld en is het gemiddelde 5.",
        "observedContent": "Titel en script onderscheiden vier meetwaarden 2, 4, 6, 8 van de drie tussenruimten. Eén beeld toont vier bakjes met overeenkomstige aantallen fiches en drie verbindingsstreepjes. Het script bakent het inzicht correct af tot het gemiddelde van deze meetwaarden; 20/4 = 5 klopt.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘Gemiddelde: waarden of tussenruimten?’ met code D05."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "Vier bakjes met stapels van 2, 4, 6 en 8 fiches; drie tussenruimten zijn gemarkeerd. Takeaway ‘Vier waarden, niet drie tussenruimten. Gemiddelde = 5.’"
          },
          {
            "timestamps": [
              25.8,
              27
            ],
            "observation": "Gerichte extra controle bij ‘Elk krijgt 5 fiches’: de stapels blijven zichtbaar 2, 4, 6, 8; een gelijke verdeling wordt niet getoond."
          },
          {
            "timestamps": [
              50.424
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "Het blijven 4 bakjes. Elk krijgt 5 fiches.",
        "notes": [
          "Niet-blokkerend: de aangekondigde gelijke verdeling blijft verbaal; de afbeelding behoudt de beginhoeveelheden. Het verdelen naar 5 fiches per bakje op circa 25 seconden zou de betekenis van de juiste deler zichtbaar maken.",
          "De film beweert niet dat tussenruimten bij iedere statistische of tijdsvraag irrelevant zijn; de afbakening tot vier meetwaarden voorkomt die overgeneralisatie."
        ],
        "videoId": "wisik-flirt-d05",
        "title": "Gemiddelde: waarden of tussenruimten?"
      },
      {
        "code": "D06",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "Bij een ontbrekende waarde wordt de benodigde totaalsom niet berekend en wordt het gemiddelde rechtstreeks van de bekende som afgetrokken.",
        "intendedInsight": "Een gemiddelde van 10 bij vier waarden vereist totaal 40; trek de bekende som 24 daarvan af, zodat 16 ontbreekt.",
        "observedContent": "Vier waarden 6, 8, 10, ? vormen één samenhangende situatie. Script en beeld leggen de cruciale brug gemiddelde 10→totaal 40 en 24+?=40, ?=16 correct. De opening vraagt of men 10 moet invullen en de slotzin legt de betekenis van gelijk verdelen uit.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘Het ontbrekende getal bij een gemiddelde’ met code D06."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "Kaarten 6, 8, 10, ?; bovenaan ‘gemiddelde 10 → totaal 40’; onderaan ‘24 + ? = 40   ? = 16’."
          },
          {
            "timestamps": [
              46.656
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "Vier getallen die gemiddeld 10 zijn, moeten samen 40 zijn.",
        "notes": [
          "De opening en takeaway richten zich op de verwante gedachte ‘het ontbrekende getal is het gemiddelde’, niet letterlijk op ‘gemiddelde van bekende som aftrekken’. De noodzakelijke totaalsom wordt wel expliciet opgebouwd en is centraal in beeld; daarom inhoudelijk passend bij D06, met een accentverschil en geen verkeerde koppeling."
        ],
        "videoId": "wisik-flirt-d06",
        "title": "Het ontbrekende getal bij een gemiddelde"
      },
      {
        "code": "D07",
        "verdict": "aligned-with-notes",
        "expectedMisconception": "Alleen de verandering per eenheid wordt gebruikt en het vaste startbedrag wordt vergeten.",
        "intendedInsight": "De ritprijs bestaat uit een eenmalig beginbedrag plus afstandskosten: 4 + 6 × 2,50 = 19; bij 0 km is er al €4.",
        "observedContent": "Titel en taxiverhaal confronteren de onvolledige uitkomst €15 met het instaptarief €4. Eén schema en een lijn met een positieve startwaarde laten correct zien waarom de totale prijs €19 is. De startwaarde wordt expliciet gekoppeld aan nul kilometer. De interne productienotities zijn bij de afrondende controle uit het openbare transcript verwijderd; de gesproken uitleg en ondertiteling blijven gelijk.",
        "visualEvidence": [
          {
            "timestamps": [
              4
            ],
            "observation": "Titelkaart ‘De startwaarde niet vergeten’ met code D07."
          },
          {
            "timestamps": [
              12,
              21,
              30,
              39
            ],
            "observation": "Schema ‘instap €4 + €2,50 per km’, ‘6 km → 4 + 15 = €19’; lijn begint boven de horizontale as met label ‘€4 bij 0 km’. Er is geen taxi of bewegende teller in deze beelden."
          },
          {
            "timestamps": [
              48.072
            ],
            "observation": "Afsluiting verwijst naar de herstelset."
          }
        ],
        "captionEvidence": "maar de ritprijs begint hier al bij €4.",
        "notes": [
          "Het schema ondersteunt de wiskunde, maar de verwijzing ‘Kijk naar de teller voordat de taxi vertrekt’ correspondeert met een formule/grafiek in plaats van een getoonde taxiteller. Dit is een niet-blokkerend redactioneel verschil."
        ],
        "videoId": "wisik-flirt-d07",
        "title": "De startwaarde niet vergeten"
      }
    ],
    "reportUrl": "/assets/data/flirt-content-review.json"
  },
  "failures": [],
  "scope": "Sterke deterministische regressie- en consistentiecontrole. Dit is geen bewijs van leerwinst, geen empirische kalibratie en geen vervanging voor vakdidactische of mobiele gebruikerstests.",
  "source": {
    "file": "/apps/pabo-rekenklaar/index.html",
    "sha256": "1726935ae55af144c94e9baaacbf8fac34bbc5e0739b5bb9e578b8b3c185fd7b"
  },
  "provenance": {
    "auditScript": "scripts/audit-pabo-release.mjs",
    "requiredWorkflow": ".github/workflows/quality.yml",
    "publicReport": "/assets/data/pabo-release-audit.json"
  }
}
