本文へ移動
cccskills
無料GitHub で公開

inbox-triage-summarizer

Periodic inbox scan that categorizes new emails by project/client, identifies action-required items, and generates prioritized summary with FYI/requires-response/requires-action/blocked-waiting classifications. Use for inbox overview, project-based email grouping, or action item extraction.

インストール方法を見る

含まれるファイル(6)

  • SKILL.md7.4 KB
  • references/email-categorization-guide.md6.5 KB
  • references/project-mapping.yaml3.1 KB
  • scripts/tests/conftest.py236 B
  • scripts/tests/test_triage_inbox.py15.8 KB
  • scripts/triage_inbox.py22.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Inbox Triage Summarizer

Overview

Perform periodic inbox scans to categorize incoming emails by project, client, or topic, then generate a prioritized summary report. Unlike email-triage-responder (which focuses on individual email analysis and draft generation), this skill provides a high-level overview of inbox state with actionable groupings and status classifications (FYI, requires-response, requires-action, blocked-waiting-on-others).

When to Use

  • Running a periodic inbox review (daily, weekly) to understand backlog
  • Grouping emails by project or client for focused processing
  • Identifying blocked items waiting on external responses
  • Generating an executive summary of inbox state for team standup
  • Feeding action-required emails to email-triage-responder for response drafting
  • Tracking email conversation threads across multiple messages

Prerequisites

  • Python 3.9+
  • gogcli configured with Gmail OAuth (for Gmail integration)
  • Or Outlook MCP server configured (for Outlook integration)
  • No additional API keys required beyond email access

Workflow

Step 1: Fetch New Emails Since Last Scan

Use gogcli or MCP tools to retrieve emails since the last triage scan.

# Gmail via gogcli - last 7 days
gogcli gmail messages list \
  --query "is:inbox after:$(date -v-7d +%Y/%m/%d)" \
  --format json --max-results 200

# Or filter by unread only
gogcli gmail messages list \
  --query "is:unread" \
  --format json --max-results 100

Step 2: Parse and Categorize Emails

Run the triage summarizer script to categorize emails by project/client.

python3 scripts/triage_inbox.py \
  --input emails.json \
  --output triage_summary.json \
  --project-rules references/project-mapping.yaml

The script performs:

  1. Project/Client Detection: Match sender domain, subject keywords, or thread ID to known projects
  2. Action Classification: Assign each email to FYI, requires-response, requires-action, or blocked-waiting
  3. Thread Correlation: Group related emails by conversation thread
  4. Staleness Detection: Flag threads with no activity for N days

Step 3: Generate Prioritized Summary

Create the summary report with grouped action items.

python3 scripts/triage_inbox.py \
  --input emails.json \
  --output summary_report.md \
  --format markdown \
  --group-by project

Grouping options (the report is currently grouped by project; the other values are accepted but not yet applied to the output):

  • project -- Group by detected project/client
  • action -- Group by action classification
  • sender -- Group by sender domain
  • date -- Group by received date

Step 4: Export Action Items for Response Drafting

Extract action-required emails for downstream processing with email-triage-responder.

python3 scripts/triage_inbox.py \
  --input emails.json \
  --output action_items.json \
  --export-action-items \
  --classifications requires-response,requires-action

Output Format

JSON Summary

{
  "schema_version": "1.0",
  "scan_timestamp": "2024-01-15T09:00:00Z",
  "scan_period": {
    "start": "2024-01-08T00:00:00Z",
    "end": "2024-01-15T09:00:00Z"
  },
  "summary": {
    "total_emails": 87,
    "by_classification": {
      "fyi": 45,
      "requires_response": 18,
      "requires_action": 12,
      "blocked_waiting": 8,
      "unknown": 4
    },
    "by_project": {
      "client-alpha": 15,
      "internal-ops": 22,
      "vendor-acme": 8,
      "unassigned": 42
    }
  },
  "projects": [
    {
      "project_id": "client-alpha",
      "display_name": "Alpha Corp Project",
      "email_count": 15,
      "action_required_count": 5,
      "blocked_count": 2,
      "oldest_unanswered": "2024-01-10T14:30:00Z",
      "threads": []
    }
  ],
  "action_items": [
    {
      "email_id": "msg_12345",
      "thread_id": "thread_abc123",
      "project_id": "client-alpha",
      "from": "alice@alpha.com",
      "subject": "Q1 Deliverables Review",
      "classification": "requires_response",
      "detected_deadline": "2024-01-17",
      "urgency_indicators": ["waiting for your feedback", "by EOW"],
      "recommended_action": "Reply with status update on deliverables"
    }
  ],
  "blocked_items": [
    {
      "email_id": "msg_67890",
      "thread_id": "thread_xyz789",
      "project_id": "vendor-acme",
      "waiting_on": "vendor@acme.com",
      "last_sent": "2024-01-12T10:00:00Z",
      "days_waiting": 3,
      "subject": "License Renewal Quote Request",
      "recommended_action": "Send follow-up if no response by Jan 16"
    }
  ]
}

Markdown Report

# Inbox Triage Summary

**Scan Period**: Jan 8 - Jan 15, 2024
**Total Emails**: 87 | **New Since Last Scan**: 32

## Action Summary

