docs: add speaker mapping component to meeting-end spec
This commit is contained in:
parent
210112beb7
commit
7177314475
|
|
@ -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?
|
||||
|
|
|
|||
Loading…
Reference in New Issue