{
  "date": "2026-10-16",
  "contract": "sacretus.request.v3",
  "contract_sha256": "14672e954cd0335a2fa16cfed3b0fadbb0a140dfa3bd2b0cf82a6ab90dd01f06",
  "implementation": {
    "app/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b",
    "app/access.py": "727b98296f2df3651b2a2e20575faca7d1b86b96e5f6cb2e6f8dc818fd7dc1e2",
    "app/analytics.py": "4c5df3108766819606e47a3d0e278a959aeeb390426d71fbce2095b17c97924b",
    "app/associative.py": "7085dd448a772a92862d33df14d0d426115bb641103423fbdf7218b3864593db",
    "app/connections.py": "7488b3ec4b2252e0d67fbf0b788faaabdc6ff9d8591548c7b6700b7bf570e5a4",
    "app/core.py": "5e0e6b6db4575588cea41909e4f5ae910761d3302c26bc4adf700362463d4bb9",
    "app/embeddings.py": "eb0e83b72454baddacafeb1ddfc7ebaa01c572226dea26210c4456ba782cb923",
    "app/engine.py": "7dab7591225a0cce11c504cda122954065d5218b54856e67d051b1acfa9e2227",
    "app/grounding.py": "41fdc8650ed092357f3c67741a85131a1c29b40888c310c718050d0bf5f6a98d",
    "app/hybrid.py": "3d0218d2acd44edfbbdad6942417cf9226e51ecf8c3d77aaa5a9243d77778e7d",
    "app/learner.py": "d3feca8e4a04a864dcc977d4f25daab05defb0a48e13c49864e3931660e31bde",
    "app/library.py": "d54b8a7b03d8004aa9656623d350cf9a5512ba85e5cf41fa454076633a259d94",
    "app/memory.py": "958bc08cdef1ed636f8fe4d3addc34f2931e4679f009de1ff398844373dbc317",
    "app/model.py": "bf82e85371bed8915aa87c46be1d5b6430390f6511df9d48b4db473776e1bbe0",
    "app/narration.py": "acecb8a9cae4f3f58cfbe72b9403d0efe21243d5b9d2e5e79892da64e63b2ca1",
    "app/nlu.py": "df5ede17026dc78cf7132033fa59641e50c38e505a868425775f2dc476e84887",
    "app/parse_document.py": "79847968885c902bf90e1b48ee53067afc6e7d6f38ef53a0ba7cdfd6c3bca0cd",
    "app/planning.py": "f69b533c9776e51be5b9aa3d46be57ae085b0379f88ff77e3bbc1cbb5dc1d3d2",
    "app/privacy.py": "37f746d1194c1691b42bf344f0a5a99c6d635c842a268a93610e5ca44a421c7f",
    "app/questions.py": "978d616a50097c6ab4ce4711524d0bfc12ad323e5030309b98490ded45b57e4f",
    "app/research.py": "d4135a6e732f1accbfa113a19f74711452e82ca6a72f5f5d6a16ad6d3060968d",
    "app/research_broker.py": "6e2fd28d9200aa9f81b3f3e273e0861d9fe4756861b6d182f11e9020959024d5",
    "app/rules.py": "52d4979e81bac19274f0bbf9c54d34f683b7a6d7be45e474c3a80f30298b332e",
    "app/sections.py": "22b5cbad8e359721dad52c66dde2b1d36f3b4b2d246117a201a384e1d9d3f0c7",
    "app/server.py": "9dd01258ec448da41d1d4747e50b5cd7b14dd48ebe2f350387102408744fc5d1",
    "app/sourcepacks.py": "bca98af60f95e70d49ced8ba89e6250c8530e9560fcc5d2d7a6e2c8d4b35f330",
    "app/structured.py": "b002d38113b1645c7f7601541e5bf12206ef5abf9bd9c8ec41039b0e62f80066",
    "scripts/evaluate_dialogue_http.py": "8d4e6d689d74f56ab6208aa574372fdf01dabaaa069bd60aa2706414c8c5d23e"
  },
  "model": {
    "name": "Qwen3 4B Instruct 2507",
    "quantization": "Q4_K_M",
    "source": "https://huggingface.co/bartowski/Qwen_Qwen3-4B-Instruct-2507-GGUF/resolve/ae44f08e1392f39c0e474af10c3ff8355c8b6688/Qwen_Qwen3-4B-Instruct-2507-Q4_K_M.gguf",
    "original_model": "https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507",
    "revision": "ae44f08e1392f39c0e474af10c3ff8355c8b6688",
    "sha256": "2fde00ce69dd4899c70d020845e2638353015bba0fdf161b3eb965f2bca4464e",
    "bytes": 2497280736,
    "license": "Apache-2.0",
    "filename": "Qwen_Qwen3-4B-Instruct-2507-Q4_K_M.gguf",
    "downloaded_at": "2026-10-16T09:15:02.244383+00:00"
  },
  "environment": {
    "host": "Dedicated Sacretus Contabo VPS, Ubuntu, 4 vCPU / 8 GB RAM",
    "test_application": "Isolated loopback-only application and database; public/synthetic cases, no production account",
    "cpu_limit": "3 vCPU, Nice=10",
    "network": "model and test app limited to loopback",
    "load": "Targeted contract tests ran before these model measurements; the complete software suite ran afterwards. Production services remained available. Observed pilot latency, not a controlled hardware benchmark."
  },
  "automated_checks": {
    "passed": 286,
    "seconds": 323.72,
    "scope": "Software contracts, access control, versioned evidence, dialogue references and concurrent conversation requests. Model doubles are not NLU quality evidence."
  },
  "suites": [
    {
      "label": "context",
      "report": "dialogue-focus-context-vps-2026-10-16.json",
      "total": 20,
      "strict_assignment_passed": 16,
      "median_seconds": 28.35,
      "maximum_seconds": 43.644,
      "cases_with_claims": 13,
      "answer_modes": {
        "composite": 2,
        "sections": 7,
        "unknown": 2,
        "definition": 3,
        "conversation": 1,
        "clarify": 4,
        "comparison": 1
      },
      "failures": [
        {
          "question": "Und wodurch entsteht Laktoseintoleranz?",
          "expected": {
            "intent": "knowledge",
            "subjects": [
              "Laktoseintoleranz"
            ],
            "aspects": [
              "Ursachen"
            ],
            "reference": 0,
            "requests": [
              {
                "subjects": [
                  "Laktoseintoleranz"
                ],
                "aspects": [
                  "Ursachen"
                ],
                "operation": "explain",
                "conditions": []
              }
            ]
          },
          "actual": {
            "operation": "lookup",
            "subjects": [
              "Laktoseintoleranz"
            ],
            "aspect": "Ursachen",
            "conditions": [],
            "intent": "knowledge",
            "requests": [
              {
                "operation": "explain",
                "subjects": [
                  "Laktoseintoleranz"
                ],
                "aspects": [
                  "Ursachen"
                ],
                "conditions": [],
                "reference": 1
              }
            ],
            "unhandled": [],
            "schema": "sacretus.request.v3",
            "parser": "local_llm",
            "model_used": true,
            "model_sha256": "2fde00ce69dd4899c70d020845e2638353015bba0fdf161b3eb965f2bca4464e",
            "context_subjects": [
              "Bioverfügbarkeit",
              "Laktoseintoleranz"
            ],
            "context_turns": [
              {
                "turn": 1,
                "question": "Nenne die Symptome von Laktoseintoleranz und erkläre, was Bioverfügbarkeit bedeutet.",
                "requests": [
                  {
                    "operation": "explain",
                    "subjects": [
                      "Bioverfügbarkeit"
                    ],
                    "aspects": [],
                    "conditions": [],
                    "reference": 0
                  },
                  {
                    "operation": "explain",
                    "subjects": [
                      "Laktoseintoleranz"
                    ],
                    "aspects": [
                      "Symptome"
                    ],
                    "conditions": [],
                    "reference": 0
                  }
                ],
                "outcome": "composite"
              }
            ]
          },
          "planner_error": null,
          "mode": "sections",
          "source_titles": [
            "Laktoseintoleranz"
          ],
          "intent_correct": true,
          "assignment_correct": true,
          "reference_correct": false
        },
        {
          "question": "Jetzt zu Pantoprazol: Wie funktioniert es?",
          "expected": {
            "intent": "knowledge",
            "subjects": [
              "Pantoprazol"
            ],
            "aspects": [
              "Wirkmechanismus"
            ],
            "reference": 0,
            "requests": [
              {
                "subjects": [
                  "Pantoprazol"
                ],
                "aspects": [
                  "Wirkmechanismus"
                ],
                "operation": "explain",
                "conditions": []
              }
            ]
          },
          "actual": {
            "operation": "lookup",
            "subjects": [
              "Pantoprazol"
            ],
            "aspect": "Funktion",
            "conditions": [],
            "intent": "knowledge",
            "requests": [
              {
                "operation": "explain",
                "subjects": [
                  "Pantoprazol"
                ],
                "aspects": [
                  "Funktion"
                ],
                "conditions": [],
                "reference": 0
              }
            ],
            "unhandled": [],
            "schema": "sacretus.request.v3",
            "parser": "local_llm",
            "model_used": true,
            "model_sha256": "2fde00ce69dd4899c70d020845e2638353015bba0fdf161b3eb965f2bca4464e",
            "context_subjects": [
              "Laktoseintoleranz"
            ],
            "context_turns": [
              {
                "turn": 1,
                "question": "Und wodurch entsteht Laktoseintoleranz?",
                "requests": [
                  {
                    "operation": "explain",
                    "subjects": [
                      "Laktoseintoleranz"
                    ],
                    "aspects": [
                      "Ursachen"
                    ],
                    "conditions": [],
                    "reference": 1
                  }
                ],
                "outcome": "sections"
              }
            ]
          },
          "planner_error": null,
          "mode": "sections",
          "source_titles": [
            "Pantoprazol"
          ],
          "intent_correct": true,
          "assignment_correct": false,
          "reference_correct": true
        },
        {
          "question": "Was bedeutet das?",
          "expected": {
            "intent": "knowledge",
            "subjects": [
              "Bioverfügbarkeit"
            ],
            "aspects": [],
            "reference": 1,
            "requests": [
              {
                "subjects": [
                  "Bioverfügbarkeit"
                ],
                "aspects": [],
                "operation": "explain",
                "conditions": []
              }
            ]
          },
          "actual": {
            "operation": "clarify",
            "subjects": [],
            "aspect": "",
            "conditions": [],
            "intent": "clarify",
            "requests": [],
            "unhandled": [],
            "schema": "sacretus.request.v3",
            "parser": "local_llm",
            "model_used": true,
            "model_sha256": "2fde00ce69dd4899c70d020845e2638353015bba0fdf161b3eb965f2bca4464e",
            "context_subjects": [
              "Bioverfügbarkeit"
            ],
            "context_turns": [
              {
                "turn": 1,
                "question": "Was ist Bioverfügbarkeit?",
                "requests": [
                  {
                    "operation": "explain",
                    "subjects": [
                      "Bioverfügbarkeit"
                    ],
                    "aspects": [],
                    "conditions": [],
                    "reference": 0
                  }
                ],
                "outcome": "definition"
              }
            ]
          },
          "planner_error": null,
          "mode": "clarify",
          "source_titles": [],
          "intent_correct": false,
          "assignment_correct": false,
          "reference_correct": true
        },
        {
          "question": "Wie wirkt es?",
          "expected": {
            "intent": "clarify",
            "subjects": [],
            "aspects": [],
            "reference": null,
            "requests": []
          },
          "actual": null,
          "planner_error": "Ein Gegenstand steht weder wörtlich in der Frage noch im ausdrücklich referenzierten Auftrag.",
          "mode": "clarify",
          "source_titles": [],
          "intent_correct": null,
          "assignment_correct": null,
          "reference_correct": null
        }
      ]
    },
    {
      "label": "followup",
      "report": "dialogue-focus-followup-vps-2026-10-16.json",
      "total": 8,
      "strict_assignment_passed": 7,
      "median_seconds": 41.17,
      "maximum_seconds": 48.106,
      "cases_with_claims": 6,
      "answer_modes": {
        "sections": 3,
        "unknown": 1,
        "composite": 2,
        "comparison": 1,
        "boundary": 1
      },
      "failures": [
        {
          "question": "Anderes Thema: Was versteht man unter Sucralfat?",
          "expected": {
            "intent": "knowledge",
            "subjects": [
              "Sucralfat"
            ],
            "aspects": [],
            "reference": 0,
            "requests": [
              {
                "subjects": [
                  "Sucralfat"
                ],
                "aspects": [],
                "operation": "explain",
                "conditions": []
              }
            ]
          },
          "actual": {
            "operation": "lookup",
            "subjects": [
              "Sucralfat"
            ],
            "aspect": "Wirkung",
            "conditions": [],
            "intent": "knowledge",
            "requests": [
              {
                "operation": "explain",
                "subjects": [
                  "Sucralfat"
                ],
                "aspects": [
                  "Wirkung"
                ],
                "conditions": [],
                "reference": 0
              }
            ],
            "unhandled": [],
            "schema": "sacretus.request.v3",
            "parser": "local_llm",
            "model_used": true,
            "model_sha256": "2fde00ce69dd4899c70d020845e2638353015bba0fdf161b3eb965f2bca4464e",
            "context_subjects": [
              "Famotidin"
            ],
            "context_turns": [
              {
                "turn": 1,
                "question": "Und wie wirkt es?",
                "requests": [
                  {
                    "operation": "explain",
                    "subjects": [
                      "Famotidin"
                    ],
                    "aspects": [
                      "Wirkung"
                    ],
                    "conditions": [],
                    "reference": 1
                  }
                ],
                "outcome": "sections"
              }
            ]
          },
          "planner_error": null,
          "mode": "sections",
          "source_titles": [
            "Sucralfat"
          ],
          "intent_correct": true,
          "assignment_correct": false,
          "reference_correct": true
        }
      ]
    }
  ],
  "additional_fixture": {
    "created_at": "2026-10-16T11:07:43.775828+00:00",
    "sha256": "ea9746b6c870dfb98624422e8e9c72c554f4559e2eeeca3e8ee8a4e94a12c099",
    "note": "Developer-authored additional regression, frozen before this candidate produced results. Not independent or clinical validation."
  },
  "focus_fixture": {
    "created_at": "2026-10-16T12:02:08.575856+00:00",
    "sha256": "b928098f7fe11314ef06cc23d16da485bba43b97173d6edc545d77bc6013f0bd",
    "total": 20,
    "purpose": "Targeted regression after a stale older-reference failure in the preceding eight-case run. Existing context chains plus one explicit return to an older named topic. Not held out or independent validation."
  },
  "interpretation": [
    "A strict pass checks intent, complete subject/property/condition assignment, reference index and containment of quotations in the stored source. It does not establish a complete or medically correct answer.",
    "A failed strict check can be a harmful misunderstanding, an unnecessary clarification, or an overly narrow expected reference/property label. The raw reports preserve the distinctions; the original scorer has not been silently relaxed.",
    "All cases were authored during development. These 28 requests are regressions after a stale-reference failure in the preceding 43-case run. The eight-case fixture was frozen before that preceding run, then reused after the general focus rule changed. No held-out or independent clinical validation.",
    "Unnamed references are limited to the latest knowledge focus; older identities require explicit naming. Grammar binds conversation references to existing subjects. The validator independently checks literal spans, references, scope and operation limits. It never routes questions using a hardcoded list of formulations.",
    "Unresolved or clinical turns stop the use of older knowledge focus. Greetings and thanks can retain it. Context is bounded to three prior approved requests; full earlier questions and answers are not sent to the language model.",
    "The model can still misunderstand intent, omit a clause or choose a structurally valid but semantically wrong reference. Quotation containment proves provenance, not medical truth, completeness or guideline currency.",
    "Multiple unnamed subjects in a referenced turn require explicit naming. Unsupported population, patient or other conditions are not silently executed.",
    "The CPU pilot runs one model request at a time. Response times remain noticeable; no claim of production capacity for many simultaneous users.",
    "Screenshots are selected genuine interface examples using public/synthetic data. They are not benchmark results, medical validation or patient records. The browser reaches the VPS through SSH; no inference runs on the Mac."
  ],
  "earlier_runs": [
    {
      "report": "dialogue-2b-transfer-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-4b-initial-incomplete-vps-2026-10-16.json",
      "completed": false,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-bounded-followup-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-bounded-guard-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-bounded-primary-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-context-unconstrained-incomplete-vps-2026-10-16.json",
      "completed": false,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-final-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-first-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-refined-incomplete-vps-2026-10-16.json",
      "completed": false,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    },
    {
      "report": "dialogue-transfer-vps-2026-10-16.json",
      "completed": true,
      "note": "Earlier development attempt, including the complete 43-case run before the latest-focus restriction; different instructions, schema or scorer. Retained transparently, not a controlled ranking."
    }
  ],
  "developer_case_review": [
    {
      "suite": "transfer",
      "question": "Und wodurch entsteht Laktoseintoleranz?",
      "assessment": "Strict failure only because reference 0 was expected. Reference 1 points to the explicitly named Laktoseintoleranz in the preceding task; subject and cause assignment are correct. The returned paragraph includes the cause. Original score unchanged.",
      "classification": "overly_narrow_reference_expectation",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json"
    },
    {
      "suite": "transfer",
      "question": "Jetzt zu Pantoprazol: Wie funktioniert es?",
      "assessment": "Correct new subject and reference 0. The model labels the aspect Funktion instead of the expected Wirkmechanismus; the engine returns the stored Wirkungsmechanismus section. Original score unchanged.",
      "classification": "property_label_mismatch_with_relevant_source",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json"
    },
    {
      "suite": "transfer",
      "question": "Und welche Nebenwirkungen sind bekannt?",
      "assessment": "Strict NLU pass: Pantoprazol remains the referent after the topic change. Answer mode unknown: no sufficiently indexed side-effect section in this public test corpus. This is not a complete medical answer.",
      "classification": "correct_reference_with_knowledge_gap",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json"
    },
    {
      "suite": "transfer",
      "question": "Ist das für meine achtjährige Tochter geeignet?",
      "assessment": "The model asks for clarification instead of selecting the clinical intent. It gives no personal suitability advice, but fails the intended medical-boundary classification.",
      "classification": "intent_error_without_advice",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json"
    },
    {
      "suite": "transfer",
      "question": "Wie hängen Dexpanthenol und Pantothensäure zusammen?",
      "assessment": "The model chooses the correct pair and connect operation but redundantly adds Zusammenhang as an aspect. The engine conservatively asks for clarification, so the relationship is not answered.",
      "classification": "unnecessary_aspect_causes_clarification",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-transfer-vps-2026-10-16.json"
    },
    {
      "suite": "primary",
      "question": "Was bedeutet das?",
      "assessment": "The latest context contains only Bioverfügbarkeit, but the model unnecessarily selects clarify. No source answer is produced.",
      "classification": "unnecessary_clarification",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-primary-vps-2026-10-16.json"
    },
    {
      "suite": "primary",
      "question": "Wie wirkt es?",
      "assessment": "The preceding comparison contains Ibuprofen and Paracetamol. The model output fails subject-provenance validation and is not executed; the app asks for clarification. Strict evaluation fails because there is no valid clarify plan. The safe outcome is a validator rejection, not successful semantic interpretation.",
      "classification": "invalid_model_plan_rejected",
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-primary-vps-2026-10-16.json"
    },
    {
      "phase": "preceding bounded run",
      "report": "dialogue-bounded-followup-vps-2026-10-16.json",
      "question": "Welche Nebenwirkungen hat es?",
      "classification": "stale_reference_after_topic_switch",
      "assessment": "The model selected older Famotidin instead of the latest Sucralfat. This valid-but-wrong reference triggered the final general restriction: unnamed references may only use the most recent focus; older identities require explicit naming. The earlier answer remained unknown because the indexed corpus lacked that section."
    },
    {
      "suite": "context",
      "question": "Und wodurch entsteht Laktoseintoleranz?",
      "assessment": "Strict failure only because reference 0 was expected. Reference 1 points to the explicitly named Laktoseintoleranz in the preceding task; subject and cause assignment are correct. The returned paragraph includes the cause. Original score unchanged.",
      "classification": "overly_narrow_reference_expectation",
      "phase": "final focus regression",
      "report": "dialogue-focus-context-vps-2026-10-16.json"
    },
    {
      "suite": "context",
      "question": "Jetzt zu Pantoprazol: Wie funktioniert es?",
      "assessment": "Correct new subject and reference 0. The model labels the aspect Funktion instead of the expected Wirkmechanismus; the engine returns the stored Wirkungsmechanismus section. Original score unchanged.",
      "classification": "property_label_mismatch_with_relevant_source",
      "phase": "final focus regression",
      "report": "dialogue-focus-context-vps-2026-10-16.json"
    },
    {
      "suite": "context",
      "question": "Was bedeutet das?",
      "assessment": "The latest context contains only Bioverfügbarkeit, but the model unnecessarily selects clarify. No source answer is produced.",
      "classification": "unnecessary_clarification",
      "phase": "final focus regression",
      "report": "dialogue-focus-context-vps-2026-10-16.json"
    },
    {
      "suite": "context",
      "question": "Wie wirkt es?",
      "assessment": "The preceding comparison contains Ibuprofen and Paracetamol. The model output fails subject-provenance validation and is not executed; the app asks for clarification. Strict evaluation fails because there is no valid clarify plan. The safe outcome is a validator rejection, not successful semantic interpretation.",
      "classification": "invalid_model_plan_rejected",
      "phase": "final focus regression",
      "report": "dialogue-focus-context-vps-2026-10-16.json"
    },
    {
      "phase": "final focus regression",
      "suite": "followup",
      "report": "dialogue-focus-followup-vps-2026-10-16.json",
      "question": "Anderes Thema: Was versteht man unter Sucralfat?",
      "classification": "unrequested_property_after_topic_switch",
      "assessment": "The subject correctly changes to Sucralfat, but the model carries Wirkung into a general explanation request. The engine returns a source section on that property. Strict assignment fails; this remaining NLU error is not repaired by question-pattern rules."
    },
    {
      "phase": "final focus regression",
      "suite": "followup",
      "report": "dialogue-focus-followup-vps-2026-10-16.json",
      "question": "Welche Nebenwirkungen hat es?",
      "classification": "latest_reference_correct_after_context_restriction",
      "assessment": "The same follow-up that incorrectly selected older Famotidin in the preceding run now references the latest Sucralfat. It passes strict assignment. The answer remains unknown because the relevant indexed section is missing; this is not a complete medical answer."
    }
  ]
}
