Schließe ein Jour-Fixe-Meeting ab, ziehe automatisch Recap+Transkript aus Teams und führe die Ergebnisse zurück. ## Schritt 1 — Meeting-Notiz identifizieren - Wenn `current_note` eine Datei unter `03 Bereiche/Meetings/` ist → diese verwenden. - Sonst: Serie und Datum aus `$ARGUMENTS` ermitteln. Pfad: `03 Bereiche/Meetings/YYYY-MM-DD .md`. - Lies das Frontmatter: `o365_id`, `serie`, `date`. - Wenn `o365_id` leer ist: User fragen, ob Auto-Import übersprungen werden soll (dann weiter bei Schritt 4 ohne Recap/Transkript). ## Schritt 2 — Artifacts holen Führe aus: ``` cd scripts node fetch-meeting-artifacts.js --o365-id --out /tmp/artifacts.json ``` Lies das JSON. Erwartete Felder: - `meeting.seriesMasterId` - `transcript` (string oder null) - `recap` (object mit `meetingNotes`, `actionItems`, `mentions` — oder null) - `recordingUrl` (string oder null) - `warnings` (Liste) Wenn `transcript === null` und `recap === null`: User fragen, ob er den Recap aus Teams einfügen will, oder ob das Meeting ohne Auto-Import abgeschlossen werden soll. ## Schritt 3 — Sprecher-Mapping Sammle alle Sprecher-Namen aus `transcript` (Zeilenanfang vor `:`). Pro Name → Wikilink über Personenmatching (siehe `00 Kontext/Personen/`) oder null. Notiere ungematchte Sprecher als offene Punkte am Ende des Berichts. ## Schritt 4 — Doppel-Pass-Synthese Lies die existierende Meeting-Notiz vollständig (Live-Notizen!). Doppel-Pass: - **Aus Recap** (sofern vorhanden): Topics, Entscheidungen, offene Fragen, Tasks extrahieren. - **Aus Transkript**: pro Recap-Aussage validieren; ergänze Details, die mehrfach im Transkript bestätigt sind aber im Recap fehlen. Sprecher als Wikilinks ersetzen. Schreibe Ergebnis in die Meeting-Notiz: - `## Notizen` (gegliedert nach Topics, mit Wikilinks zu Sprechern) - `## Entscheidungen` - `## Offene Fragen` - `## Aufgaben` (Owner als Wikilinks) **Merge-Regel mit Live-Notizen:** - Live-Eintrag mit gleichem Aktor + gleicher Kernaussage → Recap-Eintrag SKIP. - Live-Eintrag stub (nur Stichwort) → durch Recap-Detail ergänzen. - Recap-Eintrag neu → unten anhängen. - Reihenfolge: Live-Order bleibt, neue Items hinten. Wenn `recordingUrl` vorhanden: füge ins Frontmatter `recording_url: ` ein (oder ersetze existierenden Wert). ## Schritt 5 — Agenda-Rückführung mit Konfidenz Bestimme die zugehörige Agenda: - Aus Frontmatter `serie:` der Meeting-Notiz. - Pfad: `03 Bereiche/Jour Fixe//Agenda*.md`. - Verifiziere: `o365_series_id` der Agenda matched `meeting.seriesMasterId`. Mismatch → User warnen. - Falls die Agenda kein `o365_series_id` hat und `meeting.seriesMasterId` vorhanden ist: lazy-backfill (siehe `/meeting`). Pro Topic der Meeting-Notiz (H3-Überschriften unter `## 📌 Dauerläufer`, `## 🆕 Neu`, `## ⏸️ Postponed`): | Signal in Notiz/Recap/Transkript | Konfidenz | Aktion | |---|---|---| | `## ⏸️ Postponed` enthält dieses Topic | HOCH | postpone → in Agenda `## ⏸️ Postponed` verschieben | | Topic-Status aus Notiz oder Recap: "erledigt"/"abgeschlossen"/"✅" + alle Tasks done | HOCH | archivieren (mit ganzer Historie) | | Topic erwähnt, kein Abschluss-Marker | HOCH | Historie-Eintrag in Agenda: `**YYYY-MM-DD:** Kurzfassung → [[Meeting-Notiz]]` | | Topic in Agenda, aber nicht im Notiz-Block | HOCH | unverändert | | Mehrdeutig | NIEDRIG | zur Bestätigung listen | Sammel-Bericht VOR Schreiben: ``` Vorgesehene Aktionen: - 5 Topics: Historie-Eintrag (auto) - 2 Topics: archivieren (auto): X, Y - 1 Topic: postponed (auto): Z Bestätigung nötig: - "NAC-Projekt": Recap mehrdeutig — erledigt oder offen? Ungematchte Sprecher (Personen-Notiz fehlt): Maria Schmidt ``` User bestätigt einmal für HOCH-Aktionen, entscheidet pro NIEDRIG-Topic. Dann ausführen. ## Schritt 6 — Neue Topics nach Dauerläufer Topics, die in `## 🆕 Neu` der Meeting-Notiz standen und nicht archiviert oder postponed wurden, in der Agenda nach `## 📌 Dauerläufer` verschieben (🆕-Emoji aus Titel entfernen). ## Schritt 7 — Status In der Meeting-Notiz: `status: abgeschlossen` setzen. ## Schritt 8 — Bericht Gib eine Zusammenfassung aus: - Recap aus Graph: ja/nein - Transkript: ja/nein - Recording-Link: ja/nein - X Topics aktualisiert, Y archiviert, Z postponed, W neu nach Dauerläufer - Ungematchte Sprecher (falls vorhanden): Hinweis auf fehlende Personen-Notizen - Warnings aus dem Fetch-Script (falls vorhanden)