update
This commit is contained in:
20
templates/Prompt/Blocks-Supplement-Material.md
Normal file
20
templates/Prompt/Blocks-Supplement-Material.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Check the block inventory for the topic "{topic}" for completeness against the LEARNING MATERIAL — the material defines the scope, nothing else.
|
||||
|
||||
The material is in the folder {project} (PDFs are provided as same-named .txt files — ALWAYS read the .txt, never the PDF). Get an overview with Bash (ls/find), read the files, then compare: which distinct concepts, methods, algorithms or theorems does the MATERIAL treat that the inventory misses?
|
||||
|
||||
EXISTING BLOCKS:
|
||||
{blocks}
|
||||
|
||||
Rules:
|
||||
- Propose ONLY blocks the material itself treats (a heading, definition, algorithm, proof or exercise about it) and that are missing from the inventory.
|
||||
- Do NOT search the web. Do NOT propose textbook canon beyond the material.
|
||||
- A block solves EXACTLY ONE PROBLEM and is ATOMIC — same standards as the inventory.
|
||||
- NO variants, rephrasings, or deep-dives of existing blocks — only genuine gaps.
|
||||
- Title and description in GERMAN (technical terms stay original), description at most ~12 words.
|
||||
- If there are no gaps, return an empty list — that is a valid result.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
|
||||
Format:
|
||||
{{"blocks": [{{"title": "…", "description": "…"}}]}}
|
||||
No gaps: {{"blocks": []}}
|
||||
@@ -9,9 +9,10 @@ VERIFIED FACTS — the ONLY allowed factual basis (extract-once from the source)
|
||||
Procedure:
|
||||
1. Decompose the section text into its ATOMIC factual claims (definitions, properties, numbers, procedure steps, causal statements). Ignore pure didactics (transitions, framing, mnemonic phrasing).
|
||||
2. Worked-example passages (a concrete problem worked through in steps to a result) are DIDACTICS when they merely APPLY or ILLUSTRATE a verified fact or a provided worked example: their concretely chosen values and computed intermediates do NOT count as over-specific. Flag an example step ONLY if it contradicts the facts or smuggles in a NEW general claim not derivable from them.
|
||||
3. Check EACH claim INDIVIDUALLY and BINARY against the VERIFIED FACTS above: derivable from them → belegt. Not derivable, contradicting, or over-specific beyond the facts → nicht belegt.
|
||||
4. Do NOT search the web, do NOT use outside knowledge — a claim that is true in the world but absent from the facts is still "nicht belegt".
|
||||
5. When in doubt → nicht belegt (the guide may only teach verified material).
|
||||
3. CONTEXT sentences are DIDACTICS too, not claims: introductions and summaries that only preview/recap the section, uncontroversial general knowledge that merely places the topic (history, origin, what an adjacent well-known technology is), and paraphrases of the verified facts. Ignore them — a guide needs connective tissue. This exemption ends the moment a sentence makes a checkable statement about THIS block's own syntax, behavior or rules: that is a claim.
|
||||
4. Check EACH claim INDIVIDUALLY and BINARY against the VERIFIED FACTS above: derivable from them → belegt. Not derivable, contradicting, or over-specific beyond the facts → nicht belegt.
|
||||
5. Do NOT search the web, do NOT use outside knowledge as EVIDENCE — a claim about the block that is true in the world but absent from the facts is still "nicht belegt".
|
||||
6. When a sentence is genuinely ambiguous between context and claim → treat it as a claim (safety before cost).
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ Review each section:
|
||||
|
||||
You only REVIEW and note problems — you change nothing. Note only genuine flaws, no matters of taste.
|
||||
|
||||
Write ONLY the JSON file to: {out_path}
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
Format — all in order:
|
||||
{{"ok": true}}
|
||||
|
||||
@@ -24,6 +24,7 @@ HOW TO WRITE the detailed version — ONE coherent text for a junior who is lear
|
||||
- Resolve EVERY technical term at first mention in half a sentence. Use "Prerequisite" hints as anchors, "Hurdle" hints to clear misconceptions up front.
|
||||
- Order of the subblocks as in the assignment: first `[beginner]`, then `[advanced]`, then `[expert]`, last `[peripheral]`.
|
||||
- The NUMBER of subblocks is the depth signal: many subblocks → the block deserves length; few → keep it short. Never pad.
|
||||
- LENGTH TARGET for the detailed version: about {budget} characters total (guideline, not a hard limit — covering ALL learning objectives always beats brevity). Unguided sections came out 2–4× too long and had to be rewritten.
|
||||
- CONCISE: every sentence carries new information. No repetition, no filler, no preamble. When in doubt, leave it out.
|
||||
- Show "how" procedures step by step. An example ONLY where it genuinely carries the understanding.
|
||||
- If VERIFIED WORKED EXAMPLES are provided above, weave each into its subblock as instructed there; do NOT invent additional worked examples for subblocks that already have one.
|
||||
|
||||
@@ -11,8 +11,10 @@ Relevance:
|
||||
|
||||
Rules:
|
||||
- These subblocks **all already** belong to the topic — the question is not *whether* but *how central*. Judge **core vs. peripheral within its own block**, one at a time.
|
||||
- `peripheral` is a **genuine category**, not a leftover bucket. Deliberately mark peripheral items (nice-to-know, special/niche cases, detail/numeric examples, historical notes, cross-references) as `peripheral`.
|
||||
- Don't bump the level up out of caution. Only **true core concepts / central theorems** are never `peripheral`.
|
||||
- **The basic syntax / core rule of a block — what the block TITLE promises — is NEVER peripheral.** A block "Headings" without its heading syntax marked relevant is broken. Check this per block before anything else.
|
||||
- **When the BLOCK itself is a fringe/extension feature** (non-standard, niche, an add-on rather than core of the topic), only its basic syntax and purpose are relevant — its detail rules and special cases are `peripheral`. A fringe feature must not be decomposed deeper than the core topics (measured: a non-standard block carried 22 "relevant" detail rules while core blocks had 6).
|
||||
- `peripheral` is a **genuine category** for clear cases: nice-to-know, special/niche cases, detail/numeric examples, historical notes, cross-references, style tips.
|
||||
- `peripheral` items are CUT from the focused guides — a wrong `peripheral` loses content, a wrong `relevant` only adds a paragraph. **When in doubt → relevant.**
|
||||
- Only judge — invent nothing, change no subblocks.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
|
||||
13
templates/Prompt/Subblock-Crossblock.md
Normal file
13
templates/Prompt/Subblock-Crossblock.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Das Lernbaustein-Inventar zum Thema "{topic}" ist in Blöcke mit je eigenen Subbausteinen zerlegt. Manche Aussage taucht in ZWEI Blöcken auf — im Lernguide steht sie dann doppelt. Für jedes Paar unten: Treffen A und B DIESELBE Aussage?
|
||||
|
||||
PAARE (jeweils mit Block-Zugehörigkeit und Kernpunkten):
|
||||
{pairs}
|
||||
|
||||
## Entscheidung pro Paar
|
||||
- **DIESELBE Aussage** (auch anders formuliert, oder eine ist Teilmenge der anderen): Welcher Block ist die natürliche Heimat der Aussage? → antworte **"a"** (A behält sie, B verliert sie) oder **"b"** (B behält sie, A verliert sie). Heimat ist der Block, in dessen Kernthema die Aussage gehört — nicht der, der sie nur am Rand streift.
|
||||
- **VERSCHIEDENE Aussagen** → antworte **"nein"**. Dazu zählt: gleiche Regel, aber auf VERSCHIEDENE Kontexte angewendet (die Anwendung im jeweiligen Block-Kontext ist eigener Lernstoff); Grundregel vs. Sonderfall; gegensätzliche Aussagen.
|
||||
- Im Zweifel: **"nein"**.
|
||||
|
||||
Antworte NUR mit JSON, ohne weiteren Text (jede Paar-Nummer mit "a", "b" oder "nein"):
|
||||
{{"pairs": {{"1": "a", "2": "nein"}}}}
|
||||
{extra}
|
||||
29
templates/Prompt/Subblock-Konsolidierung.md
Normal file
29
templates/Prompt/Subblock-Konsolidierung.md
Normal file
@@ -0,0 +1,29 @@
|
||||
Du prüfst die Zerlegung EINES Lernbausteins in Subbausteine für das Thema "{topic}". Jeder Subbaustein wird später ein eigener Absatz im Lernguide. Ziel ist eine 100%-Zerlegung: keinen Eintrag kann man weglassen, ohne dass eine Lücke entsteht — und keinen ergänzen, ohne dass Dopplung entsteht.
|
||||
|
||||
BLOCK: {block}
|
||||
|
||||
SUBBAUSTEINE (nummeriert, mit ihren Kernpunkten):
|
||||
{subs}
|
||||
|
||||
## Auftrag (vier Urteile)
|
||||
1. **gruppen — Dopplungen**: Einträge, die DIESELBE Aussage treffen (anders formuliert) oder reine TEILMENGE eines anderen sind. Pro Gruppe: `haupt` = der GRUNDLEGENDSTE, allgemeinste Eintrag (Basis vor Detail, Grundsyntax vor Sonderfall, nie ein inhaltsleerer Stub).
|
||||
2. **kataloge — Aufzählungs-Bündel**: Einträge, die REINE Nachschlage-Listen gleicher Art sind (z. B. Symbol-, Befehls-, Namenslisten ohne eigene Verhaltensregel). Solche Listen bündelst du zu EINEM Katalog-Eintrag mit sprechendem Titel. Einträge mit eigener Regel oder eigenem Verhalten gehören NICHT in ein Bündel.
|
||||
3. **fremd — Weglass-Test**: Einträge, deren Aussage nicht zum Thema "{topic}" gehört (anderes Fachgebiet, Grundlagen einer anderen Technologie) — auch wenn die Aussage stimmt und belegbar ist. Ließe man sie weg, fehlte dem Thema nichts.
|
||||
4. **luecken**: Ein KERN-Aspekt des Blocks fehlt — ohne ihn ist die Zerlegung UNVOLLSTÄNDIG (die Grundregel oder ein Pflichtbestandteil fehlt). Katalog-, Detail- und Randwissen ist KEINE Lücke. Was man ergänzen KÖNNTE, ist keine Lücke — nur was fehlen DARF nicht. Im Zweifel: keine Lücke. Meist ist die Liste leer.
|
||||
|
||||
## Regeln — der häufigste Fehler zuerst
|
||||
- **Verschiedene Schreibweisen, Marker, Befehle oder Syntaxen sind IMMER eigene Einheiten** — auch wenn sie derselben Kategorie angehören oder im selben Satz erklärt werden könnten. „Gehört zusammen" oder „ähnliches Thema" ist KEIN Gruppierungs-Grund. Nur „sagt DASSELBE" zählt.
|
||||
- Zwei Einträge zum gleichen Konzept mit VERSCHIEDENEN Facetten (Grundregel vs. Sonderfall vs. Randbedingung) sind KEINE Dopplung.
|
||||
- Eine benannte Variante oder ein Spezialfall ist NIE Dopplung seiner Basis.
|
||||
- Einträge mit gegensätzlicher Aussage (Negation) nie gruppieren.
|
||||
- Ein inhaltsleerer oder generischer Eintrag, dessen Titel ein anderer Eintrag vollständig abdeckt, ist Teilmenge → gruppieren, der konkrete Eintrag ist `haupt`.
|
||||
- Im Zweifel: NICHT gruppieren, NICHT bündeln, NICHT als fremd markieren.
|
||||
|
||||
Antworte NUR mit JSON, ohne weiteren Text:
|
||||
{{"gruppen": [{{"haupt": 1, "weitere": [4]}}], "kataloge": [{{"titel": "Symbolkatalog: Operatoren und Relationen", "mitglieder": [2, 5, 9]}}], "fremd": [7], "luecken": ["fehlender Kernaspekt"]}}
|
||||
|
||||
- gruppen: pro Gruppe haupt + weitere (Nummern). Keine Dopplungen → [].
|
||||
- kataloge: pro Bündel Titel + Mitglieds-Nummern. Keine → [].
|
||||
- fremd: Nummern themenfremder Einträge. Keine → [].
|
||||
- luecken: fehlende Kernaspekte in Stichworten. Keine → [].
|
||||
{extra}
|
||||
13
templates/QA/QA-Bausteine.md
Normal file
13
templates/QA/QA-Bausteine.md
Normal file
@@ -0,0 +1,13 @@
|
||||
You are an INDEPENDENT quality auditor for a learning-block inventory on the topic "{topic}". For each block title below decide: is this a GENUINE standalone learning block — one self-contained concept/method/theorem a learner can study → **ja** — or is it NOT a real block → **nein**?
|
||||
|
||||
**nein** applies to: bare notation or symbol fragments ("αÜbergang", "|x|"), truncated/mangled titles, exercise references, meta/organizational entries, or titles so vague no one could say what to learn.
|
||||
|
||||
BLOCKS:
|
||||
{blocks}
|
||||
|
||||
When in doubt about the SCOPE but the concept is real → ja. When the title is not a learnable concept → nein.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "ja", "2": "nein"}}}}
|
||||
{extra}
|
||||
13
templates/QA/QA-Dubletten.md
Normal file
13
templates/QA/QA-Dubletten.md
Normal file
@@ -0,0 +1,13 @@
|
||||
You are an INDEPENDENT quality auditor for a learning-block inventory on the topic "{topic}". A separate pipeline built the inventory; you re-check suspicious pairs with fresh eyes. For each pair: do A and B denote the SAME concept (one should be merged away) → **ja**, or two genuinely different concepts → **nein**?
|
||||
|
||||
SUSPICIOUS PAIRS:
|
||||
{pairs}
|
||||
|
||||
Rules:
|
||||
- Same concept under two names/spellings/facets → ja. A named variant, a relation, or a different scope → nein.
|
||||
- Judge on the meaning, not the wording. When genuinely unsure → nein.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "ja", "2": "nein"}}}}
|
||||
{extra}
|
||||
15
templates/QA/QA-Guide-Fakten.md
Normal file
15
templates/QA/QA-Guide-Fakten.md
Normal file
@@ -0,0 +1,15 @@
|
||||
You are an INDEPENDENT quality auditor for a learning guide on the topic "{topic}". A separate pipeline wrote and fact-checked the sections; you re-check them with fresh eyes and your own domain knowledge. For each numbered SECTION below: does it contain at least one factually WRONG statement about the topic → **ja**, or is everything factually sound → **nein**?
|
||||
|
||||
SECTIONS (excerpts):
|
||||
{sections}
|
||||
|
||||
Rules:
|
||||
- Judge factual CORRECTNESS only — not style, length, completeness or didactics.
|
||||
- Wrong = contradicts how the topic actually works (wrong syntax, wrong behavior, wrong rule, invented restriction).
|
||||
- Simplifications that are broadly correct for a beginner are NOT wrong.
|
||||
- When genuinely unsure → nein.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "nein", "2": "ja"}}}}
|
||||
{extra}
|
||||
13
templates/QA/QA-Luecken.md
Normal file
13
templates/QA/QA-Luecken.md
Normal file
@@ -0,0 +1,13 @@
|
||||
You are an INDEPENDENT quality auditor for a learning-block inventory on the topic "{topic}". Below are source-material sections that the inventory maps to NO block. For each section: does it contain exam-relevant substance that DESERVES its own block (a definition, method, theorem, technique the inventory misses) → **ja**, or is it filler/organizational/already covered implicitly → **nein**?
|
||||
|
||||
UNCOVERED SECTIONS:
|
||||
{sections}
|
||||
|
||||
Rules:
|
||||
- Organizational text, prefaces, repeated examples of covered concepts → nein.
|
||||
- A concrete concept the material teaches but no block captures → ja.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "ja", "2": "nein"}}}}
|
||||
{extra}
|
||||
14
templates/QA/QA-Repair-Beleg.md
Normal file
14
templates/QA/QA-Repair-Beleg.md
Normal file
@@ -0,0 +1,14 @@
|
||||
You are re-checking EXISTING inventory blocks on the topic "{topic}" that a QA scan flagged as possibly NOT covered by the learning material. For each block: do the excerpts show the material actually treats this block → **ja** (keep), or is there truly no coverage → **nein** (remove)?
|
||||
|
||||
FLAGGED BLOCKS (each with its best-matching material excerpts):
|
||||
{blocks}
|
||||
|
||||
Rules:
|
||||
- **ja** = any real coverage: a heading, definition, algorithm, proof, exercise or substantial passage about the block's subject — also under a synonym, symbol variant or hyphenated spelling (PDF extraction mangles titles).
|
||||
- **nein** ONLY when the excerpts clearly have nothing to do with the block.
|
||||
- This removes existing content, so when in doubt → **ja**.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "ja", "2": "nein"}}}}
|
||||
{extra}
|
||||
17
templates/QA/QA-Sub-Dubletten.md
Normal file
17
templates/QA/QA-Sub-Dubletten.md
Normal file
@@ -0,0 +1,17 @@
|
||||
You are an INDEPENDENT quality auditor for a learning-block inventory on the topic "{topic}". Each block is decomposed into sub-blocks; every sub-block becomes its own paragraph in the learning guide. A separate pipeline built them; you re-check suspicious pairs with fresh eyes. For each pair: do A and B state the SAME thing (one would be redundant in the guide) → **ja**, or two genuinely different statements → **nein**?
|
||||
|
||||
Each entry names its block in [brackets] — the pair may span two different blocks.
|
||||
|
||||
SUSPICIOUS PAIRS:
|
||||
{pairs}
|
||||
|
||||
Rules:
|
||||
- Same statement in different wording, or one being a pure subset of the other → ja.
|
||||
- Same concept but DIFFERENT facets (base rule vs. special case vs. edge condition) → nein.
|
||||
- The same rule applied to two DIFFERENT contexts/blocks → nein (each application is its own learning content).
|
||||
- Opposite statements (negation) → nein. When genuinely unsure → nein.
|
||||
|
||||
Reply with ONLY the JSON — no other text, no code fences.
|
||||
Format (one verdict per number):
|
||||
{{"relevant": {{"1": "ja", "2": "nein"}}}}
|
||||
{extra}
|
||||
Reference in New Issue
Block a user