Skip to content
cccskills
FreePublished on 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.

The English summary is being prepared. Showing the original description.

Works withGmailOutlook

Run score Not tested

See how to install

Files included (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 (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

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

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

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実装.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

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/を参照して分析・リライトする。

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

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.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

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.

The English summary is being prepared. Showing the original description.

takusaotome/claude-skills-library10Updated Oct 23, 2026

See all skills by takusaotome

Report a problem with this skill