はじめに
Personal OS シリーズの #2 です。
今回は Gmail の未読メールを自動で分類し、対応が必要なものをタスクに追記・返信案を生成する仕組みを紹介します。
他のシリーズ記事はこちら
メールをタスク化する仕組み
まず、前提として、Gmail 側でプロモーション・ニュースレターなどのメールは自動既読にしています。
そのため、未読メール=何らかの対応が必要な可能性があるメールという状態にしています。
その中で、/mail-task スキルを実行することで、
未読メールをさらに分類し、本当に対応が必要なものだけをタスク管理ドキュメントに追記します。
-
/mail-taskを実行する- /update-mail-category # 分類ルールを最新の状態に更新する
- 未読メールを全件取得する(Gmail MCP)
- mail-category.md のルールで分類する
- 対応必要メールを daily-task に追記する
- /mail-reply # 返信が必要なメールの返信案を作成する
Skill 側の分類ルール
分類ルールは references/mail-category.md に書いておき、
AIが毎回このファイルを読んで判断できるようにします。
references/mail-category.md では、3つのカテゴリーにわけていますです。
| カテゴリー | 内容 |
|---|---|
| 対応必要 / 返信しない | 承認・確認など、アクションは必要だが返信は不要 |
| 対応必要 / 返信する | 外部からの個人宛メール。返信案を生成する |
| 対応不要 | GitHub 通知・社内自動通知・ミーティング招待など |
どのルールにも当てはまらなかったメールは 未分類 として扱います。
未分類メールには次回処理時に自分でカテゴリーを指定する欄が追記されるため、分類ルールを育てていける仕組みになっています。
/mail-task
SKILL.md にはこのような手順を書いています。
---
name: mail-task
description: 受信トレイの未読メールを取得してカテゴリー分類し、対応必要メールをタスクリストに追記する。
---
# /mail-task
## 手順
### Step 1: カテゴリーを更新する
/update-mail-category スキルを実行する。
前回処理から自分が分類した未分類メールがあれば、
mail-category.md に反映してから新しいメールを処理する。
### Step 2: 未読メールを取得する
Gmail MCP の search_threads で受信トレイの未読メールを全件取得する。
- クエリ: is:unread in:inbox
### Step 3: カテゴリーに分類する
mail-category.md のルールに従い、上から順に評価して分類する。
### Step 4: タスクリストに追記する
daily-task の「対応必要メール」セクションに追記する。
すでに記載済みのスレッドIDは重複として追記しない。
### Step 5: 更新ログを更新する
### Step 6: 返信案を作成する
「対応必要 / 返信する」メールが1件以上ある場合、
全件に対して /mail-reply を実行する。
Step 1 で分類ルールを先に更新してから処理するのがポイントです。
前回「未分類」にしたメールに自分がカテゴリーを付けていれば、それを mail-category.md に反映したうえで今回のメールを処理します。使うたびに分類精度が上がっていきます。
/mail-reply
「対応必要 / 返信する」メールが検出された場合に自動で呼び出されます。
メールの全文を取得して返信案を作成し、daily-task ドキュメントの ## メール返信 セクションに記録します。
メールの自動送信は行いません。 返信案はあくまで提案であり、内容を確認・修正してから自分で送信します。
---
name: mail-reply
description: ダイレクトメッセージのメール内容を取得し、返信案を考えてタスク管理ドキュメントに記録する。メールの自動送信は絶対に行わない。
---
# /mail-reply
## 手順
### Step 1: メールの内容を取得する
Gmail MCP の get_thread で該当メールの全文を取得する。
### Step 2: 返信案を作成する
- 相手の依頼・質問・提案に正確に応答する内容にする
- 日本語・英語はメール本文の言語に合わせる
- 自動送信は絶対にしない
### Step 3: タスク管理ドキュメントを更新する
daily-task の「## メール返信」セクションに追記する。
生成されるドキュメント
スキルが実行されると タスク管理ドキュメントに以下のように書き込まれます。
### 対応必要メール
- [ ] 〇〇の承認をお願いします
- 送信者: system@example.com
- メールID: 18f2a3b4c5d6e7f8
- 〇〇さんの休暇申請の承認依頼です。
- [ ] デザインの件でご相談があります
- 送信者: partner@external.com
- メールID: 18f2a3b4c5d6e7f9
- 新機能のデザインについて相談したいとのことです。
## メール返信
### デザインの件でご相談があります
**メール内容**
〇〇様
お世話になっております。
新機能のデザインについて...(全文)
**メール返信内容**
〇〇様
ご連絡ありがとうございます。
ご相談の件、承知しました。...(返信案)
まとめ
Gmail 側の自動既読設定と Skill 側の分類ルールを組み合わせることで、
未読メールを「本当に対応が必要なもの」に絞り込んでいます。
分類ルールは mail-category.md に書かれているだけなので、
新しいパターンが出てきたときにファイルを更新するだけで対応できます。
返信案の生成まで自動で行いますが、送信は必ず人間が確認してから行う設計にしています。
最後まで読んでくださってありがとうございます!
普段はデザインやフロントエンドを中心に Qiita に記事を投稿しているので、ぜひ Qiita のフォローと X(Twitter) のフォローをお願いします。
