CommunitySchreiben & Editierengithub.com

px-summarize-transcript

Extrahiert Entscheidungen, wesentliche Aussagen, Aktionspunkte und offene Fragen aus einem Meeting-Transkript (VTT, Teams-Copy/Paste-TXT oder Markdown-MD) mit Sprecherzuordnung und wörtlichen Belegen, speichert diese als verknüpftes Bundle neben dem Transkript und weist Aktionspunkten Verantwortliche zu.

Was ist px-summarize-transcript?

Dieses Skill hilft KI-Assistenten wie Claude Code, aus Meeting-Transkripten strukturierte, belegbasierte Zusammenfassungen zu erstellen. Es unterstützt die Formate VTT, reine Text- oder Markdown-Transkripte und ordnet jedem extrahierten Element (Entscheidung, Aussage, Aktionspunkt, offene Frage) den Sprecher, den Zeitstempel und ein wörtliches Zitat zu. Die Aktionspunkte erhalten Verantwortliche, die automatisch aus dem Kontext zugewiesen werden (explizit, freiwillig, delegiert oder abgeleitet). Bei Serien von Meetings wird erkannt, welche Themen aus der vorherigen Sitzung noch offen sind. Das Skill besteht aus Python-Skripten, die das Parsen, die Dateiorganisation, die Frontmatter-Verwaltung und die Zitat-Überprüfung übernehmen, während der Agent die logische Analyse und die Formulierung der Zusammenfassung durchführt. Es ist für Entwickler gedacht, die regelmäßig Besprechungen protokollieren und eine standardisierte, nachvollziehbare Aufbereitung der Ergebnisse benötigen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/prodagenx/px-summarize-transcript/tree/HEAD

Installed? Explore more Schreiben & Editieren skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht px-summarize-transcript?

Verwandelt ein Meeting-Transkript in einen belegbasierten Datensatz darüber, was entschieden wurde, welche wesentlichen Tatsachen festgehalten wurden und wer für welche nächsten Schritte verantwortlich ist. Jeder Eintrag zitiert den Sprecher, den Zeitstempel (sofern im Transkript vorhanden) und ein wörtliches Zitat. Python-Skripte erledigen die mechanische Arbeit: Parsen, Dateibenennung, Frontmatter und Zitat-Prüfung. Sie übernehmen die logische Analyse.

Wann verwenden

  • Ein .vtt, ein in .txt oder .md eingefügtes Teams-Transkript, ein [Sprecher] YYYY-MM-DD HH:MM:SS Markdown-Transkript oder Name: text-Zeilen benötigen die Extraktion von Entscheidungen und Aktionspunkten.
  • Jemand fragt, wer etwas gesagt hat, was vereinbart wurde oder wer für eine Nachverfolgung zuständig ist.
  • Jemand fragt, was aus dem vorherigen Meeting einer wiederkehrenden Serie noch offen ist.
  • Meeting-Ergebnisse müssen mit Projektdokumenten abgeglichen werden.

Bundle-Aufbau (festgelegt)

Alle Dateien befinden sich im eigenen Ordner des Transkripts und teilen dessen Dateinamen. Nur die Endung ändert sich. Sie dürfen sie nirgendwo anders ablegen. Wenn der Benutzer nach einem anderen Ordner fragt, erklären Sie, dass das Bundle bei seinem Transkript bleibt. file_transcript.py kann ein gesamtes Bundle in einen Serienordner verschieben, und seine Mitglieder werden immer zusammen verschoben.

DateiRolle
<stamm>.vtt / .txt / .mdQuell-Transkript. .md und .txt erhalten Frontmatter direkt hinzugefügt; vorhandene Schlüssel werden nie geändert.
<stamm>.source.mdNur für .vtt: ein kleiner Markdown-„Sidecar“, der das Frontmatter des .vtt enthält, da eine .vtt-Datei mit WEBVTT beginnen muss und selbst kein Frontmatter enthalten kann.
<stamm>.turns.mdTurn-Index. Wird einmal erstellt; nie neu geschrieben, es sei denn, Sie übergeben --rebuild.
<stamm>.summary.mdBericht. Wiederholte Ausführungen schreiben <stamm>.summary.v2.md, .v3 usw.

Formate und Schlüssel: Eingabeformate, Frontmatter-Spezifikation.

Vorgehen

