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

email-thread-summarizer

Analyze email threads to extract current status, pending actions, timeline of events, and identify stale/outdated information. Use when asked to summarize email conversations, find outstanding action items in email chains, or detect when a thread summary is out of date.

インストール方法を見る

含まれるファイル(9)

  • SKILL.md6.5 KB
  • references/thread_analysis_patterns.md6.9 KB
  • scripts/analyze_thread.py26.1 KB
  • scripts/check_staleness.py7.9 KB
  • scripts/generate_summary.py9.1 KB
  • scripts/tests/conftest.py236 B
  • scripts/tests/test_analyze_thread.py12.3 KB
  • scripts/tests/test_check_staleness.py10.8 KB
  • scripts/tests/test_generate_summary.py8.7 KB

SKILL.md(原文)

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

Email Thread Summarizer

Overview

Analyze email threads to extract structured intelligence: current status, pending actions, timeline of key events, and identification of stale/outdated information. The skill parses both Gmail (via gogcli) and Outlook email exports, producing actionable summaries with staleness detection for cached thread states.

When to Use

  • User asks to summarize an email thread or conversation chain
  • User needs to identify outstanding action items from an email exchange
  • User wants a timeline of key events/decisions from a long email thread
  • User needs to detect if a previously cached thread summary is outdated
  • User asks to analyze email thread status (resolved, pending, stale, escalated)
  • User provides .eml, .mbox, or JSON email export files for analysis

Prerequisites

  • Python 3.9+
  • No API keys required (works with exported email files)
  • For live Gmail access: gogcli must be configured (see gogcli-expert skill)
  • For live Outlook access: Microsoft Graph API token or exported .eml files
  • Standard library plus python-dateutil for date parsing

Workflow

Step 1: Collect Email Thread Data

Obtain the email thread data from one of these sources:

Option A: Gmail via gogcli

gogcli gmail messages search --query "thread:THREAD_ID" --format json > thread_export.json

Option B: Outlook via Graph API export

# Export conversation to .eml files in a folder

Option C: Direct file input

  • Provide .eml, .mbox, or JSON files containing the thread

Step 2: Parse and Analyze Thread

Run the thread analyzer to extract structured information:

python3 scripts/analyze_thread.py \
  --input thread_export.json \
  --format gmail \
  --output thread_analysis.json

Supported formats: gmail, outlook, eml, mbox

Step 3: Generate Summary Report

Generate a human-readable summary with action items:

python3 scripts/generate_summary.py \
  --analysis thread_analysis.json \
  --output thread_summary.md

Step 4: Check for Staleness (Optional)

Compare current thread state against a cached summary to detect drift:

python3 scripts/check_staleness.py \
  --cached previous_summary.json \
  --current thread_analysis.json \
  --output staleness_report.json

Step 5: Present Findings

Present the summary to the user with:

  • Thread status classification (Active, Resolved, Stale, Escalated, Awaiting Response)
  • Timeline of key events with dates
  • List of pending action items with owners
  • Staleness warnings if cached summary is outdated

Output Format

JSON Analysis Report

{
  "schema_version": "1.0",
  "thread_id": "string",
  "subject": "string",
  "participants": [
    {"name": "string", "email": "string", "role": "initiator|responder|cc"}
  ],
  "message_count": 0,
  "date_range": {
    "first_message": "ISO8601",
    "last_message": "ISO8601",
    "duration_days": 0
  },
  "status": {
    "classification": "active|resolved|stale|escalated|awaiting_response",
    "confidence": 0.0,
    "last_action_date": "ISO8601",
    "days_since_last_action": 0
  },
  "timeline": [
    {
      "date": "ISO8601",
      "actor": "string",
      "event_type": "request|response|decision|escalation|resolution",
      "summary": "string"
    }
  ],
  "action_items": [
    {
      "id": "string",
      "description": "string",
      "owner": "string",
      "status": "pending|completed|cancelled",
      "due_date": "ISO8601|null",
      "source_message_date": "ISO8601"
    }
  ],
  "key_decisions": [
    {
      "date": "ISO8601",
      "decision": "string",
      "made_by": "string"
    }
  ],
  "outdated_info": [
    {
      "original_statement": "string",
      "stated_date": "ISO8601",
      "superseded_by": "string",
      "superseded_date": "ISO8601"
    }
  ],
  "analysis_timestamp": "ISO8601"
}

Staleness Report

{
  "schema_version": "1.0",
  "is_stale": true,
  "staleness_reasons": [
    {
      "type": "new_messages|status_change|action_item_update|decision_change",
      "description": "string",
      "severity": "low|medium|high"
    }
  ],
  "cached_summary_date": "ISO8601",
  "current_thread_date": "ISO8601",
  "new_messages_since_cache": 0,
  "recommendation": "refresh|review|ignore"
}

Markdown Summary

# Email Thread Summary

## Thread: [Subject]
**Status**: [Classification] | **Messages**: [N] | **Duration**: [X days]

## Participants
- **Initiator**: Name <email>
- **Responders**: Name1, Name2

## Current Status
[One paragraph describing current thread state]

## Timeline
| Date | Actor | Event |
|------|-------|-------|
| YYYY-MM-DD | Name | Summary |

## Pending Action Items
- [ ] [AI-001] Description (Owner, Due: YYYY-MM-DD)
- [ ] [AI-002] Description (Owner, Due: TBD)

## Key Decisions
1. **YYYY-MM-DD**: Decision text (by Name)

## Outdated Information
- ~~Original statement~~ superseded by: New information (YYYY-MM-DD)

---
*Generated: YYYY-MM-DD HH:MM UTC*

Status Classification Logic

StatusCriteria
ActiveLast message within 3 business days, no clear resolution
ResolvedContains resolution language ("resolved", "closed", "done", "thank you for...")
StaleNo activity for 7+ business days, has pending items
EscalatedContains escalation indicators (CC to manager, "escalating", urgent markers)
Awaiting ResponseLast message is a question or request, no response yet

Resources

  • scripts/analyze_thread.py -- Parse email thread and extract structured data
  • scripts/generate_summary.py -- Generate human-readable markdown summary
  • scripts/check_staleness.py -- Compare cached vs current thread state
  • references/thread_analysis_patterns.md -- Patterns for identifying action items, decisions, and status

Key Principles

  1. Preserve context: Always attribute statements to specific participants and dates
  2. Detect supersession: Identify when later messages contradict or update earlier statements
  3. Action item extraction: Use NLP patterns to find commitments, requests, and deadlines
  4. Staleness is signal: An outdated summary can lead to missed follow-ups or duplicate work
  5. Multi-format support: Handle Gmail JSON, Outlook exports, and raw .eml files uniformly

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

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