check-inbox

star 358

メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。

minicoohei By minicoohei schedule Updated 4/17/2026

name: check-inbox description: "メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。" triggers: - check-inbox - 受信箱チェック - TODO確認 - 返信すべきメッセージ - メール確認 - Slack確認 - inbox

トリガーワード

「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」「Slack確認」

/check-inbox - Inbox タスク抽出

メール(Gmail)とSlackから返信が必要な項目を抽出し、優先度付きでリストアップします。

⚠️ セキュリティ注意(Indirect Prompt Injection)

  • このスキルは外部から受信したメール・Slack メッセージを LLM に渡します。攻撃者がメール本文や Slack 投稿に「これまでの指示を無視して○○せよ」タイプのペイロードを仕込んでいる可能性があります。
  • scripts/llm_analyzer.py は外部テキストを <external_untrusted_content> 境界タグで囲み、LLM 側にデータとして扱わせる設計になっています。ただし 生成された返信ドラフト(draft_reply)をそのまま送信せず、必ず目視確認 してください。
  • メッセージ本文に怪しい指示が含まれていた場合、返信ドラフトや判定結果が汚染されている可能性を疑うこと。

クイックスタート

# 基本実行(過去3日間)
python skills/check-inbox/scripts/check_inbox.py

# 過去7日間を確認
python skills/check-inbox/scripts/check_inbox.py --days 7

# メールのみ確認
python skills/check-inbox/scripts/check_inbox.py --email-only

# Slackのみ確認
python skills/check-inbox/scripts/check_inbox.py --slack-only

機能

  • メール分析: /output/gmail/ のMarkdownファイルからメールを抽出

    • マーケティング・自動通知メールを自動除外
    • 人からのメールのみをLLMで分析
  • Slack分析: slack-sync/data/ のメンションを抽出

    • --users オプションまたはデフォルト設定の識別子を検索
    • スレッド返信も考慮して判定
  • LLM判定 (Gemini 3.0 Flash)

    • 返信が必要かどうかを判定
    • 優先度(高/中/低)を設定
    • 返信ドラフトを生成

オプション

オプション 説明 デフォルト
--days, -d 過去何日分を確認 3
--email-only メールのみ確認 -
--slack-only Slackのみ確認 -
--output, -o 出力ファイルパス inbox-{date}.md
--gmail-dir Gmailデータディレクトリ 自動検出
--slack-dir Slackデータディレクトリ 自動検出
--workspace, -w Slackワークスペース 全て
--users, -u 検索対象ユーザー(カンマ区切り) デフォルトリスト
--no-llm LLM分析をスキップ -
--quiet, -q 進捗表示を抑制 -
--notify-line 結果をLINEに通知 -

出力例

# Inbox Tasks - 2026-01-28

## 🔴 高優先度

### 📧 メール
- **[Re: プロジェクト進捗]** from: 田中太郎 (2026-01-27)
  - 理由: 期限付きの確認依頼
  - 返信案: 「ご連絡ありがとうございます。明日中に確認し、ご報告いたします。」

### 💬 Slack
- **[#pj_xxx]** @{YOUR_NAME} (2026-01-27 14:30)
  - 内容: APIの仕様について質問があります
  - 理由: 直接質問、要回答
  - 返信案: 「APIの仕様について確認しました。...」

## 🟡 中優先度
...

---
生成日時: 2026-01-28 10:00:00
対象期間: 過去3日間
メール件数: 15件 → 要対応: 3件
Slack件数: 42件 → 要対応: 8件

環境設定

必要な環境変数

.env ファイルに以下を設定:

GEMINI_API_KEY=your_api_key_here
# または
GOOGLE_API_KEY=your_api_key_here

# LINE通知(--notify-line 使用時)
LINE_CHANNEL_ACCESS_TOKEN=your_line_access_token
LINE_USER_ID=your_line_user_id

依存パッケージ

uv add google-generativeai python-dateutil

データディレクトリ

以下のパスを自動検出:

メール:

  • ./output/gmail/
  • ~/output/gmail/

Slack:

  • ./slack-sync/data/
  • ~/githubactions_fordata/slack-sync/data/

関連スキル

  • /email-tasks - メール専用タスク抽出
  • /slack-tasks - Slack専用タスク抽出

Overview

Gmail と Slack から返信が必要なメッセージやタスクを自動抽出するスキルです。Gemini 3.0 Flash で文脈判定し、優先度付きの返信ドラフトを生成します。

Troubleshooting

エラー 解決方法
API key not found .envGEMINI_API_KEY または GOOGLE_API_KEY を設定
No Gmail data found output/gmail/ ディレクトリにメールデータが存在するか確認
No Slack data found slack-sync/data/ ディレクトリが同期済みか確認

Success Criteria

  • 優先度別(高/中/低)にタスクがリストアップされている
  • 各タスクに返信ドラフトが生成されている
  • 出力 Markdown ファイルが正しく保存されている

Usage

上記「クイックスタート」セクションを参照。基本例:

# 過去3日間の受信箱チェック
python skills/check-inbox/scripts/check_inbox.py

# Slackのみ、過去7日間
python skills/check-inbox/scripts/check_inbox.py --slack-only --days 7
Install via CLI
npx skills add https://github.com/minicoohei/ai-agent-camp --skill check-inbox
Repository Details
star Stars 358
call_split Forks 13
navigation Branch main
article Path SKILL.md
More from Creator