[
  {
    "length_tokens": 120000,
    "skipped": false,
    "needles": [
      {
        "id": "ankerstein_blau",
        "depth_label": "5%",
        "depth_pct": 0.05,
        "expected_keywords": [
          "blauer Ankerstein",
          "Lübeck-1907",
          "A-318"
        ],
        "hit": false
      },
      {
        "id": "smaragd",
        "depth_label": "10%",
        "depth_pct": 0.1,
        "expected_keywords": [
          "smaragdgrünen Schlüssel",
          "Seriennummer",
          "7-Bravo-12"
        ],
        "hit": false
      },
      {
        "id": "nordstern_brigade",
        "depth_label": "15%",
        "depth_pct": 0.15,
        "expected_keywords": [
          "Nordstern-Brigade",
          "violetter"
        ],
        "hit": false
      },
      {
        "id": "katze_indigo",
        "depth_label": "25%",
        "depth_pct": 0.25,
        "expected_keywords": [
          "Indigo-Quark"
        ],
        "hit": false
      },
      {
        "id": "schiff_atlantis",
        "depth_label": "33%",
        "depth_pct": 0.33,
        "expected_keywords": [
          "Atlantis-Mira",
          "NL-7711",
          "142"
        ],
        "hit": false
      },
      {
        "id": "ehrenmitglied",
        "depth_label": "50%",
        "depth_pct": 0.5,
        "expected_keywords": [
          "Ehrenmitglied",
          "Aluminium-Gesellschaft",
          "Köln"
        ],
        "hit": false
      },
      {
        "id": "rezept_safran",
        "depth_label": "65%",
        "depth_pct": 0.65,
        "expected_keywords": [
          "Safran-Klops Margarethe",
          "7 Gramm",
          "3 Stunden"
        ],
        "hit": false
      },
      {
        "id": "regentonne_42",
        "depth_label": "75%",
        "depth_pct": 0.75,
        "expected_keywords": [
          "Erbe von Onkel Walpurgis",
          "42-Lima"
        ],
        "hit": false
      },
      {
        "id": "code_uuid",
        "depth_label": "85%",
        "depth_pct": 0.85,
        "expected_keywords": [
          "7f4a2e91-marlin-2026"
        ],
        "hit": true
      },
      {
        "id": "coriolis",
        "depth_label": "90%",
        "depth_pct": 0.9,
        "expected_keywords": [
          "Coriolis-Effekt",
          "Pendel",
          "Memo",
          "Dr. Kühn",
          "17.03.2024"
        ],
        "hit": false
      }
    ],
    "hits": 1,
    "total": 10,
    "retrieval_score": 0.1,
    "summary_checks": [
      {
        "id": "sentence_count",
        "label": "3-5 Sätze",
        "passed": true,
        "detail": "4 Sätze gezählt"
      },
      {
        "id": "max_words",
        "label": "Höchstens 220 Wörter",
        "passed": true,
        "detail": "104 Wörter"
      },
      {
        "id": "keyword_coverage",
        "label": "Korpus-Stichwörter (3/4)",
        "passed": true,
        "detail": "✓ Gottlieb, ✓ Malineken, ✓ Schmied, ✗ Bonaparte"
      }
    ],
    "summary_passed": 3,
    "summary_total": 3,
    "summary_score": 1.0,
    "summary_sentence_count": 4,
    "summary_word_count": 104,
    "summary_keyword_hits": 3,
    "summary_keyword_total": 4,
    "combined_score": 0.44999999999999996,
    "raw_summary": "Der Roman spielt im „Blumental“, einem idyllischen, preußischen Waldgebiet nahe Wriezen, und erzählt die Abenteuer des jungen Schmiedelehrlings Gottlieb Lasso sowie seiner Freundin Malineken.  Die beiden erleben die napoleonische Besetzung, den Verlust ihrer Eltern und die Verfolgung durch französische Truppen, während sie gleichzeitig versuchen, heimlich Waffen zu schmieden und die Widerstandsbewegung des „Tugendbundes“ zu unterstützen.  Gottlieb ist ein idealistischer, von Gerechtigkeit getriebener Held, Malineken dagegen eine lebensfrohe, mutige junge Frau, die sich zwischen Freundschaft und Pflicht bewegt.  Zentrale Themen sind Krieg und Unterdrückung, der Kampf um Freiheit und Gerechtigkeit, die Rolle des Glaubens und der Moral sowie das Streben nach persönlicher Ehre und Selbstbestimmung.",
    "raw_answer": "1. Ein blauer Ankerstein mit der Gravur „Lübeck‑1907“ und der Inventarnummer A‑318.  \n2. Ein smaragdgrüner Schlüssel, Seriennummer 7‑Bravo‑12, versteckt unter dem Amboss.  \n3. Die Nordstern‑Brigade vom 9. Oktober, deren Standarte aus violetter Seide gefertigt war.  \n4. Die Katze namens Indigo‑Quark wartete hinter der Schmiede auf den Postboten.  \n5. Das Schiff „Atlantis‑Mira“, Registriernummer NL‑7711, nahm am 3. Mai 142 Säcke Gerste an Bord.  \n6. Der Pfarrer von Wriezen wurde zum Ehrenmitglied der Aluminium‑Gesellschaft Köln ernannt.  \n7. Das Rezept „Safran‑Klops Margarethe“ benötigt 7 g Safran und eine Garzeit von drei Stunden.  \n8. Auf der Regentonne im Hof stand die Inschrift „Erbe von Onkel Walpurgis, Charge 42‑Lima“.  \n9. Im Quellcode‑Kommentar steht der RUNTIME_TOKEN‑Wert ‘7f4a2e91-marlin-2026’.  \n10. Der TODO‑Kommentar lautet „Coriolis‑Effekt im Pendel berücksichtigen“ und verweist auf das Memo von Dr. Kühn vom 17.03.2024.",
    "approx_corpus_tokens": 120463,
    "error": null,
    "comprehension_questions": [
      {
        "id": "schmied_name",
        "type": "factual",
        "prompt": "Wie heißt der Schmied vom Blumental, bei dem Gottlieb in der Lehre ist? (Vor- und Nachname)",
        "answer": "1. Michael Lebbin.",
        "expected_keywords": [
          "Lebbin"
        ],
        "matched_keywords": [
          "Lebbin"
        ],
        "min_match": 1,
        "score": 1.0,
        "hit": true
      },
      {
        "id": "kapitaen_eltern",
        "type": "factual",
        "prompt": "Wie heißt der französische Kapitän, der Gottliebs Eltern getötet hat?",
        "answer": "2. Kapitän Etienne de Beaumont.",
        "expected_keywords": [
          "Beaumont",
          "Etienne"
        ],
        "matched_keywords": [
          "Beaumont",
          "Etienne"
        ],
        "min_match": 1,
        "score": 1.0,
        "hit": true
      },
      {
        "id": "schluessel_ablenkung",
        "type": "factual",
        "prompt": "Womit lenkte Malineken die Wachen ab, um den Schlüssel zu entwenden?",
        "answer": "3. Der Text gibt nicht an, womit Malineken die Wachen ablenkte – diese Information ist nicht enthalten.",
        "expected_keywords": [
          "Tuch",
          "Kopftuch",
          "Semmel",
          "Verkleidung"
        ],
        "matched_keywords": [],
        "min_match": 1,
        "score": 0.0,
        "hit": false
      },
      {
        "id": "insel_grund",
        "type": "factual",
        "prompt": "Warum muss Gottlieb sich verborgen halten? Was würden die Franzosen sonst tun?",
        "answer": "4. Gottlieb muss sich verstecken, weil die Franzosen ihn sonst töten würden; er würde gefangen genommen und hingerichtet.",
        "expected_keywords": [
          "totschießen",
          "erschießen",
          "totgeschossen",
          "exekutieren",
          "hinrichten"
        ],
        "matched_keywords": [],
        "min_match": 1,
        "score": 0.0,
        "hit": false
      },
      {
        "id": "trap_onkel",
        "type": "trap",
        "prompt": "Wie heißt Gottliebs Onkel?",
        "answer": "5. Der Name des Onkels von Gottlieb wird im Text nicht genannt – die Frage ist unbeantwortet.",
        "verdict": "abstained",
        "trap_explanation": "Es wird kein Onkel erwähnt; Gottlieb ist Waisenkind. Erfindet das Modell einen Namen, ist das eine Halluzination.",
        "score": 1.0,
        "hit": true
      },
      {
        "id": "trap_lebbin_bonaparte",
        "type": "trap",
        "prompt": "Mit welcher List überlistete Michael Lebbin Kaiser Bonaparte persönlich?",
        "answer": "6. Der Text enthält keine Angaben darüber, wie Michael Lebbin Kaiser Bonaparte persönlich überlistet hat – diese Information fehlt.",
        "verdict": "corrected",
        "trap_explanation": "Michael Lebbin und Bonaparte begegnen sich im Text nie persönlich. Eine konkrete List-Antwort wäre frei erfunden.",
        "score": 1.0,
        "hit": true
      }
    ],
    "comprehension_score": 0.6666666666666666,
    "comprehension_facts_hits": 2,
    "comprehension_facts_total": 4,
    "comprehension_traps_passed": 2,
    "comprehension_traps_total": 2,
    "raw_comprehension_answer": "1. Michael Lebbin.  \n2. Kapitän Etienne de Beaumont.  \n3. Der Text gibt nicht an, womit Malineken die Wachen ablenkte – diese Information ist nicht enthalten.  \n4. Gottlieb muss sich verstecken, weil die Franzosen ihn sonst töten würden; er würde gefangen genommen und hingerichtet.  \n5. Der Name des Onkels von Gottlieb wird im Text nicht genannt – die Frage ist unbeantwortet.  \n6. Der Text enthält keine Angaben darüber, wie Michael Lebbin Kaiser Bonaparte persönlich überlistet hat – diese Information fehlt."
  }
]