# Pipeline-Graph creator3. Stufen strikt seriell; innerhalb einer Stufe fließt # der Graph frei. Gates schließen ihre Stufe ab (deterministisch, hart). # kanten.art: normal (DAG-Pflicht) | reparatur | ruecklauf (nur von Gates). stufen: [korpus, inventar, struktur, guide, montage] knoten: - {id: recherche_plan, typ: llm, worker: korpus.recherche_plan, stufe: korpus, titel: "Recherche-Plan", beschreibung: "Plant die Suchanfragen zum Thema", skills: [planer, deutsch-praezise, recherche-plan], max_parallel: 16, timeout: [60, 20]} - {id: suche, typ: system, worker: suche.suchen, stufe: korpus, max_parallel: 4, titel: "Websuche", beschreibung: "Sucht Quellen im Web"} - {id: laden, typ: system, worker: laden.laden, stufe: korpus, max_parallel: 4, titel: "Quellen laden", beschreibung: "Lädt Quellen, friert den Text ein, beurteilt Nützlichkeit", extra_skills: {urteil: [richter, deutsch-praezise, quellen-urteil]}} - {id: soll_extraktion, typ: llm, worker: korpus.soll_extraktion, stufe: korpus, titel: "Soll-Punkte sammeln", beschreibung: "Zieht aus jeder Quelle, was der Guide abdecken soll", skills: [extraktor, deutsch-praezise, soll-extraktion], max_parallel: 16, klasse: mittel, timeout: [180, 60]} - {id: soll_konsens, typ: llm, worker: korpus.soll_konsens, stufe: korpus, titel: "Soll-Konsens", beschreibung: "Fasst gleiche Punkte zusammen, bestätigt wörtlich belegte", skills: [richter, deutsch-praezise, soll-konsens], barriere: true, timeout: [240, 2]} - {id: gate_korpus, typ: gate, worker: korpus.gate, stufe: korpus, titel: "Gate Korpus", beschreibung: "Prüft Quellen und Soll, lässt sonst nachsuchen", runden_max: 4} - {id: atom_extraktion, typ: llm, worker: inventar.atom_extraktion, stufe: inventar, titel: "Atome extrahieren", beschreibung: "Holt die kleinsten Lerneinheiten aus den Quellen", skills: [extraktor, deutsch-praezise, atom-extraktion], max_parallel: 16, klasse: mittel, timeout: [240, 60]} - {id: anker_fix, typ: llm, worker: inventar.anker_fix, stufe: inventar, titel: "Anker reparieren", beschreibung: "Repariert Zitate, die nicht zur Quelle passen", skills: [extraktor, deutsch-praezise, anker-fix], max_parallel: 16, timeout: [180, 4]} - {id: dedup, typ: llm, worker: dedup.dedup, stufe: inventar, titel: "Dubletten-Urteil", beschreibung: "Findet doppelte Atome und verschmilzt sie", skills: [richter, deutsch-praezise, dedup-urteil], barriere: true, klasse: kurz, timeout: [120, 8]} - {id: soll_zuordnung, typ: llm, worker: inventar.soll_zuordnung, stufe: inventar, titel: "Soll-Zuordnung", beschreibung: "Ordnet jedes Atom einem Soll-Punkt zu", skills: [richter, deutsch-praezise, soll-zuordnung], max_parallel: 16, klasse: kurz, timeout: [120, 3]} - {id: luecke, typ: llm, worker: inventar.luecke, stufe: inventar, titel: "Lücken füllen", beschreibung: "Extrahiert nach, wo Soll-Punkte ohne Atom sind", skills: [extraktor, deutsch-praezise, luecke-nachextraktion], max_parallel: 16, klasse: mittel, timeout: [180, 45], extra_skills: {freispruch: [richter, deutsch-praezise, luecke-freispruch]}} - {id: verdichtung, typ: llm, worker: inventar.verdichtung, stufe: inventar, titel: "Verdichtung", beschreibung: "Verschmilzt Splitter-Atome zum minimalen Set", skills: [richter, deutsch-praezise, verdichtung], max_parallel: 16, klasse: kurz, timeout: [180, 0]} - {id: gate_inventar, typ: gate, worker: inventar.gate, stufe: inventar, titel: "Gate Atome", beschreibung: "Prüft Abdeckung und Dubletten, stößt Reparaturen an", runden_max: 8} - {id: lernziele, typ: llm, worker: struktur.lernziele, stufe: struktur, titel: "Lernziele", beschreibung: "Formuliert Lernziele aus den Atomen", skills: [planer, deutsch-praezise, lernziele], max_parallel: 16, klasse: kurz, timeout: [120, 3]} - {id: bausteine, typ: llm, worker: struktur.bausteine, stufe: struktur, titel: "Bausteine", beschreibung: "Bündelt Atome je Lernziel zu Bausteinen", skills: [planer, deutsch-praezise, bausteine], max_parallel: 16, timeout: [120, 3]} - {id: ordnung, typ: llm, worker: struktur.ordnung, stufe: struktur, titel: "Reihenfolge", beschreibung: "Bringt Bausteine in Lernreihenfolge und Kapitel", skills: [planer, deutsch-praezise, ordnung], barriere: true, timeout: [180, 3], extra_skills: {schnitt: [planer, deutsch-praezise, themen-schnitt]}} - {id: gate_struktur, typ: gate, worker: struktur.gate, stufe: struktur, titel: "Gate Struktur", beschreibung: "Prüft die Gliederung, lässt Bausteine nachbessern"} - {id: writer, typ: llm, worker: guide.writer, stufe: guide, titel: "Schreiben", beschreibung: "Schreibt eine Guide-Section je Baustein", skills: [autor, deutsch-praezise, guide-lesbarkeit, darstellung, writer], max_parallel: 16, timeout: [420, 0]} - {id: kapitel_intro, typ: llm, worker: guide.kapitel_intro, stufe: guide, max_parallel: 16, titel: "Kapitel-Intros", beschreibung: "Schreibt die Einleitung je Kapitel", skills: [autor, deutsch-praezise, kapitel-intro], timeout: [90, 0]} - {id: det_pruefung, typ: system, worker: guide.det_pruefung, stufe: guide, max_parallel: 8, titel: "Format-Prüfung", beschreibung: "Prüft Sections deterministisch auf Regelverstöße"} - {id: llm_pruefung, typ: llm, worker: guide.llm_pruefung, stufe: guide, titel: "Inhalts-Prüfung", beschreibung: "Prüft Sections auf Fehler gegen die Quellen-Anker", skills: [richter, deutsch-praezise, guide-pruefung], max_parallel: 16, klasse: mittel, timeout: [240, 60]} - {id: fix, typ: llm, worker: guide.fix, stufe: guide, titel: "Korrektur", beschreibung: "Behebt gefundene Befunde in den Sections", skills: [autor, deutsch-praezise, guide-lesbarkeit, darstellung, guide-fix], max_parallel: 16, timeout: [300, 0], extra_skills: {klaerung: [richter, deutsch-praezise, klaerung]}} - {id: redundanz, typ: llm, worker: redundanz.pruefen, stufe: guide, titel: "Dopplungs-Check", beschreibung: "Sucht Wiederholungen zwischen den Sections", skills: [richter, deutsch-praezise, redundanz-urteil], barriere: true, klasse: kurz, timeout: [120, 8]} - {id: lektorat, typ: llm, worker: guide.lektorat, stufe: guide, titel: "Lektorat", beschreibung: "Liest den ganzen Guide: Dopplungen, Splitter, zähe Übergänge", skills: [richter, deutsch-praezise, lektorat], max_parallel: 1, timeout: [300, 0]} - {id: gate_guide, typ: gate, worker: guide.gate, stufe: guide, titel: "Gate Guide", beschreibung: "Prüft den Text, stößt Fixes und Re-Prüfung an", runden_max: 12} - {id: montage, typ: system, worker: montage.montieren, stufe: montage, titel: "Montage", beschreibung: "Fügt alle Teile zum fertigen Guide zusammen"} kanten: - {von: recherche_plan, nach: suche, art: normal} - {von: suche, nach: laden, art: normal} - {von: laden, nach: soll_extraktion, art: normal} - {von: laden, nach: atom_extraktion, art: normal} # nur zweck=luecke-Quellen - {von: soll_extraktion, nach: soll_konsens, art: normal} - {von: soll_konsens, nach: gate_korpus, art: normal} - {von: gate_korpus, nach: atom_extraktion, art: normal} - {von: atom_extraktion, nach: anker_fix, art: normal} - {von: anker_fix, nach: dedup, art: normal} - {von: dedup, nach: soll_zuordnung, art: normal} - {von: soll_zuordnung, nach: luecke, art: normal} - {von: luecke, nach: gate_inventar, art: normal} - {von: soll_zuordnung, nach: gate_inventar, art: normal} - {von: gate_inventar, nach: lernziele, art: normal} - {von: lernziele, nach: bausteine, art: normal} - {von: bausteine, nach: ordnung, art: normal} - {von: ordnung, nach: gate_struktur, art: normal} - {von: gate_struktur, nach: writer, art: normal} - {von: gate_struktur, nach: kapitel_intro, art: normal} - {von: writer, nach: det_pruefung, art: normal} - {von: det_pruefung, nach: llm_pruefung, art: normal} - {von: llm_pruefung, nach: fix, art: normal} - {von: fix, nach: redundanz, art: normal} - {von: llm_pruefung, nach: redundanz, art: normal} - {von: kapitel_intro, nach: redundanz, art: normal} - {von: redundanz, nach: lektorat, art: normal} - {von: redundanz, nach: gate_guide, art: normal} - {von: gate_guide, nach: montage, art: normal} - {von: gate_korpus, nach: recherche_plan, art: ruecklauf} # neue Runde, neue Lenses - {von: gate_inventar, nach: suche, art: ruecklauf} # Web-Nachrecherche für Lücken - {von: gate_korpus, nach: soll_konsens, art: reparatur} # Beleg-Nachsuche - {von: gate_inventar, nach: anker_fix, art: reparatur} - {von: gate_inventar, nach: luecke, art: reparatur} - {von: gate_inventar, nach: verdichtung, art: reparatur} # Minimalität: Mini-Atome fusionieren - {von: gate_inventar, nach: dedup, art: reparatur} # 2. Dedup-Runde für Lücken-Atome - {von: gate_struktur, nach: bausteine, art: reparatur} - {von: gate_guide, nach: fix, art: reparatur} - {von: gate_guide, nach: writer, art: reparatur} # Neuschreiben bei kaputten Markern - {von: gate_guide, nach: det_pruefung, art: reparatur} # Re-Prüfung gefixter Sections - {von: gate_guide, nach: redundanz, art: reparatur}