meeting-digest スキル
プロダクトチームの議事録DBから直近 N 日間の会議メモを収集し、「何が決まったか・なぜそうなったか・自分がやること」を抽出して表示する。
自分が参加していない会議も対象とする。突然「これお願いします」と言われる前に意思決定の経緯ごとキャッチアップできるようにすることがこのスキルの目的。
実行手順
1. 日数の決定
引数が指定されている場合(例: 3d, 7d, 14d)はその日数を使用する。
指定がなければデフォルトは 3日(毎朝の確認に向いた短めの設定)。
今日の日付から N 日前の日付を算出して start_date とする。
2. 議事録の検索(複数クエリを並行実行)
以下の 4 クエリを notion-search で 並行実行 して、プロダクトチームの全会議を幅広く収集する:
| query | 対象会議 |
|---|---|
"Weekly Product Planning" |
Project Beta・Project Alpha の週次PP |
"Ads Product Strategy" |
広告と本体プロダクトの週次戦略会議 |
"Project Alpha定例" |
Project Alphaの週次定例 |
"PdM Weekly" |
PdMとのMTG |
各クエリの共通パラメータ:
query_type:"internal"filters:{}(日付フィルターはNotion検索が不安定なため指定しない)page_size:5
全クエリの結果をマージし、以下でフィルタリングする:
- Notion ページ(
type: "page")のみ残す timestampがN 日以内(Past day / N days ago 等の表記)のものに絞る- 重複排除(同じ URL は 1 件に)
3. 議事録本文の取得(並行実行)
ステップ2で得た全ページを notion-fetch で すべて並行取得 する(最大 8 件)。
4. コンテンツの分析・抽出
各議事録に対して以下を抽出する。「なぜそうなったか」の背景を必ず決定事項とセットで記載することが最重要。
① 決まったこと
- 「着地:」「確定」「決定」「見送り」「方針:」「〜で進める」等のキーワード前後を拾う
- 進捗・状況の羅列は不要。変化・決定・着地のみを対象とする
- 前回から変わった点を優先する
② なぜそうなったか(背景・経緯)
- 決定に至った理由・制約・外部要因を記載する
- 「〜のため」「〜という課題があったので」「〜が判明したことから」等の理由文を探す
- 数値根拠(主要指標 X%低下、KPI Y件等)がある場合は必ず含める
- 過去の経緯(前回からの方針変更等)も含める
- 突然タスクを渡されたときに「なぜ自分がこれをやるのか」がわかるレベルで書く
③ 自分へのタスク
NA:Next Action:セクション内のアイテムを全件列挙する- me / 自分 / me に言及されたアイテムを最優先で拾う
- エンジニアリング関連タスク(実装、開発、API、修正、確認、テスト等)はチーム全体向けでも含める
- 「情報共有のみ」「DONE」「完了」は除外する
5. 出力フォーマット
会議ごとに新しい順で表示する:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 2026-05-19 | Weekly Product Planning(PP)
🔗 https://www.notion.so/...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**決まったこと&なぜ**
- ✅ 〜に決定
📖 〜という課題があったため。〜のデータから〜が判明したため
- ✅ 〜を見送り
📖 〜という懸念があったため
**自分のタスク**
- [ ] 〜
なし(ない場合)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
合計 会議: X 件 / 自分のタスク: Y 件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
フォーマットルール:
📖で背景・理由を1〜2文で添える(必須)- 自分が参加していない会議も同じ形式で表示する
- 決定・変化がない会議(進捗共有のみ)は省略する
- タスクがない会議でも、決定事項があれば表示する(背景理解のため)
- 決定事項もタスクもない会議は省略する
対象期間内に該当議事録が 0 件の場合は「過去 N 日間に関連する議事録はありませんでした。」と表示する。
Council 連携(Activity への自動書き出し)
ターミナルへの表示が完了したら、決定事項・自分のタスクがある会議について、会議1件=1エントリとして Council アプリの Activity フィードに書き出す(会議ごとに背景・タスクの粒度が異なるため、まとめて1エントリにすると背景情報が薄れてしまうことを避けて会議単位を採用する)。
- 対象: 出力フォーマットに実際に表示した会議のみ(決定・タスクが無く省略した会議は対象外)。
- 該当議事録が0件の場合は書き出しをスキップする(ヘルパーを呼ばない)。
- 会議ごとに以下を1エントリとして append する(会議が複数あれば、その数だけヘルパーを呼ぶ):
kind:"digest"source:"meeting-digest"title:"<会議名> の決定事項"(例:"Weekly Product Planning の決定事項")summary: 「決まったこと&なぜ」を1〜2文に圧縮したものaction_items: 「自分のタスク」の配列(タスクが無い会議は空配列[])project: 会議の主題プロジェクト名(判別できれば。不明なら省略可)links:[{url: 議事録のNotion URL, label: 会議名}]
呼び出し例(JSON に日本語・引用符・改行を含むため stdin パイプを推奨):
cat <<'JSON' | node ~/.claude/scripts/council-activity-append.js
{
"kind": "digest",
"source": "meeting-digest",
"title": "Weekly Product Planning の決定事項",
"summary": "指標低下のデータを受けてタイトル文言を旧称へ復帰する方針に決定。",
"action_items": [
"タイトル文言変更のFigmaモック作成"
],
"project": "Project Gamma",
"links": [
{"url": "https://www.notion.so/...", "label": "Weekly Product Planning 2026-05-19"}
]
}
JSON
会議が複数ある場合は、この呼び出しを会議ごとに繰り返す(id/ts/date は指定しないため、ヘルパーが自動補完し衝突しない)。
Board へのタスク切り出し(AI選別・自動)
Activity への書き出しに続けて、各会議の「自分のタスク」を対象に、タスク化すべきものだけを選別して1件ずつ council-task-append.js に渡す(Council アプリの Board に Task として現れる)。
- 選別基準: 「自分(me)が実行すべき具体的な作業」で「未完了」のもの。「自分のタスク」抽出時点で既に「情報共有のみ」「DONE」「完了」は除外済みだが、以下も追加で除外する:
- すでに返信・対応済みで完結しているもの
- チーム全体向けで自分の担当が明確でないもの(エンジニアリング関連は含める方針だが、明確な担当者が別にいる場合は除外)
- priority: 会議の「決まったこと」の重要度・期限言及から判断する(期限・締切の言及や強い依頼表現があれば
high、通常のタスクはmedium、軽微なフォローアップはlow)。 - activity_source:
"meeting-digest"固定(会議名はtitle側に含める)。 - 選別後の対象が 0件ならヘルパーを呼ばない。
- 呼び出しはタスク1件=1回、stdin パイプ推奨(JSON に日本語・引用符が含まれるため):
cat <<'JSON' | node ~/.claude/scripts/council-task-append.js
{
"title": "[Weekly Product Planning] タイトル文言変更のFigmaモック作成",
"priority": "medium",
"activity_source": "meeting-digest"
}
JSON
対象が複数ある場合は、この呼び出しをタスクごとに繰り返す(id は title+activity_source から決定的に生成されるため、同じタスクを再実行しても増殖せず、Board 側でユーザーが編集・完了・アーカイブ済みのタスクを上書き復活させない)。