# Transcript Digest

> ~/.claude/board/transcripts/ に溜まった Meet の書き起こし（一人での独り言・実会議の両方）から、決まったこと・その理由・自分のタスクを抽出し、Council の Activity と Board に流し込む。処理済みファイルは再処理しない。引数でファイル名を直接指定することも可能。

- Skill: `sugawaramasaya/transcript-digest` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sugawaramasaya/transcript-digest`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sugawaramasaya/transcript-digest/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: sugawaramasaya (https://skillmd.com/u/sugawaramasaya)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/sugawaramasaya/transcript-digest

---


# transcript-digest スキル

`~/.claude/board/transcripts/` の書き起こしを読み、**話した内容を整理して構造化する**。人は吐き出すだけ、整理はこちらの仕事、という分担を実装したスキル。

`meeting-digest` が Notion の議事録を入力にするのに対し、こちらは **Meet の生の書き起こし**（Gemini メモ / 文字起こし）を入力にする。抽出後の投入先は同じ。

## 実行手順

### 1. 対象ファイルの決定

引数にファイル名が指定されていればそれ1件のみを対象にする（例: `/transcript-digest 2026-07-29-proj-alpha.md`）。

引数がなければ **未処理の全ファイル**を対象にする:

```bash
ls ~/.claude/board/transcripts/*.md 2>/dev/null
cat ~/.claude/board/transcripts/.processed.log 2>/dev/null
```

`.processed.log` は1行1レコードの追記専用ファイル（`<ファイル名>\t<処理日時ISO>\t<生成タスク数>`）。
**1列目に載っているファイル名は処理済み**なので除外する。`README.md` も除外する。

対象が0件なら「未処理の書き起こしはありません。」と表示して**何も書き込まずに終了**する（ヘルパーを一切呼ばない）。

### 2. 本文の読み取り

対象ファイルを Read する。frontmatter から `date` / `meeting` / `kind` / `source_url` を取得する。
`kind` が無い場合は本文から推定する（発言者が1人だけなら `solo`、複数なら `meeting`）。

書き起こしは Gemini の要約メモと生の文字起こしのどちらもありうる。**生の文字起こしの場合、言い淀み・繰り返し・脱線が大量に含まれるのが正常**であり、それを理由に情報を捨てない。脈絡のなさは話者の思考の順序であって、ノイズではない。

### 3. 抽出（kind で観点を変える）

#### kind: solo（一人で話した独り言）

本人が頭の中を吐き出したものなので、「会議の決定事項」ではなく **本人の判断とその理由**を拾う。

**① 下した判断とその理由**
- 「〜にする」「〜でいく」「〜はやめる」等の帰結と、その直前後に語られた理由をセットで拾う
- 理由が語られていない判断は、理由を**捏造せず**「理由の言及なし」と明記する

**② まだ決めていない論点**
- 「迷っている」「どっちがいいか」「悩ましい」「保留」等。A案とB案が並置されている箇所
- **これは後で本人が決める必要がある未決事項**なので、必ず拾う

**③ 守りたい一線・懸念**
- 「ここは譲れない」「〜だけは避けたい」「〜が崩れると困る」等
- 品質・体験・整合性についての危惧

**④ 次にやること**
- 「やらないと」「確認する」「聞く」「作る」等、本人が自分に課している作業

#### kind: meeting（実会議の書き起こし）

`meeting-digest` と同じ観点で抽出する。

**① 決まったこと** — 「着地」「確定」「決定」「見送り」「方針」。進捗の羅列は対象外、変化・決定のみ
**② なぜそうなったか** — 制約・外部要因・数値根拠（あれば必ず含める）。**突然タスクを渡されたときに「なぜ自分がこれをやるのか」がわかるレベルで書く**
**③ 自分へのタスク** — me / 自分 / me への言及を最優先。「情報共有のみ」「DONE」「完了」は除外

### 4. 出力フォーマット

ファイルごとに新しい順で表示する。

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎙 2026-07-29 | Project Alpha 結果カードの詰め（独り言）
📄 2026-07-29-proj-alpha-result-card.md
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

**下した判断＆理由**
- ✅ 〜にする
  📖 〜のため

**まだ決めていない**
- ❓ 〜（A案: 〜 / B案: 〜）

**守りたい一線**
- 🛡 〜

**次にやること**
- [ ] 〜

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
合計 書き起こし: X 件 / タスク: Y 件 / 未決の論点: Z 件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

`kind: meeting` の場合は見出しを「**決まったこと＆なぜ**」「**自分のタスク**」に読み替える（`meeting-digest` と同形式）。

**フォーマットルール:**
- `📖` の理由は必須。書き起こしに理由が無ければ「理由の言及なし」と書く。**推測で埋めない**
- 「まだ決めていない」は0件でも `なし` と明記する（見落としを防ぐため省略しない）

### 5. Activity への書き出し

表示が完了したら、**書き起こし1件＝1エントリ**として Council の Activity に append する。

- `kind`: `"digest"`
- `source`: `"transcript-digest"`
- `title`: `"<meeting> の整理"`（solo なら `"<meeting>（独り言）の整理"`）
- `summary`: 下した判断／決まったことを1〜2文に圧縮
- `action_items`: 「次にやること」の配列（無ければ `[]`）
- `project`: 判別できれば案件名
- `links`: `source_url` があれば `[{url: source_url, label: meeting}]`

```bash
cat <<'JSON' | node ~/.claude/scripts/council-activity-append.js
{
  "kind": "digest",
  "source": "transcript-digest",
  "title": "Project Alpha 結果カードの詰め（独り言）の整理",
  "summary": "ある項目の紹介文は生成せず参考値＋注釈に留める方針で自分の中では固めた。表示の制約で体験が重くなるため。",
  "action_items": ["Member Aに掲載外の項目の扱いを確認する"],
  "project": "Project Alpha",
  "links": []
}
JSON
```

### 6. Board へのタスク切り出し

「次にやること」のうち、**自分が実行すべき具体的な未完了作業**だけを選別して1件ずつ append する。

- **除外**: すでに対応済みのもの／担当が明確に他者のもの／作業に落ちていない感想
- **priority**: 期限の言及や強い切迫があれば `high`、通常は `medium`、軽微なフォローは `low`
- **title**: `[<meeting>] <タスク>` の形にする
- **activity_source**: `"transcript-digest"` 固定
- 対象が0件ならヘルパーを呼ばない

```bash
cat <<'JSON' | node ~/.claude/scripts/council-task-append.js
{
  "title": "[Project Alpha 結果カードの詰め] Member Aに掲載外の項目の扱いを確認する",
  "priority": "medium",
  "activity_source": "transcript-digest"
}
JSON
```

`id` は title + activity_source から決定的に生成されるため、**再実行しても増殖せず、Board 上で編集・完了・アーカイブ済みのタスクを復活させない**。

### 7. 処理済みの記録（最後に必ず実行）

Activity と Board への書き出しが終わったファイルについて、`.processed.log` に**追記**する。

```bash
printf '%s\t%s\t%s\n' "2026-07-29-proj-alpha-result-card.md" "$(date -Iseconds)" "2" >> ~/.claude/board/transcripts/.processed.log
```

**必ず `>>` を使う。** `>`（上書き）は board-guard がブロックする。

書き出しに失敗したファイルは記録しない（次回また対象になるほうが、取りこぼすより安全）。

## 未決の論点について

`kind: solo` で拾った「まだ決めていない」は、Activity の summary には含めるが **Board のタスクにはしない**（作業ではなく判断待ちのため）。ターミナル出力で本人に見せるところまでが役割。

これらは Phase 3 のデザイン判断OS（`~/.claude/board/design-os/`）の重要な素材にもなる。「何を迷い、最終的にどう決めたか」が判断の癖そのものだからである。

## 境界

- 対象は **会社（@example.com）のデータのみ**。`~/side-projects`（副業）の内容は扱わない
- 外に出るもの（Slack投稿・Figmaコメント）は生成しない。このスキルは整理と記録までで、送信・決定は本人が行う

