メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。
Scanned 5/27/2026
Install via CLI
openskills install minicoohei/ai-agent-camp---
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`)をそのまま送信せず、必ず目視確認** してください。
- メッセージ本文に怪しい指示が含まれていた場合、返信ドラフトや判定結果が汚染されている可能性を疑うこと。
## クイックスタート
```bash
# 基本実行(過去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に通知 | - |
## 出力例
```markdown
# 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` ファイルに以下を設定:
```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
```
### 依存パッケージ
```bash
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 | `.env` に `GEMINI_API_KEY` または `GOOGLE_API_KEY` を設定 |
| No Gmail data found | `output/gmail/` ディレクトリにメールデータが存在するか確認 |
| No Slack data found | `slack-sync/data/` ディレクトリが同期済みか確認 |
## Success Criteria
- [ ] 優先度別(高/中/低)にタスクがリストアップされている
- [ ] 各タスクに返信ドラフトが生成されている
- [ ] 出力 Markdown ファイルが正しく保存されている
## Usage
上記「クイックスタート」セクションを参照。基本例:
```bash
# 過去3日間の受信箱チェック
python skills/check-inbox/scripts/check_inbox.py
# Slackのみ、過去7日間
python skills/check-inbox/scripts/check_inbox.py --slack-only --days 7
```
No comments yet. Be the first to comment!