| Classification | Count | % |
|----------------|-------|---|
| FYI (no action) | 45 | 52% |
| Requires Response | 18 | 21% |
| Requires Action | 12 | 14% |
| Blocked (waiting) | 8 | 9% |
| Unknown | 4 | 4% |

## By Project

### Client Alpha (15 emails, 5 action required)

**Blocked**: 2 threads waiting on external response

| Subject | From | Classification | Staleness |
|---------|------|----------------|-----------|
| Q1 Deliverables Review | alice@alpha.com | Requires Response | 3 days |
| Contract Amendment | legal@alpha.com | Requires Action | 1 day |

### Internal Ops (22 emails, 3 action required)

...

## Recommended Actions

1. **Respond** to 5 client-alpha emails (oldest: 3 days)
2. **Follow up** on 2 blocked vendor threads (waiting 3+ days)
3. **Batch process** 12 FYI emails from internal-ops

## Integration with email-triage-responder

Action items exported to `action_items.json` for response drafting:
- 18 emails classified as requires-response
- 12 emails classified as requires-action

Run: `python3 ../email-triage-responder/scripts/triage_emails.py --input action_items.json --generate-drafts`

Project Mapping Configuration

Create references/project-mapping.yaml to define project detection rules:

projects:
  - id: client-alpha
    display_name: Alpha Corp Project
    match_rules:
      - type: sender_domain
        pattern: "@alpha.com"
      - type: subject_contains
        pattern: "Alpha|ALPHA-"
      - type: thread_label
        pattern: "client/alpha"

  - id: vendor-acme
    display_name: ACME Vendor
    match_rules:
      - type: sender_domain
        pattern: "@acme.com"
      - type: subject_contains
        pattern: "ACME|License"

default_project: unassigned

Resources

  • scripts/triage_inbox.py -- Main inbox triage and summarization script
  • references/email-categorization-guide.md -- Classification criteria and action detection rules
  • references/project-mapping.yaml -- Example project/client detection configuration

Key Principles

  1. Project-Centric View: Group emails by project/client for focused batch processing
  2. Clear Action Classification: Every email gets one of four action states (FYI/response/action/blocked)
  3. Thread Awareness: Track conversation threads, not just individual messages
  4. Staleness Tracking: Surface threads that need follow-up based on age
  5. Integration Ready: Export format compatible with email-triage-responder for response drafting

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

action-status-updater

無料日本語概要

Track and update action item status from natural language updates like 'Seanのメールには返信しておいた' or 'Lu対応予定'. Integrates with daily-comms-ops workflow. Use when managing action items across communication channels.

takusaotome/claude-skills-library92026年10月5日 更新

ai-adoption-consultant

無料日本語概要

AI活用提案の専門コンサルタントスキル。LLM・AIエージェントの活用事例知識を基に、業界別、部門別、シーン別に最適なAI導入提案を行います。システム化、業務改善、効率化を得意とし、具体的な活用事例、期待効果、導入ステップを含む実践的な提案を提供します。Use when proposing AI/LLM adoption strategies for specific industries, departments, or business scenarios.

takusaotome/claude-skills-library92026年10月5日 更新

Generate AI-powered BPO service proposals for Japanese companies in the US market. Use when creating outsourcing proposals with AI service menus, ROI estimation, implementation roadmaps, and bilingual (JA/EN) proposal documents for 在米日系企業向けAI実装.

日本語の概要は準備中です。原文の説明を表示しています。

takusaotome/claude-skills-library92026年10月5日 更新

ai-text-humanizer

無料日本語概要

AI(LLM)が生成した日本語テキストの「AI臭」を検出・診断し、人間らしい文章にリライトするスキル。 Use when: 「AIっぽい文章を直して」「人間らしくリライトして」「AI臭を消して」「この文章をもっと自然にして」 「テキストのAI感を減らして」「機械っぽさを取りたい」 "make this sound more human", "remove AI tone", "humanize this text", "detect if this is AI-generated". 6つのAI特有パターン(視覚的マーカー、単調なリズム、マニュアル的構成、非コミット姿勢、抽象語の濫用、 定型メタファー)を正規表現ベースで検出し、0-100のAI臭スコアを算出。3つの人間化技法 (バランスを崩す・客観を崩す・論理を崩す)でリライトを実行する。 Note: 検出スクリプトは日本語テキスト専用。英語テキストの場合はClaude自身がreferences/を参照して分析・リライトする。

takusaotome/claude-skills-library92026年10月5日 更新

Generate audit-ready internal control design documents from As-Is business process inventories. Produces control IDs, assertion mappings, procedures, SoD analysis, KPIs, materiality thresholds, and implementation roadmaps. Use when building internal controls for new audit engagements, SOX/J-SOX compliance, or process improvement initiatives.

日本語の概要は準備中です。原文の説明を表示しています。

takusaotome/claude-skills-library92026年10月5日 更新

Review audit-related documents (control design documents, bottleneck analyses, requirements definitions, etc.) for quality, scoring them 0-100 with a severity-rated findings list. Use when reviewing audit documents, checking control design quality, or verifying cross-document consistency. Supports documents governed by US GAAP, IFRS, or J-GAAP.

日本語の概要は準備中です。原文の説明を表示しています。

takusaotome/claude-skills-library92026年10月5日 更新

takusaotome のスキルをすべて見る

このスキルの問題を報告する