mcpField
M
meeting-processor

meeting-processor

github.com/glebis生産性401191 回インストール1 日前に更新
リポジトリ

meeting-processor について

Meeting Processorは、会議の文字起こしを構造化して分析するスキルです。会議の種類を判定し、不足情報を対話形式で確認できるほか、分析を文字起こしに追記し、関連する準備メモをリンクします。

主な機能

  1. 01会議の種類を自動判定
  2. 02約束、アクション、背景の抽出
  3. 03不足情報の対話的な確認
  4. 04バッチ処理と種類の指定
  5. 05関連する会議準備メモのリンク

活用シーン

  1. 01営業や事業開発の通話を処理
  2. 02パートナーシップ検討会議を分析
  3. 03文字起こしからフォローアップ項目を抽出
  4. 04準備メモを会議記録にリンク

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/glebis/claude-skills --skill meeting-processor

インストール後、Claude Code で/meeting-processorを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

process_interactive.sh
README.md
skill.json
.claude-plugin/
plugin.json
scripts/
detectors.py
interactive.py
process_with_answers.py
process.py
scripts/extractors/
__init__.py
coaching.py
leadgen.py
partnership.py

詳細

Meeting Processor

会議の種類を自動検出し、種類に応じた抽出を行う、インタラクティブな確認機能をオプションで備えた、インテリジェントな会議文字起こし処理ツールです。

使用するタイミング

  • Fathom または Granola の文字起こしを同期した後(/fathom --today、/granola export)
  • 会議の文字起こしの処理、分析、要約を依頼されたとき
  • YYYYMMDD-*.md に一致する新しい会議の文字起こしが vault のルートに現れたとき
  • コーチングセッションの場合は、代わりに coaching-session-summarizer スキルに委任します

前提条件

pip install openai pyyaml

CEREBRAS_API_KEY 環境変数が必要です(Cerebras API と llama-3.3-70b を使用します)。

対応する会議の種類

種類説明主な抽出項目
leadgen営業/事業開発の通話コミットメント、課題、予算、スケジュール、意思決定者、商談段階、感情
partnership協業/パートナーシップの検討機会の概要、価値提案、戦略的適合性、技術的ニーズ、適合性評価
coachingコーチング/メンタリングセッションインサイト、決定事項、アクションアイテム、テーマ、感情の推移、手法、セッションの質
internal社内チーム会議近日対応予定

使い方

インタラクティブモード(デフォルト)

プロセッサーを実行すると、会議の種類を自動検出し、確認の質問をします。

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode interactive

インタラクティブな処理の流れ:

  1. スクリプトが文字起こしを分析し、会議の種類を検出します
  2. LLM を使って構造化データを抽出します
  3. 不足している項目や曖昧な項目を特定します
  4. 質問を JSON として返します(終了コード 2 はユーザーとのやり取りが必要であることを示します)
  5. __INTERACTIVE_QUESTIONS__ マーカーの間にある JSON を解析します
  6. AskUserQuestion を使って、各質問の回答を収集します
  7. 回答を一時 JSON ファイルに保存し、process_with_answers.py を使って再実行します

インタラクティブな質問への対応:

スクリプトがコード 2 で終了した場合、出力から質問の JSON を解析します。各質問には以下が含まれます。

  • question:質問文
  • header:短いラベル(回答キーとして使用)
  • options:AskUserQuestion 用の {label, description} の配列

回答を収集したら、次の 2 つの一時ファイルを作成します。

  • questions.json — 元の質問コンテキスト(partial_data、meeting_type、transcript_file を含む)
  • answers.json — {header_lowercase: selected_label} のマップ

次に実行します。

python3 ~/.claude/skills/meeting-processor/scripts/process_with_answers.py questions.json answers.json
バッチモード

ユーザーとのやり取りなしで、信頼度の高い情報のみを抽出します。

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --mode batch
会議の種類を強制指定

自動検出をスキップします。

python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type leadgen
python3 ~/.claude/skills/meeting-processor/scripts/process.py <transcript-file> --type partnership

出力

分析結果は、文字起こしファイルに ## Meeting Analysis セクションとして追記されます。フロントマターは meeting_type、processed_date、processing_mode で更新されます。

Leadgen の出力構造
  • コミットメントとアクション — 期限と担当者を含む
  • フォローアップ — 日程が決まっている場合は次回会議の日付
  • クライアントの状況 — 課題、予算、スケジュール、意思決定者
  • 商談の評価 — 段階(cold/warm/hot)、確度(1~5)、障害、感情
Partnership の出力構造
  • 機会 — 双方にとっての説明と価値提案
  • コミットメントとアクション — 期限と担当者を含む
  • フォローアップ — 日程が決まっている場合は次回会議の日付
  • パートナーシップの状況 — 戦略的適合性、技術的ニーズ、リソース、課題
  • 機会の評価 — 適合性(strong/medium/weak)、準備状況、成功要因、感情

ステップ 2:準備メモへの自動リンク

会議分析が完了した後(ステップ 1)、一致する会議準備メモをセッションノートに自動でリンクします。これにより、/meeting-prep link を手動で実行する必要がなくなります。

動作の仕組み
  1. 処理済みのセッションノートの親ディレクトリからミーティングディレクトリを特定します(パスをハードコードしないでください)。

  2. 処理済みのノートからセッションのメタデータを抽出します。

    • フロントマターから date を取得します(YYYYMMDD 形式)。
    • フロントマターから participants を取得します(名前のリスト)。
    • participants フィールドがない場合は、トランスクリプトのヘッダーまたは出席者リストから名前を抽出します。
  3. 一致する準備ノートを検索します。

    find <MEETINGS_DIR> -name "YYYYMMDD-prep-*" -type f 2>/dev/null
    

    YYYYMMDD はセッションの日付です。

  4. 一致を検証します。候補となる準備ノートごとにフロントマターを読み取り、以下を確認します。

    • date フィールドがセッションの日付と一致すること。
    • participant フィールドがセッション参加者のいずれかと一致すること(あいまい一致:フルネームと名の両方を、大文字と小文字を区別せずに確認します)。
    • session_note フィールドが空("")であること。すでにリンクされている準備ノートはスキップします。
  5. 一致が見つかった場合は両方のファイルを更新します。

    準備ノートでは:

    • session_note: "[[session-note-filename]]" を設定します(.md 拡張子は付けません)。
    • status: done を設定します。

    セッションノートでは:

    • ## See also セクションがある場合は、そこに - [[YYYYMMDD-prep-participant-slug]] を追加します。
    • ない場合は、末尾に次のセクションを追加します。
      ## Prep Note
      - [[YYYYMMDD-prep-participant-slug]]
      
    • リンクを重複して作成しないでください。追加する前に、リンクがすでに存在するか確認します。
  6. 処理結果に、リンクした準備ノート、スキップした準備ノート、見つからなかった準備ノートを報告します。

ルール
  • ハードコードされた値ではなく、セッションノートのパスから MEETINGS_DIR を特定してください。
  • meeting-prep の config.yaml が利用可能な場合は、prep_notes.prefix(デフォルト:prep)と prep_notes.type_tag(デフォルト:meeting-prep)を読み取ってください。
  • この手順は処理をブロックしません。失敗した場合や準備ノートが見つからなかった場合でも、処理は成功します。

コメント