[
  {
    "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": true
      },
      {
        "id": "smaragd",
        "depth_label": "10%",
        "depth_pct": 0.1,
        "expected_keywords": [
          "smaragdgrün",
          "Schlüssel",
          "Seriennummer",
          "7-Bravo-12"
        ],
        "hit": true
      },
      {
        "id": "nordstern_brigade",
        "depth_label": "15%",
        "depth_pct": 0.15,
        "expected_keywords": [
          "Nordstern-Brigade",
          "violetter"
        ],
        "hit": true
      },
      {
        "id": "katze_indigo",
        "depth_label": "25%",
        "depth_pct": 0.25,
        "expected_keywords": [
          "Indigo-Quark"
        ],
        "hit": true
      },
      {
        "id": "schiff_atlantis",
        "depth_label": "33%",
        "depth_pct": 0.33,
        "expected_keywords": [
          "Atlantis-Mira",
          "NL-7711",
          "142"
        ],
        "hit": true
      },
      {
        "id": "ehrenmitglied",
        "depth_label": "50%",
        "depth_pct": 0.5,
        "expected_keywords": [
          "Ehrenmitglied",
          "Aluminium-Gesellschaft",
          "Köln"
        ],
        "hit": true
      },
      {
        "id": "rezept_safran",
        "depth_label": "65%",
        "depth_pct": 0.65,
        "expected_keywords": [
          "Safran-Klops Margarethe",
          "7 Gramm|7 g",
          "3 Stunden|drei Stunden"
        ],
        "hit": true
      },
      {
        "id": "regentonne_42",
        "depth_label": "75%",
        "depth_pct": 0.75,
        "expected_keywords": [
          "Erbe von Onkel Walpurgis",
          "42-Lima"
        ],
        "hit": true
      },
      {
        "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": true
      }
    ],
    "hits": 10,
    "total": 10,
    "retrieval_score": 1.0,
    "summary_checks": [
      {
        "id": "sentence_count",
        "label": "3-5 Sätze",
        "passed": true,
        "detail": "3 Sätze gezählt"
      },
      {
        "id": "max_words",
        "label": "Höchstens 220 Wörter",
        "passed": true,
        "detail": "162 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": 3,
    "summary_word_count": 162,
    "summary_keyword_hits": 3,
    "summary_keyword_total": 4,
    "combined_score": 0.7,
    "raw_summary": "\n\n## Zusammenfassung\n\n**Hauptfiguren:** Gottlieb Lasso, ein 13-jähriger Waisenjunge und Schmiedelehrling; Malineken, ein neunjähriges Fischermaid; Michael Lebbin und seine Frau, die Gottlieb aufgenommen haben; Kapitän Etienne de Beaumont, ein französischer Offizier; Gräfin Barnewitz, die als \"Prinzessin vom See\" auftritt.\n\n**Schauplatz:** Der Blumentalwald bei Wriezen in der preußischen Mark, um 1806-1812 während der napoleonischen Besatzung.\n\n**Inhalt:** Die Geschichte erzählt von Gottlieb, der erfährt, dass französische Soldaten unter Kapitän de Beaumont 1806 seine Eltern in Finkenwalde ermordet haben. Als er bei der Warnung vor einem geheimen Waffentransport gefangen genommen wird, organisiert die Gräfin Barnewitz seine Befreiung und offenbart dem Kapitän, dass Gottlieb der Sohn seiner Opfer ist. Dies führt zu einer moralischen Krise des Kapitäns, der Gottlieb schließlich freilässt, während in Gottlieb selbst der Konflikt zwischen Rachedurst und christlicher Vergebung wächst.\n\n**Wichtigste Themen:** Der deutsche Widerstand gegen die französische Besatzung, der moralische Konflikt zwischen Rache und Vergebung, der Glaube als Quelle der Stärke, das Erwachsenwerden durch Trauma sowie Patriotismus und Opferbereitschaft für das Vaterland.",
    "raw_answer": "\n\n## Antworten:\n\n1. Ein blauer Ankerstein mit der Gravur 'Lübeck-1907' und der Inventarnummer A-318 lag im Schaufenster des Antiquitätenhändlers.\n\n2. Im Sommer 1893 verbarg der Schmied einen smaragdgrünen Schlüssel mit der Seriennummer 7-Bravo-12 unter dem Amboss.\n\n3. Hauptmann Friebusch erinnerte sich an die Nordstern-Brigade vom 9. Oktober, deren Standarte aus violetter Seide gefertigt war.\n\n4. Eine Katze namens Indigo-Quark wartete auf der Wiese hinter der Schmiede auf den Postboten.\n\n5. Das Frachtschiff 'Atlantis-Mira' (Reg-Nr. NL-7711) lud am 3. Mai 142 Säcke Gerste an Bord.\n\n6. Am 14. Februar 1894 wurde der Pfarrer von Wriezen zum Ehrenmitglied der Aluminium-Gesellschaft Köln ernannt.\n\n7. Im Hauskochbuch ist das Rezept für 'Safran-Klops Margarethe' mit genau 7 Gramm Safran und 3 Stunden Garzeit aufgeführt.\n\n8. Die Regentonne im Hof trug die kupferne Inschrift 'Erbe von Onkel Walpurgis, Charge 42-Lima'.\n\n9. Der im Quellcode-Kommentar erwähnte RUNTIME_TOKEN-Wert ist '7f4a2e91-marlin-2026'.\n\n10. Der TODO-Kommentar lautet \"Coriolis-Effekt im Pendel berücksichtigen\" und verweist auf ein Memo von Dr. Kühn vom 17.03.2024.",
    "approx_corpus_tokens": 120463,
    "error": "comprehension turn: timeout nach 780s (httpx: ReadTimeout)",
    "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": "",
        "expected_keywords": [
          "Lebbin"
        ],
        "matched_keywords": [],
        "min_match": 1,
        "score": 0.0,
        "hit": false
      },
      {
        "id": "kapitaen_eltern",
        "type": "factual",
        "prompt": "Wie heißt der französische Kapitän, der Gottliebs Eltern getötet hat?",
        "answer": "",
        "expected_keywords": [
          "Beaumont",
          "Etienne"
        ],
        "matched_keywords": [],
        "min_match": 1,
        "score": 0.0,
        "hit": false
      },
      {
        "id": "schluessel_ablenkung",
        "type": "factual",
        "prompt": "Womit lenkte Malineken die Wachen ab, um den Schlüssel zu entwenden?",
        "answer": "",
        "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": "",
        "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": "",
        "verdict": "fabricated",
        "trap_explanation": "Es wird kein Onkel erwähnt; Gottlieb ist Waisenkind. Erfindet das Modell einen Namen, ist das eine Halluzination.",
        "score": 0.0,
        "hit": false
      },
      {
        "id": "trap_lebbin_bonaparte",
        "type": "trap",
        "prompt": "Mit welcher List überlistete Michael Lebbin Kaiser Bonaparte persönlich?",
        "answer": "",
        "verdict": "fabricated",
        "trap_explanation": "Michael Lebbin und Bonaparte begegnen sich im Text nie persönlich. Eine konkrete List-Antwort wäre frei erfunden.",
        "score": 0.0,
        "hit": false
      }
    ],
    "comprehension_score": 0.0,
    "comprehension_facts_hits": 0,
    "comprehension_facts_total": 4,
    "comprehension_traps_passed": 0,
    "comprehension_traps_total": 2,
    "raw_comprehension_answer": ""
  }
]