Quellen-Zuordnung — inhaltliches Matching, Schlagwort-Audit, Konzept-Rueckverweise
Zuordnung laedt ALLE Quellen-Zusammenfassungen und ALLE Konzeptseiten in einen Worker und baut eine inhaltliche Zuordnungs-Matrix. Gleichzeitig: Schlagwort-Audit (fehlende Tags patchen, neue Terme vorschlagen) und Konzept-Rueckverweise (
relevant-fuer:) auf Quellenseiten. Keine Gate-Pipeline, keine_pending.json— Verifikation percheck-zuordnung-output.shdirekt im Orchestrator.
| Gate | Durchsetzung | Wie | Bedingung |
|---|---|---|---|
| KEIN-BUCH-OHNE-VOLLSTAENDIGE-LESUNG | ⚪ N/A | Zuordnung liest Quellen-Zusammenfassungen, nicht ganze Buecher — kein Volllesung-Gate | — |
| KEIN-INHALT-OHNE-SEITENANGABE | ⚪ N/A | Zuordnung schreibt keine Content-Seiten mit Aussagen — nur Meta-Dateien und Frontmatter-Patches | — |
| KEIN-ZAHLENWERT-OHNE-QUELLE | ⚪ N/A | Zuordnung schreibt keine Zahlenwerte in Content-Seiten |
| — |
| KEIN-NORMBEZUG-OHNE-ABSCHNITT | ⚪ N/A | Zuordnung schreibt keine Norm-Referenzen in Content-Seiten | norm-Typ aktiv |
| KEINE-KONZEPTSEITE-OHNE-QUERVERWEIS | ⚪ N/A | Zuordnung schreibt keine Konzeptseiten | — |
| KEIN-SCHLAGWORT-OHNE-VOKABULAR | ✅ Aktiv | Worker prueft Vokabular vor Schlagwort-Patch; check-zuordnung-output.sh verifiziert Patch-Terme | — |
| KEIN-UPDATE-OHNE-DIFF | ⚪ N/A | Zuordnung patcht nur Frontmatter-Felder; _log.md Eintrag dokumentiert alle Patches | — |
| KEIN-WIDERSPRUCH-OHNE-MARKIERUNG | ⚪ N/A | Zuordnung schreibt keine inhaltlichen Aussagen die Widersprueche erzeugen koennten | — |
| KEINE-WIKI-AENDERUNG-OHNE-QUELLENLESUNG | ✅ Aktiv | Worker liest alle Quellenseiten vollstaendig (Frontmatter + erste 50 Zeilen Body) vor Patch | — |
| KORREKTE-UMLAUTE | 🔄 Delegiert | Worker-Instruktionen und Dispatch-Template schreiben Unicode-Umlaute vor | — |
Wiki-Writes NUR ueber bibliothek:zuordnung-worker.
guard-wiki-writes.sh Whitelist enthaelt zuordnung.
guard-pipeline-lock.sh blockiert bibliothek:zuordnung-worker wenn ein anderer Lock aktiv ist.
guard-dispatch-template.sh blockiert Dispatch wenn governance/zuordnung-dispatch-template.md nicht gelesen wurde.
KEIN eigener Pipeline-Lock: /zuordnung erzeugt kein _pending.json und
hat keine eigene Gate-Pipeline. Sie wird jedoch durch bestehende Locks blockiert
(laufender Ingest oder Synthese → /zuordnung muss warten).
/zuordnung laedt ALLE Quellen + ALLE Konzepte in den Worker-Prompt. Typische Groessenordnung: 94 Quellen × 55 Zeilen ≈ 150K Tokens. Das passt in Opus locker. In Sonnet wird es knapp.
Modellwahl fuer den Orchestrator:
Regeln:
Wiki-Verzeichnis pruefen:
wiki/? Falls nein → Meldung: "Erst /ingest ausfuehren."wiki/quellen/? Falls leer → Meldung: "Mindestens eine Quelle noetig."Vokabular laden:
wiki/_vokabular.md vollstaendigKonzept-Reife-Status laden:
wiki/_konzept-reife.md? Dann lesen (YAML-Frontmatter + Body)Alle Quellenseiten identifizieren:
wiki/quellen/*.md → Dateiliste_-Prefix (_index.md, _template.md etc.)QUELLEN_ANZAHL = Anzahl verbleibender Dateienbibtex-key, titel, schlagworte, zusammenfassungAlle Konzeptseiten identifizieren:
wiki/konzepte/*.md (falls Verzeichnis existiert) → Dateiliste_-PrefixKONZEPTE_ANZAHL = Anzahl verbleibender Dateien## Zusammenfassung Abschnitt ladentitle, schlagworte, quellen, ZusammenfassungstextDispatch-Template laden:
governance/zuordnung-dispatch-template.md vollstaendigPlatzhalter befuellen (6 Stueck):
{{QUELLEN_ZUSAMMENFASSUNGEN}}: Frontmatter + erste 50 Zeilen Body jeder Quelldatei{{KONZEPT_ZUSAMMENFASSUNGEN}}: Frontmatter + Zusammenfassung jeder Konzeptseite{{KONZEPT_REIFE_INHALT}}: Vollstaendiger Inhalt von _konzept-reife.md (oder leer){{VOKABULAR_TERME}}: Vollstaendiger Inhalt von _vokabular.md{{LOG_HASH}}: Erster Satz des juengsten _log.md-Eintrags (fuer Drift-Erkennung){{WIKI_VERZEICHNIS}}: Absoluter Pfad zu wiki/Worker dispatchen:
subagent_type: "bibliothek:zuordnung-worker" (PFLICHT — guard-pipeline-lock.sh
matcht auf diesen String und blockiert wenn _pending.json von anderem Skill aktiv ist)prompt: ausgefuelltes Template aus Schritt 1model: "opus" (braucht ALLE Quellen im Kontext, 1M Tokens)description: "Zuordnung: alle Quellen → alle Konzepte"Worker-Jobs (3 parallel im Worker):
_vokabular.md vorschlagenrelevant-fuer: auf Quellenseiten-Frontmatter
patchen (nur additiv), Obsidian-Graph-Kante Quelle→KonzeptWorker-Schreibartefakte:
wiki/_quellen-mapping.md (komplett neu, kein Merge)wiki/quellen/*.md — Frontmatter-Patches (schlagworte: und relevant-fuer:, nur additiv)wiki/_vokabular.md — neue Terme additivwiki/_konzept-reife.md — neue Kandidaten additivWarte auf Worker-Rueckkehr, dann weiter mit Phase 2
_quellen-mapping.md pruefen:
quellen-stand, konzepte-stand, mapping-version?updated Datum aktuell?Vollstaendigkeits-Check:
wiki/quellen/Konsistenz-Check relevant-fuer:
relevant-fuer:?check-zuordnung-output.sh ausfuehren:
Deterministischer Shell-Check (Orphan-Erkennung, Datei-Existenz-Pruefung, Vokabular-Check fuer Patch-Terme, Rueckverweis-Konsistenz)
Bei FAIL — korrekter Ablauf pro Check:
<NICHT-VERHANDELBAR> **Check 06 (rueckverweis):** Fehlende `relevant-fuer:` auf Quellenseiten → NACHTRAGEN (Edit-Tool), nicht ignorieren.Check 07 (vokabular-patch): Terme in Audit-Tabelle die nicht im
Vokabular stehen → IN _vokabular.md EINTRAGEN (Edit-Tool, additiv).
NIEMALS die Terme aus der Audit-Tabelle loeschen um den Check zu bestehen.
Die Audit-Tabelle ist das Ergebnis der Worker-Analyse. Wenn der Worker
einen Term als fehlend identifiziert hat, ist die Loesung: Term ins
Vokabular aufnehmen — nicht die Evidenz vernichten.
Allgemein: FAIL bedeutet "behebe die Ursache", nicht "loesche die Daten bis der Check PASS zeigt". </NICHT-VERHANDELBAR>
_log.md Eintrag schreiben:
## [DATUM] zuordnung | alle Quellen
- Quellen gemapt: N
- Konzepte abgedeckt: M
- Neue Kandidaten: K
- Schlagwort-Patches: P Quellenseiten
- Neue Vokabular-Terme: V
- check-zuordnung-output.sh: PASS
Abschlussmeldung:
Zuordnung abgeschlossen. N Quellen → M Konzepte. K neue Kandidaten.
Schlagwort-Patches: P Quellenseiten. Neue Vokabular-Terme: V.
/zuordnung sollte ausgefuehrt werden:
Nach jedem /ingest (empfohlen) — neue Quelle bedeutet Mapping veraltet.
Alle Konzepte muessen neu gegenueber der neuen Quelle geprueft werden.
Nach neuer Konzeptseite (via /synthese — neue Seite erzeugt) — Mapping
zeigt noch nicht welche Quellen die neue Konzeptseite fuettern.
Manuell — Nutzer ruft /zuordnung auf oder sagt "Quellen zuordnen"
oder "Mapping aktualisieren".
Automatisch vor Synthese — guard-mapping-freshness.sh blockiert
/synthese wenn quellen-stand oder konzepte-stand nicht mehr stimmt.
In dem Fall: erst /zuordnung, dann /synthese.
Problem: Worker kann Quelle keinem Konzept zuordnen.
→ Quelle in "Nicht zugeordnete Quellen" Abschnitt des Mappings eintragen
→ Kein Fehler, keine Blockade — thematisch ausserhalb des Wiki-Fokus ist OK
→ Meldung an Nutzer: "N Quellen ohne Konzept-Zuordnung — Details in _quellen-mapping.md"
Problem: Sehr grosses Wiki (>100 Quellen).
→ Worker laedt Zusammenfassungen statt Volltext (100 Quellen × 50 Zeilen ≈ 50K Tokens) → Passt locker in 1M Opus-Context — KEIN Split noetig
Problem: _pending.json blockiert /zuordnung.
→ Laufender Ingest oder Synthese muss erst abgeschlossen werden
→ Meldung: guard-pipeline-lock.sh blockiert mit Hinweis auf aktiven Lock-Typ
→ Nach Abschluss des aktiven Workflows: /zuordnung erneut starten