Claude-skill-registry analyze-thread
Analyze complete email thread with conversation context, timeline, participants, and attachments tracking.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/analyze-thread" ~/.claude/skills/majiayu000-claude-skill-registry-analyze-thread && rm -rf "$T"
skills/data/analyze-thread/SKILL.mdAnalyze Email Thread
Comprehensive analysis of an email thread including conversation flow, participant interactions, timeline, key points, and attachment evolution.
When to Use
Use this skill when you need to:
- Understand complete conversation context
- Track discussion progression over time
- Identify key decisions and action items
- See how attachments evolved through the thread
- Get overview of multi-email conversations
Triggers:
English:
- "Analyze this email thread
"<message-id> - "Show me the conversation
"<message-id> - "What's the thread about
"<message-id> - "Thread analysis for
"<message-id> - "Summarize this thread
"<message-id>
Chinese:
- "分析这个邮件线索
"<message-id> - "看看这个对话
"<message-id> - "整理一下这个线索
"<message-id> - "线索内容总结
"<message-id> - "这个讨论的脉络
"<message-id>
Invocation Methods
Method 1: Natural Language (Recommended)
User: Analyze this email thread <E42FF77C-C563-466D-8544-3E0C16EA24EC@taler.net> AI: [Proceeds to analyze immediately]
Method 2: Slash Command
User: /analyze-thread AI: 请提供线索中任意一封邮件的 Message-ID User: <E42FF77C-C563-466D-8544-3E0C16EA24EC@taler.net> AI: [Proceeds to analyze]
Note: Any message-id from the thread works. The system will find all related emails.
Execution Steps
-
Get message-id (if not provided)
Please provide any Message-ID from the thread 💡 Quick method (recommended): In Mail.app: Select email → Press shortcut (⌘⇧C) → Message-ID copied See README "Setup Mail Quick Action" section if not configured -
Read thread using MCP
thread_data = mcp__mail__read_thread(message_id) -
Handle truncation checks
Check 1: Thread Result Oversized
- If result indicates size overflow (>80KB):
- Warn user about thread size
- Suggest reducing max_body_length
- Ask if user wants to retry with tighter limits
Check 2: Individual Email Truncation
- After successful load, check for truncated emails
- Classify by importance:
- ⚠️ Critical: Truncated + has attachments
- ⚠️ High: Lost 60%+ content
- ℹ️ Medium: Only quote-stripped
- Suggest reading important emails individually if needed
- If result indicates size overflow (>80KB):
-
Analyze thread structure
- Count total emails
- Identify all participants
- Extract date range
- Track subject evolution
-
Extract key information
- Main discussion topics
- Decisions made
- Action items with owners
- Attachments and their evolution
- Important dates/deadlines
-
Present structured output
Output Format
🧵 Email Thread Analysis ### Thread Overview - Total emails: [N] - Time span: [start date] to [end date] - Duration: [X days/weeks/months] - Participants: [list of unique senders] ### Conversation Timeline [Chronological summary of key emails] 1. [Date] - [Sender] - [Brief description] 2. [Date] - [Sender] - [Brief description] ... ### 💬 Main Topics 1. [Topic 1] - [Brief summary] 2. [Topic 2] - [Brief summary] ### ✅ Decisions Made - [Decision 1] - [Decision 2] ### ⚠️ Action Items - [ ] [Action item] - [Owner] - [Deadline if any] ### 📎 Attachments Summary [Total] attachments across thread: - [filename] - [context/importance] - [filename] - [context/importance] ### 📅 Important Dates - [Date]: [Event/Deadline] ### ⚠️ Truncation Notice [If applicable, warn about truncated emails]
Thread Content Truncation Handling ⚠️
CRITICAL: Thread reading has smart limits to prevent token overflow (1200 chars/email with quote stripping).
Check 1: Thread Result Oversized
If thread is too large:
⚠️ **Thread Too Large** (estimated XXX KB) This email thread is too large to load with current settings. **Options:** 1. 🔄 **[Recommended]** Reduce limit and retry - Current: 1200 chars/email - Suggested: 800 chars/email 2. 📧 **Read individual emails** - Use /analyze-email for specific messages **Shall I automatically reduce the limit and retry?**
Implementation:
- NEVER try to process oversized results
- ALWAYS ask user first before retrying
Check 2: Individual Email Truncation
After loading, check for truncated emails:
truncated_emails = [] for email in thread['emails']: if email.get('truncated'): importance = assess_truncation_importance(email) if importance in ['Critical', 'High']: truncated_emails.append({ 'message_id': email['message_id'], 'subject': email['subject'], 'original_length': email.get('original_length'), 'importance': importance })
User Prompt (only if critical/high truncations found):
⚠️ **Detected Truncated Emails** [Number] emails were truncated. Important ones: 1. [Subject] ([Importance]) - Original: [X] chars → Current: 1200 chars - Has attachments: Yes/No **Recommendation**: Read important emails individually using /analyze-email
Example Scenarios
Scenario 1: Technical Discussion Thread
User: /analyze-thread AI: 请提供线索中任意一封邮件的 Message-ID User: E42FF77C-C563-466D-8544-3E0C16EA24EC@taler.net AI: 🧵 Email Thread Analysis
Thread Overview
- Total emails: 37
- Time span: Jul 2, 2025 to Dec 10, 2025
- Duration: ~5 months
- Participants:
- Marc Stibane (marc@taler.net) - GNU Taler developer
- Yang Xu (fatbobman@gmail.com) - SwiftUI consultant
Conversation Timeline
Phase 1: Problem Identification (Jul 2-3)
- Marc asks about SwiftUI Text layout sizing issue
- Yang explains SwiftUI layout behavior
- Marc provides screenshots and code examples
Phase 2: Solution Development (Jul 3-4)
- Yang implements TruncationDetectingText component
- Solution tested and working
- Marc extends to support two text components
Phase 3: Business Completion (Jul 4-8)
- MIT license agreed
- Payment: 150€ via Wise
- Invoice provided
Phase 4: Bug Discovery (Jul 8 - Dec 10)
- Layout flickering issue on iPhone XS (iOS 17)
- Multiple debugging attempts
- Issue still under investigation
💬 Main Topics
-
SwiftUI Layout Problem
- Text component not returning correct size with lineLimit
- Need for adaptive layout selection
-
Solution Implementation
- TruncationDetectingText component
- PreferenceKey-based truncation detection
- ZStack + LayoutPriority approach
-
Ongoing Issue
- Layout flickering on specific devices
- Related to text width and timing
✅ Decisions Made
- Use MIT license for the solution code
- Payment amount: 150€
- Payment method: Wise transfer
⚠️ Action Items
- Resolve layout flickering on iPhone XS (Marc)
- Consider writing blog post about solution (Yang)
📎 Attachments Summary
9 attachments across thread:
- AdaptiveAmountRow.swift - Final solution code
- TruncationDetectingText.swift - Core component
- Invoice - SwiftUI Consultation.pdf - Paid invoice
- Various screenshots showing flickering issue
💡 Key Insights
- Solution works well for main use case
- Edge case issue on specific hardware/iOS version
- Successful commercial collaboration
Scenario 2: Short Thread (No Truncation)
User: Analyze this thread short@example.com AI: 🧵 Email Thread Analysis
Thread Overview
- Total emails: 3
- Time span: Jan 10, 2025
- Duration: 1 day
- Participants: Alice, Bob
Conversation Timeline
- Alice asks about project timeline
- Bob provides estimate
- Alice confirms and schedules meeting
⚠️ Action Items
- Meeting on Jan 15 at 2 PM
📎 Attachments Summary
1 attachment: project_timeline.pdf
Related Skills
- For single email analysis/analyze-email
- For deep attachment analysis/analyze-attachments
Technical Notes
Quote Stripping: Thread reading automatically removes redundant quoted content while preserving context (first 10 lines of each quote block). This reduces token usage by ~80%.
Token Safety: Default 1200 chars/email limit ensures threads of up to ~50 emails can be analyzed safely within Claude Code's token limits.