Die Skripte befinden sich in ./scripts/ neben dieser SKILL.md. Das Terminal startet im Arbeitsbereich des Benutzers, daher müssen Sie den absoluten Pfad des Skill-Ordners ermitteln (persönliche Installationen sind normalerweise ~/.claude/skills/px-summarize-transcript oder ~/.agents/skills/px-summarize-transcript) und einmal pro Terminal setzen:

$S = "<absoluter Pfad zu diesem Skill>\scripts"      # PowerShell
S="<absoluter Pfad zu diesem Skill>/scripts"          # bash / zsh

Die Befehle unten verwenden PowerShell ("$S\build_turns.py"). In bash schreiben Sie "$S/build_turns.py". Die Skripte verwenden nur die Standardbibliothek (Python 3.10+). Setzen Sie Pfade in Anführungszeichen, da Dateinamen oft Leerzeichen enthalten.

Arbeiten Sie immer an einem Transkript nach dem anderen. Für einen Ordner oder „alles Ausstehende“ siehe Mehrere Transkripte.

  1. Transkript ablegen (optional). Tun Sie dies, wenn der Benutzer darum bittet oder wenn der Arbeitsbereich Transkripte in Serienordnern aufbewahrt (z. B. transcripts/<serie>/) und dieses noch nicht in einem solchen ist. --root standardmäßig ./transcripts.

    python "$S\file_transcript.py" --list --root "<root>"
    python "$S\file_transcript.py" "<transkript>" --series "<serie>" --root "<root>"
    

    Verwenden Sie eine vorhandene Serie, die zum Meeting passt. Wenn keine passt, schlagen Sie einen kurzen Kebab-Case-Namen vor und bestätigen Sie ihn mit dem Benutzer, bevor Sie ihn erstellen. Reagieren Sie dann basierend auf status:

    • moved: fahren Sie mit dem neuen source-Pfad fort.
    • already-filed: das Transkript befindet sich bereits in einem Unterordner des Wurzelverzeichnisses oder in einem Ordner, der nach der Serie benannt ist. Es wurde nichts verschoben, also fahren Sie fort.
    • duplicate: das gleiche Transkript existiert bereits unter duplicate_of. Stoppen Sie und fragen Sie den Benutzer, welche Kopie verarbeitet werden soll. Löschen Sie keine der Dateien.
    • conflict (Exit-Code 2): eine andere Datei mit demselben Namen befindet sich bereits im Serienordner. Stoppen Sie und fragen Sie.
  2. Turn-Index erstellen.

    python "$S\build_turns.py" "<transkript>"
    

    Es erkennt das Format, schreibt <stamm>.turns.md, falls es noch nicht existiert, stempelt die Quelle (oder den Sidecar) und gibt JSON aus. Merken Sie sich turns_path, turns_status, summary_path, has_timestamps, speakers, meeting_date, meeting_date_source, gaps, previous_meeting_summary und transcription.

    • turns_status: created oder kept: fahren Sie fort. kept bedeutet, dass der vorhandene Turn-Index bereits mit dem Transkript übereinstimmt, also nichts neu geschrieben wurde.
    • turns_status: source-changed (Exit-Code 3): das Transkript wurde nach der Erstellung des Turn-Index bearbeitet, und vorhandene Berichte zitieren die alten Turn-IDs. Stoppen Sie und fragen Sie den Benutzer, bevor Sie mit --rebuild erneut ausführen.
    • Nicht unterstütztes Format (Exit-Code 2): teilen Sie dem Benutzer mit, welche Formate unterstützt werden, und stoppen Sie.
    • meeting_date ist null: schreiben Sie „Nicht angegeben“, es sei denn, der Benutzer gibt Ihnen das Datum.
  3. Lesen Sie den vollständigen Turn-Index in großen Teilen bis zum Ende. Extrahieren Sie niemals aus einem teilweisen Lesevorgang.

  4. Sprecher zuordnen. Erstellen Sie eine Zeile pro Sprecherlabel für die Sprechertabelle des Berichts: das Label, den anzuzeigenden Namen und wie Sie ihn identifiziert haben.

    • Zeigen Sie einen anderen Namen nur mit Beleg an: die Person wird mit Namen angesprochen, stellt sich vor oder das Label ist ein offensichtlicher Tippfehler. Dokumentieren Sie den Beleg.
    • Ein Label eines Konferenzraumgeräts bleibt der Raum. Notieren Sie, wer dort gehört oder angesprochen wurde, und schreiben Sie die Äußerungen nicht einer einzelnen Person zu, es sei denn, das Transkript macht es eindeutig.
    • Personen, die nur in der Kopfzeile Transcription: genannt werden, waren anwesend, haben aber nicht unbedingt gesprochen.
    • Notieren Sie Personen, die erwähnt werden, aber nicht sprechen, mit der Fundstelle.
    • Lösen Sie Vornamen nur dann zu vollständigen Namen auf, wenn es eindeutig ist.
  5. Elemente extrahieren mit diesen Tests:

    • Entscheidung: eine Wahl zwischen Optionen wurde getroffen oder akzeptiert („gehen wir mit“, „einverstanden“, „wir machen“, oder ein Vorschlag ohne Einwand). Status: Zugestimmt, Vorläufig oder Vorgeschlagen.
    • Wesentliche Aussage: etwas, das Umfang, Design, Zeitplan, Kosten oder Risiko ändern würde, wenn es falsch wäre: Fakten über Systeme, Einschränkungen, Abhängigkeiten, Zahlen, Daten, Zusagen, genannte Risiken. Kein Smalltalk oder Wiederholungen. Ziel: 12 oder weniger, indem zusammenhängende Aussagen zusammengefasst werden.
    • Aktionspunkt: eine zukünftige Aufgabe mit einem Verb, erbeten oder angeboten („ich werde“, „kannst du“, „wir müssen“).
    • Offene Frage: aufgeworfen und nicht geklärt, bevor das Meeting weiterging.
  6. Verantwortliche zuweisen für jeden Aktionspunkt. Verantwortliche können alle genannten Personen sein, auch Abwesende.

    • Explizit: benannt und gefragt, hat nicht abgelehnt.
    • Freiwillig: der Sprecher sagte „ich werde …“.
    • Delegiert: einer abwesenden oder schweigenden Person zugewiesen. Markieren Sie (nicht anwesend) und notieren Sie, wer es zugewiesen hat.
    • Abgeleitet: folgt aus der genannten Rolle oder Zuständigkeit. Schreiben Sie die Begründung auf.
    • Nicht zugewiesen: keins der oben genannten. Erfinden Sie niemals einen Verantwortlichen.

    Notieren Sie Fälligkeitsdaten nur, wenn sie genannt wurden.

  7. Belege anhängen an jedes Element:

    • Mit Zeitstempeln: [T042 00:12:31 Sprecher] „wörtliches Zitat“.
    • Ohne Zeitstempel (has_timestamps: false): [T042 Sprecher] „wörtliches Zitat“.
    • Sprecher ist das Label exakt wie im Turn-Index, auch wenn die Sprechertabelle einen anderen Namen zeigt. Verwenden Sie Anzeigenamen überall sonst.
    • Zitate sind maximal 25 Wörter lang, exakt kopiert inklusive ASR-Fehlern. Verwenden Sie ... für Auslassungen. Zitieren Sie mehrere Turns, wenn sich eine Entscheidung über mehrere Turns hinweg bildet.
  8. Prüfen, was übernommen wurde (nur wenn previous_meeting_summary gesetzt ist). Lesen Sie nur die Tabellen „Aktionspunkte“ und „Offene Fragen“ dieses Berichts. Entscheiden Sie für jedes Element anhand dieses Transkripts, ob es Erledigt, In Bearbeitung, Noch offen, Fallengelassen oder Nicht erwähnt ist, und zitieren Sie den Turn, der dies zeigt. Markieren Sie ein Element niemals als Erledigt, ohne dass jemand dies sagt.

  9. Bericht schreiben an summary_path unter Verwendung der Vorlage. Schreiben Sie nur den Hauptteil; fügen Sie kein Frontmatter hinzu. Füllen Sie immer „Auf einen Blick“ aus. Fügen Sie „Für “ nur hinzu, wenn der Benutzer den Leser benennt, z. B. „für mich, ich bin Dana Ruiz“. Gehen Sie nie davon aus, wer der Leser ist.

  10. Transkriptionshinweise kennzeichnen: wahrscheinliche ASR-Fehler, Sprechernamen, die Sie durch Rückschlüsse zugeordnet haben, und jeden Eintrag in gaps (Inhalt könnte fehlen). Korrigieren Sie Zitate niemals stillschweigend.

  11. Zitate überprüfen und jede fehlschlagende Zeile korrigieren oder entfernen, bis sie bestanden ist:

    python "$S\verify_quotes.py" "<summary_path>"
    
  12. Bundle abschließen. Leiten Sie einen kurzen Titel aus dem Meeting-Inhalt und 3 bis 6 Themenschlagwörtern ab (Kleinbuchstaben, Kebab-Case). transcript und meeting-notes werden automatisch hinzugefügt.

    python "$S\finalize_bundle.py" "<transkript>" --summary "<summary_path>" --title "<titel>" --tags "tag-eins,tag-zwei" --alias "Label im Transkript=Anzeigename" --mentioned "Name (Kontext)" --meeting-date YYYY-MM-DD
    
    • --alias wiederholt sich einmal pro Sprecherlabel, das Sie in Schritt 4 zugeordnet haben. Teilnehmer werden dann standardmäßig zu den Anzeigenamen.
    • --mentioned wiederholt sich einmal pro Person.
    • --attendee "Name" wiederholt sich einmal pro Person, wenn Sie die Teilnehmerliste überschreiben müssen. --attendees "A, B (Raum: C, D)" funktioniert ebenfalls, da Kommas innerhalb von () oder [] nicht trennen.
    • Übergeben Sie --meeting-date nur, wenn meeting_date null war und der Benutzer Ihnen das Datum gegeben hat.
  13. Kurz im Chat berichten. Fügen Sie keine Tabellen ein.

    • Anzahl: Entscheidungen, Aussagen, Aktionspunkte, offene Fragen und übernommene Elemente.
    • Die Aufzählungspunkte aus „Auf einen Blick“.
    • Alles, was eine menschliche Prüfung erfordert: abgeleitete Sprechernamen, abgeleitete oder nicht zugewiesene Verantwortliche, Lücken und ASR-Hinweise.
    • Links zum Bericht und zum Turn-Index.

