Synthese nimmt existierende Wiki-Seiten und vertieft sie durch Vergleich von Quellen,
Ausarbeitung von Formeln, Markierung von Widerspruechen und Validierung.
Mehrere Core-Gates sind aktiv; Phase 0.5 liest Original-PDFs (Gate 9 ist BLOCKIEREND).
Gate
Durchsetzung
Wie
Bedingung
KEIN-BUCH-OHNE-VOLLSTAENDIGE-LESUNG
⚪ N/A
Synthese liest Kapitel, nicht ganze Buecher
—
KEIN-INHALT-OHNE-SEITENANGABE
✅ Aktiv
Phase 1 + 2 setzen Seitenangaben bei jeden Aussage
—
KEIN-ZAHLENWERT-OHNE-QUELLE
✅ Aktiv
Phase 1 recherchiert + vergleicht Zahlenwerte
—
KEIN-NORMBEZUG-OHNE-ABSCHNITT
✅ Aktiv
Phase 1 identifiziert Norm-Paragraphen exakt
norm-Typ aktiv
KEINE-KONZEPTSEITE-OHNE-QUERVERWEIS
⚪ N/A
Synthese traegt zu Querverweisen bei, setzt sie nicht
—
KEIN-SCHLAGWORT-OHNE-VOKABULAR
✅ Aktiv
Phase 2e: Worker schreibt Vokabular + patcht Quellenseiten, Gate 3 Part D verifiziert
—
KEIN-UPDATE-OHNE-DIFF
✅ Aktiv
Phase 2 dokumentiert Diffs zwischen Alt + Neu
—
KEIN-WIDERSPRUCH-OHNE-MARKIERUNG
✅ Aktiv
Phase 2 markiert ALLE Widersprueche mit [WIDERSPRUCH]
—
KEINE-WIKI-AENDERUNG-OHNE-QUELLENLESUNG
✅ Aktiv
Wiki-Quellenseiten als Primaerquelle (4-Gate-geprueft), PDF-Spot-Check bei Widerspruechen/Unklarheiten
DU (der Orchestrator, der diesen Skill ausfuehrt) hast ein Kontextfenster:
- **Opus:** 1.000.000 Tokens
- **Sonnet:** 200.000 Tokens
Pruefe dein eigenes Modell (model in der Session-Info).
94 Quellenseiten × 55 Zeilen ≈ 150K Tokens. Das passt in Opus locker,
in Sonnet wird es knapp — dann Zusammenfassungen kuerzen (30 statt 50 Zeilen).
Regeln:
Read-Tool liest max 2000 Zeilen pro Aufruf — mehrere Aufrufe machen.
Alle Quellen-Zusammenfassungen INLINE in den Worker-Prompt einfuegen.
KEIN Ausweichen auf /tmp-Dateien oder "Worker liest selbst".
KEIN "das ist zu gross" — RECHNE NACH: Zeilen × 1.3 ≈ Tokens.
Split NUR wenn Quellenmaterial > 700K Tokens (Opus) oder > 150K (Sonnet).
Der WORKER hat IMMER 1M Tokens (laeuft auf Opus).
Phasen
Phase 0.0: Konzept-Discovery auswerten
Primaere Quelle: Lies _konzept-reife.md (YAML-Frontmatter parsen)
→ Liste aller Kandidaten mit Status (unreif/reif/erstellt)
Rueckwaertskompatibilitaet: Scanne Quellenseiten-Frontmatter:
grep "konzept-kandidaten:" wiki/quellen/*.md
→ Kandidaten die NICHT in _konzept-reife.md stehen → dort nachtragen
→ Status berechnen: >=2 Quellen → reif, <2 → unreif
Synthese-Worker laeuft IMMER auf Opus (1M Tokens).
Typisches Quellenmaterial fuer ein Konzept: 50-400K Tokens.
Split NUR wenn Quellenmaterial > 700K Tokens (>20 ausfuehrliche Quellen).
Bei <700K: KEIN Split, KEIN Batch, alles in einen Worker.
Siehe "Context-Budget — Orchestrator" oben fuer DEIN eigenes Budget.
Phase 0.5a: Planmodus-Pruefung
Synthese betrifft typischerweise >=2 Dateien (Konzeptseite + _index + _log).
→ EnterPlanMode BEVOR die erste Datei geschrieben wird.
Plan dokumentiert:
Welche Konzeptseite wird vertieft?
Welche PDFs muessen geladen werden?
Welche Nebeneffekte (_index, _log, MOCs) werden beruehrt?
Phase 0.5b: PDF-Lesung (BLOCKIERENDES GATE 9)
Synthese arbeitet primaer auf Wiki-Quellenseiten (4-Gate-gepruefte Extraktionen).
Original-PDFs werden NUR bei Widerspruechen, unklaren Formeln oder unplausiblen
Zahlenwerten geladen — GEZIELT, 2-5 Seiten, nicht ganze Kapitel.
Lies alle Wiki-Quellenseiten die das Konzept behandeln (PFLICHT)
Lade Original-PDFs NUR bei Bedarf (Widerspruch/Unklarheit)
Vermerke jeden PDF-Spot-Check im Output:
"PDF verifiziert: [Datei], S. X — [Ergebnis]"
Wiki-Quellenseiten lesen (PFLICHT):
Alle Quellenseiten die das Konzept behandeln laden
{{BESTEHENDE_KONZEPTE}}: ls wiki/konzepte/*.md → Komma-separierte Liste
Dispatche Agent mit:
subagent_type: "bibliothek:synthese-worker" (PFLICHT — PreToolUse-Hook
guard-pipeline-lock.sh matcht auf diesen String, um parallele Synthesen
und gleichzeitige Ingests zu blockieren solange _pending.json offen ist)
prompt: ausgefuelltes Template aus Schritt 2
model: "opus" (Synthese braucht max Context fuer Quellenvergleich)
description: "Synthese: {{KONZEPT_NAME}}"
Warte auf Ergebnis, dann weiter mit Phase 3 (Gate-Review)
Phase 1: Vergleichende Analyse
1a: Formeln vergleichen
Gibt es Formeln in den Quellen zu diesem Konzept?
Alle Formeln auflisten mit:
Quelle (Buch + Seite)
Formel-Text
Herleitung / Annahmen
Gueltigkeitsbereich
Sind Formeln identisch oder unterschiedlich?
Falls unterschiedlich: Was sind die Unterschiede? Welche Annahmen erklaeren das?
1b: Zahlenwerte vergleichen
Alle empirischen Zahlenwerte (z.B. "Reibungskoeffizient = 0.5") auflisten
Pro Zahlenwert: Quelle, Kontext (Material? Temperatur?), Toleranzbereich
Konvergieren oder divergieren die Werte?
Falls divergent: Gibt es erklaerbare Gruende (unterschiedliche Materialien, Standards, ...)?
1c: Norm-Paragraph-Analyse
Welche Normen werden referenziert?
Exakte Abschnitte? (z.B. "EC5 3.2.3" oder nur "EC5 Kapitel 3")
Wie interpretieren verschiedene Quellen denselben Absatz?
Gibt es Unterschiede in der Interpretation?
1d: Randbedingungen + Gueltigkeitsgrenzen
Pro Konzept: Unter welchen Bedingungen ist die Aussage gueltig?
Material? Geometrie? Temperatur? Feuchte?
Wo liegen die Grenzen?
Sind diese explizit in den Quellen genannt oder implizit?
1e: Widerspruch-Identifikation
Finden sich in den verschiedenen Quellen Aussagen die sich widersprechen?
Z.B. Unterschiedliche Formeln fuer denselben Effekt?
Z.B. Norm Edition 1 sagt A, Edition 2 sagt B?
Dokumentieren ALLER Widersprueche mit Kontext
1f: Versagensarten + Sicherheitskonzepte
Welche Versagensarten sind relevant? (Rollschub, Durchstanzen, Knickung, ...)
Unterscheidet sich die Versagensart je nach Material/Geometrie?
Sicherheitskonzept: charakteristische Werte vs. Bemessungswerte (γM)?
Behandeln alle Quellen das Konzept in derselben Fachdomaene?
JA → Einheitliche Struktur
NEIN → Strukturiere nach Domain: "### [Konzept] in [Domain]"
Gibt es domainuebergreifende Gemeinsamkeiten? (z.B. Querkraft-Prinzip ist
physikalisch gleich, Versagensarten unterscheiden sich)
Phase 2: Seite ausarbeiten + Diffs dokumentieren
KEIN INFORMATIONSVERLUST: Fuer JEDE Quellenseite gilt:
- Jede Formel → muss in der Konzeptseite landen
- Jede Aussage die von MEHREREN Quellen gestuetzt wird → ALLE Quellen zitieren (Sammelzitat mit Semikolon)
- Jeder Zahlenwert → muss in der Vergleichstabelle landen
- Jede Randbedingung → muss dokumentiert sein
- Jeder Normbezug → muss mit Abschnitt erfasst sein
Wenn unsicher ob relevant: AUFNEHMEN. Weglassen nur mit expliziter Begruendung.
2a: Update-Modus (falls Seite bereits existiert)
- Bestehende Formeln/Zahlenwerte die NICHT in den neuen Quellen auftauchen: BEWAHREN
- Neue Formeln/Zahlenwerte: HINZUFUEGEN
- Widersprueche: ERGAENZEN, nicht ersetzen
- Bestehende Quellenverweise: BEIBEHALTEN
2b: Struktur aufbauen:
# Konzept: [NAME]## Zusammenfassung
[1-3 Saetze Definition + Anwendungsbereich]
## Einsatzgrenzen + Randbedingungen-**Materialgruppe:** Nadelholz / Stahlbeton / ...
-**Versagensart:** Rollschub / Durchstanzen / ...
-**Umweltklasse:** Feuchteklasse 1-3 / Expositionsklasse XC / ...
-**Gueltig fuer:** [Geometrie, Temperatur, Feuchte]
-**Gueltig bis:** [Grenzen explizit]
## Formeln### Formel 1: [Name/Anwendungsfall]
[Formel in LaTeX oder Text]
-**Quelle:** [[quellenseite|Autor Jahr]], S. N
-**Annahmen:** [Aufzaehlung]
-**Parameter:** [[parameter-konzept|f_v,d]] = Bemessungsschubspannung
- **Gueltig fuer:** [Randbedingungen]
[Wiederhole fuer alle Formeln — Parameter verlinken wenn eigene Konzeptseite]
## Zahlenwerte + Parameter
| Parameter | Wert | Einheit | Quelle | Bereich |
|-----------|------|--------|--------|---------|
| Reibungskoeff. | 0.5 | - | [[quelle|Autor]], S. N | 0.4-0.6 |
## Norm-Referenzen
- **[[ec5-3-2-3|EC5, §3.2.3]]:** Querkraft-Nachweis → [Kommentar]
- **[[ec2-6-2|EC2, §6.2]]:** Bewehrung → [Kommentar]
## Widersprueche
> [!CAUTION] Widerspruch: [[quelle-a|Quelle A]] vs. [[quelle-b|Quelle B]]
> - **A sagt:** [Aussage mit Seitenzahl]
> - **B sagt:** [Aussage mit Seitenzahl]
> - **Erklaerung:** Moegliche Ursachen...
[Wiederholen fuer alle Widersprueche — Obsidian Callout-Syntax fuer Sichtbarkeit]
## Verwandte Konzepte
- [[Konzept1|Anzeigename]]
- [[Konzept2|Anzeigename]]
## Quellen
- [[quellenseite-a|Autor A Jahr]] — Kap. X, S. N-M
- [[quellenseite-b|Autor B Jahr]] — Kap. Y, S. N-M
2c: Diffs dokumentieren
Wenn Seite bereits existiert: Diff zwischen Alt + Neu aufzeigen
reviewed: auf false (weil Synthese neue Inhalte hinzufuegt)
synth-datum: setzen mit heutigem Datum
Phase 2e: Discovery-Erkennung (im Worker)
Der Synthese-Worker fuehrt Phase 2e automatisch aus (Anweisung im Dispatch-Template).
Der Hauptagent muss NICHTS tun — Phase 2e ist Worker-intern.
Was der Worker tut:
Identifiziert Konzept-Kandidaten beim Quellenvergleich
Erkennt fehlende Vokabular-Terme
Schreibt neue Terme in _vokabular.md (additiv)
Patcht Quellenseiten-Schlagworte (additiv)
Meldet alles im [DISCOVERY]-Block
Was der Hauptagent verifiziert (nach Worker-Rueckkehr):
[DISCOVERY]-Block im Worker-Output vorhanden?
Gate 3 (konsistenz-pruefer) Part D prueft die Details
Phase 3: Dispatch Review-Gates
1. **Pipeline-Lock anlegen** — Schreibe `wiki/_pending.json`:
```json
{"typ":"synthese","stufe":"gates","quelle":"","timestamp":"","gates_passed":0,"gates_total":3}
```
ERST hier, NICHT frueher — sonst blockiert guard-pipeline-lock.sh den eigenen
Synthese-Worker-Dispatch in Phase 0.6.
Lade governance/gate-dispatch-template.md
Fuelle {{PIPELINE_ID_MARKER}} mit [SYNTHESE-ID:<konzeptname>]
Dispatche 3 Gate-Agents — IMMER mit Template-Prompt:
Modellwahl: quellen-pruefer erbt Opus. konsistenz- und vokabular-pruefer
haben Sonnet im Frontmatter. Siehe gate-dispatch-template.md "Modellwahl".
Gate 1: quellen-pruefer
Prueft: Jede Aussage hat Seitenangabe? Formeln-Quellen korrekt? Zahlenwerte verifizierbar?
Gate 2: konsistenz-pruefer
Prueft: Widersprueche korrekt gekennzeichnet? Verweise zu verwandten Konzepten kohaerent?
Gate 3: vokabular-pruefer
Prueft: Alle Schlagworte im Frontmatter existieren im Vokabular?
Falls neue Schlagworte noetig: Delegation an /vokabular
Bei FAIL: Synthese korrigiert + erneutes Dispatch. Max 3 Iterationen.
Ergebnis ist PASS oder FAIL — kein Mittelweg.
Alle 3 PASS:advance-pipeline-lock.sh hat stufe automatisch auf sideeffects gesetzt → weiter mit Phase 5.
Phase 5: Nebeneffekte
BEVOR Phase 5 (Nebeneffekte) beginnt:
1. Pruefe `wiki/_pending.json`: Feld `stufe` MUSS "sideeffects" sein.
2. Wenn `stufe` noch "gates": Gates sind NICHT bestanden.
→ Fehlgeschlagene Gates RE-DISPATCHEN (nicht manuell fixen + Shell-Check).
→ Shell-Check ist KEIN Ersatz fuer Gate-Agents.
3. Wenn `_pending.json` nicht existiert: Phase 5 NICHT starten.
→ Meldung: "Pipeline-Lock fehlt. Gates muessen erst laufen."
Pflicht:
Seite speichern (mit Seitenangaben, Formeln, Widersprueche)
Bei mehreren Konzepten: sequentiell verarbeiten.
Pro Konzept der vollstaendige Ablauf:
Synthese-Worker → 3 Gate-Agents → Nebeneffekte → naechstes Konzept.
KEIN paralleles Dispatchen mehrerer Synthese-Workers.
KEIN paralleles Dispatchen von Gates verschiedener Konzepte.
Bei Gate-Nachholung: SEQUENTIELL pro Konzept abarbeiten.
Einzige erlaubte Parallelitaet: die 3 Gates EINES Konzepts.
Umlaut-Check
Umlaut-Pruefung wurde aus dem Shell-Script entfernt (braucht Kontext).
Gate 1 (quellen-pruefer, Part C) prueft und korrigiert Umlaute kontextuell.