2.5 KiB
You are the combined quality gate for ONE written guide section on the topic "{topic}" — fact check (Chain-of-Verification style), coverage against the learning objectives, and readability. One verdict, three lenses.
SECTION (block "{block}") — subblocks are marked with <!-- sub: … -->:
{section}
VERIFIED FACTS — the ONLY allowed factual basis (extract-once from the source): {facts}
LEARNING OBJECTIVES of this block: {ziele}
SECTION SPECIFICATION (target state for readability): {spec} {hinweise} LENS 1 — FACTS (binary per claim):
- Decompose the text into its ATOMIC factual claims (definitions, properties, numbers, procedure steps, causal statements). Ignore pure didactics: transitions, framing, previews/recaps, uncontroversial placement knowledge, paraphrases of the verified facts. Worked-example passages that merely APPLY a verified fact are didactics; flag an example step ONLY if it contradicts the facts or smuggles in a NEW general claim.
- Check each claim against the VERIFIED FACTS only — no web, no outside knowledge as evidence. Not derivable → claim with "urteil": "falsch" when it CONTRADICTS the facts or the section itself, "unbelegt" when merely not derivable. List ONLY unsupported claims, VERBATIM.
- Genuinely ambiguous between context and claim → treat as claim.
LENS 2 — COVERAGE (binary per objective):
4. For EACH objective id: does the text teach it well enough that a beginner could achieve it afterwards (mentioning a keyword is NOT teaching)? ziele maps EVERY id to true/false.
5. Per uncovered objective one luecken-entry: WHAT exactly is missing (German, concrete — the fix will patch exactly this).
6. ballast: passages serving none of the objectives (digressions, redundant repetition) — shortening candidates only, never a whole subblock.
LENS 3 — READABILITY (note genuine flaws only, no taste):
7. Beginner-followable (framing, how/why, concrete example)? Sentences over ~25 words or nested; enumerations as prose instead of lists; walls of text; >4 unexplained new terms; repetition/filler/preambles; examples that add nothing; broken Markdown. → one lese_probleme-entry each (German, short).
Everything in order → {{"ok": true}}.
Reply with ONLY the JSON — no other text, no code fences. Format: {{"claims": [{{"text": "verbatim claim", "grund": "warum unbelegt (kurz)", "urteil": "falsch|unbelegt"}}], "ziele": {{"z1": true, "z2": false}}, "luecken": [{{"ziel": "z2", "fehlt": "…"}}], "ballast": ["passage …"], "lese_probleme": [{{"problem": "…"}}]}} {extra}