Mehrere Transkripte

python "$S\scan.py" "<ordner>" --recursive

Es listet jedes Transkript als new, turns-only, summarized oder not-a-transcript auf. Zeigen Sie dem Benutzer die ausstehenden (new und turns-only) und bestätigen Sie, bevor Sie beginnen. Verarbeiten Sie sie einzeln, beginnend mit dem ältesten Meeting, damit jedes das vorherige Meeting in seiner Serie finden kann. Führen Sie das vollständige Verfahren durch und berichten Sie für jedes, bevor Sie mit dem nächsten beginnen.

Verwandte Projektdokumente

Wenn der Arbeitsbereich zugehörige Architektur- oder Planungsdokumente enthält (einschließlich Zusammenfassungsdateien anderer Bundles), füllen Sie die optionale Tabelle „Verwandte Projektdokumente“ aus. Notieren Sie, ob jedes Element die dortigen Dokumente bestätigt, ihnen widerspricht oder sie erweitert.

Qualitätsprüfungen

  • verify_quotes.py besteht ohne Fehler.
  • Die Sprechertabelle hat eine Zeile für jedes Label im Turn-Index, und jede Namenszuordnung gibt ihren Beleg an.
  • Kein Verantwortlicher wird ohne expliziten, freiwilligen, delegierten oder erklärten abgeleiteten Beleg genannt.
  • Als „Zugestimmt“ markierte Entscheidungen zeigen ein Akzeptanzsignal, nicht nur einen Vorschlag.
  • Meinungen und Spekulationen werden als solche gekennzeichnet.
  • Verantwortliche, die nicht im Meeting waren, sind mit (nicht anwesend) markiert.
  • Jeder Eintrag in gaps erscheint unter den Transkriptionshinweisen.
  • Wenn es ein vorheriges Meeting gibt, hat jeder seiner Aktionspunkte und offenen Fragen eine Zeile in der Tabelle „Übernommen“.

Legacy-Bundles

Um ältere Bundles anzugleichen (z. B. input.txt neben <ordner>.turns.md), führen Sie python "$S\backfill.py" "<root>" für einen Probelauf aus, dann mit --apply. Führen Sie dann finalize_bundle.py pro Bundle mit einem Titel und Schlagwörtern aus. Backfill erstellt niemals einen vorhandenen Turn-Index neu, sodass vorhandene Zitate gültig bleiben.

Verwandte Skills