docs: add speaker mapping component to meeting-end spec

This commit is contained in:
beo3000 2026-05-06 20:20:00 +02:00
parent 210112beb7
commit 7177314475
1 changed files with 29 additions and 4 deletions

View File

@ -32,6 +32,7 @@
| Agenda-Rückführung | Hybrid: eindeutig auto, Grauzone zur Bestätigung |
| Notiz-Merge | Mergen oder Skippen bei Duplikaten (Live-Notizen behalten) |
| Serien-Link | Neues Frontmatter-Feld `o365_series_id` in Agenda.md |
| Sprecher-Mapping | Transkript-Sprecher gegen `00 Kontext/Personen/` matchen, Wikilinks setzen |
## Architektur
@ -154,7 +155,28 @@ node fetch-meeting-artifacts.js \
6. **Bericht:** "Meeting [Serie] vom [Datum] abgeschlossen. Recap: ✓/✗. Transkript: ✓. X Topics aktualisiert (auto), Y archiviert (auto), Z postponed (auto), W brauchten Bestätigung."
### 4. Merge-Heuristik Details
### 4. Sprecher-Mapping (`scripts/lib/speaker-matcher.js`)
**Input:** Sprecher-Liste aus Transkript (Display-Name + E-Mail aus Graph-Metadaten).
**Match-Strategie** (analog `person-matcher.js`):
1. **E-Mail-Match:** Suche `email` im Frontmatter aller `00 Kontext/Personen/*.md`.
2. **Name-Fallback:** Vergleiche Display-Name mit `vorname` + `nachname`.
3. **Kein Match:** Display-Name als Plain Text behalten, in offene Fragen aufnehmen ("Person X anlegen?").
**Output:** Map `{ "Christian Kauer" → "[[00 Kontext/Personen/Christian Kauer (KRAH)]]", "Frank Herberg" → "[[00 Kontext/Personen/Frank Herberg]]", ... }`.
**Verwendung:**
- In Notizen-Merge: Sprecher-Erwähnungen durch Wikilinks ersetzen ("Frank hat berichtet..." → "[[Frank Herberg]] hat berichtet...").
- In Aufgaben: Owner-Namen zu Wikilinks.
- Bestehende `person-matcher.js` Logik wiederverwenden.
**Tests:**
- E-Mail-Match
- Name-Match mit Kurzformen (Christian → Christian Kauer (KRAH))
- Kein Match → Plain Text + Hinweis
### 5. Merge-Heuristik Details
**Notizen-Merge:**
- Live-Notizen aus existierenden `## Notizen`/`## Entscheidungen`/`## Aufgaben` werden zuerst eingelesen.
@ -223,10 +245,13 @@ Claude → setzt status: abgeschlossen
- Echtes Jour Fixe IT Team durchlaufen, dann `/meeting-end`
- Überprüfen: Notiz-Merge sauber, Agenda korrekt fortgeschrieben, Archiv enthält erledigte Topics
## Bestätigt
- Graph-Permissions: User ergänzt im Azure Portal.
- Teams Premium / Copilot-Lizenz vorhanden → `aiInsights` sollte funktionieren.
- Sprecher-Mapping ist Teil des Scopes.
## Offene Fragen
- **Graph-Permissions:** Hat die bestehende Azure-App `OnlineMeetings.Read.All` + `OnlineMeetingTranscript.Read.All` und Application Access Policy auf `AZURE_USER_EMAIL`? Falls nein → Tenant-Admin Aktion erforderlich.
- **`aiInsights`-Verfügbarkeit im Tenant:** muss empirisch getestet werden (Beta-Endpoint, abhängig von Teams Premium/Copilot-Lizenz).
- **Backfill von `o365_series_id`:** Einmal-Skript bauen oder lazy beim nächsten `/meeting` jeder Serie?
- **Sprecher-Mapping:** Transkript liefert E-Mail/Display-Name — sollen wir gleich gegen `00 Kontext/Personen/` matchen und Wikilinks setzen?
- **Recordings:** sollen Aufzeichnungen ebenfalls verlinkt werden (Anhang im Frontmatter), oder reine Transkript+Recap-Lösung?