Claude Code Plugins

Community-maintained marketplace

Feedback

communication-tracker

@eternnoir/claude-tool
1
0

Track and integrate external communications (emails, chat messages, screenshots) into project context with timeline management. Use when user mentions "email", "message", "communication", "screenshot", "track", "import", "sync", "通訊記錄", "郵件", "訊息", or wants to import external information sources into the project timeline.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name communication-tracker
description Track and integrate external communications (emails, chat messages, screenshots) into project context with timeline management. Use when user mentions "email", "message", "communication", "screenshot", "track", "import", "sync", "通訊記錄", "郵件", "訊息", or wants to import external information sources into the project timeline.

Communication Tracker Skill

When to use this Skill

Activate when the user:

  • Mentions importing or tracking emails, messages, or communications
  • Uses keywords: "email", "message", "communication", "screenshot", "通訊", "郵件", "訊息", "聊天記錄", "track", "import"
  • Provides image files (screenshots of emails/chats)
  • Wants to record external communication updates
  • Mentions "import communication", "track message", "record email"
  • References specific communication sources (Slack, Teams, Gmail, etc.)
  • Asks to add timeline entries from external sources
  • Pastes email content or chat logs

Tools Available

This Skill uses the following tools for content extraction:

  • mu: Email indexer for reading email content from local maildir
  • Claude Vision: Direct image reading for screenshots
  • markitdown: Convert various file formats to markdown (PDF, DOCX, XLSX, etc.)

Workflow

Phase 0: First-Time Configuration (One-Time Setup)

Objective: Configure communication tracking preferences on first use.

Trigger: This phase activates only if communications/config.yaml does not exist.

Steps:

  1. Detect first-time use:

    ls communications/config.yaml
    

    If file doesn't exist → Proceed with configuration Q&A.

  2. Ask configuration questions using AskUserQuestion tool:

    Question 1: Timeline Tracking:

    Timeline Configuration
    
    Should I create a dedicated timeline tracking file?
    This helps maintain chronological order of all communications.
    
    Options:
    1. Yes, create timeline.yaml (structured, machine-readable)
    2. Yes, create timeline.md (human-readable markdown)
    3. Yes, create both formats (Recommended)
    4. No, embed timeline in individual files only
    

    Question 2: Original Data Backup:

    Original Data Backup
    
    Should I backup original source data?
    This preserves unprocessed content for reference.
    
    Options:
    1. Yes, always backup originals in raw/ subdirectory (Recommended)
    2. Yes, only for images/attachments
    3. No, extract content only (no backup)
    

    Question 3: Default Source Types:

    Communication Sources
    
    What types of communications do you typically track?
    (Select all that apply)
    
    - Email (Gmail, Outlook, etc.)
    - Chat (Slack, Teams, Discord)
    - Screenshots (any visual capture)
    - Voice/Meeting transcripts
    - Documents
    

    Question 4: Timestamp Handling:

    Timestamp Handling
    
    How should I handle communications without clear timestamps?
    
    Options:
    1. Always ask user for the timestamp
    2. Use current time with "[estimated]" marker
    3. Try to infer from content, ask if uncertain (Recommended)
    
  3. Generate config.yaml:

    # communications/config.yaml
    # Generated by ProjectMaster communication-tracker Skill
    
    timeline:
      enabled: true
      format: both  # yaml|md|both|none
      file: timeline
    
    backup:
      enabled: true
      mode: all  # all|attachments|none
      directory: raw/
    
    sources:
      - email
      - chat
      - screenshot
      - document
    
    timestamp_handling:
      mode: infer  # ask|estimate|infer
      marker_for_estimated: "[estimated]"
    
    # Auto-generated
    created: YYYY-MM-DD
    last_updated: YYYY-MM-DD
    
  4. Create directory structure:

    mkdir -p communications/raw communications/by-source communications/by-date
    
  5. Create initial files:

    • communications/README.md - Index of all communications
    • communications/timeline.yaml - Machine-readable timeline
    • communications/timeline.md - Human-readable timeline
  6. Report configuration complete:

    Communication Tracker Configured!
    
    Structure created:
    communications/
    ├── config.yaml (your preferences)
    ├── README.md (index)
    ├── timeline.yaml (chronological tracking)
    ├── timeline.md (human-readable timeline)
    ├── raw/ (original data backup)
    ├── by-source/ (organized by source type)
    └── by-date/ (organized by date)
    
    Ready to track communications! Try:
    - "Track this email: [paste content]"
    - "Import screenshot [provide image path]"
    - "Record communication from Slack about [topic]"
    

Phase 1: Context Discovery & Source Detection

Objective: Understand project context and identify communication source type.

Steps:

  1. Read project RULE.md:

    ls RULE.md
    Read RULE.md
    

    Extract communication tracking preferences if defined.

  2. Read communications/config.yaml:

    Read communications/config.yaml
    

    If not found → Trigger Phase 0 first.

  3. Detect source type from user input:

    Input Pattern Source Type Detection Method
    Image file path (.png, .jpg, .gif) screenshot File extension detection
    mu output or email headers (From:, To:, Date:, Subject:) email Header pattern matching
    Text with chat format (timestamps + usernames) chat Timestamp/username patterns
    Markdown/text file document File content structure
    PDF, DOCX, XLSX document File extension + markitdown
    User describes source manual Ask for clarification
  4. Route to appropriate extraction workflow:

    • Source: screenshot → Phase 2A (Image Processing)
    • Source: email → Phase 2B (Email Processing)
    • Source: text/chat → Phase 2C (Text Processing)
    • Source: file → Phase 2D (File Processing)

Example:

User: "Track this email from the client about project updates"

Detected:
- Source type: email
- Content: [email text provided by user]
- Related: project updates
→ Route to Phase 2B (Email Processing)

Phase 2A: Image Processing (Screenshots)

Objective: Extract information from screenshot images.

Steps:

  1. Read image using Claude's vision:

    Use Read tool with image file path
    Claude will analyze the image content
    
  2. Extract structured information:

    • Source platform: (Gmail, Slack, Teams, WhatsApp, LINE, etc.)
    • Participants: (sender, recipients, @mentions)
    • Timestamp: (look for date/time in image)
    • Subject/Topic: (email subject, channel name, etc.)
    • Key content: (main message body)
    • Attachments mentioned: (if visible)
    • Thread context: (is this a reply? part of conversation?)
  3. Handle timestamp extraction:

    If timestamp clearly visible in image:
      → Extract and validate format
    If timestamp partially visible or ambiguous:
      → Show extracted timestamp, ask user to confirm
    If no timestamp visible:
      → Check config.yaml timestamp_handling mode
      → If "ask": Ask user for timestamp
      → If "estimate": Use current time with [estimated] marker
      → If "infer": Try to infer from context, ask if uncertain
    
  4. Confirm extraction with user:

    Screenshot Analysis Complete
    
    I extracted the following information:
    
    Source: [Platform - e.g., Gmail]
    From: [Sender]
    To: [Recipients]
    Date: [Timestamp or "Unable to determine - please provide"]
    Subject: [Topic]
    
    Content Summary:
    [Key points from the communication]
    
    Is this correct? Any corrections needed?
    [If timestamp missing: "When was this communication from?"]
    
  5. Backup original image (if config.yaml backup.enabled):

    cp [image_path] communications/raw/YYYY-MM-DD_source_filename.png
    

Phase 2B: Email Processing

Objective: Extract and structure email content.

Steps:

  1. Determine email source:

    • If user provides raw text → Parse directly
    • If user mentions mu → Use mu command to fetch
    • If user provides file path (.eml) → Read file
  2. Use mu for email fetching (if applicable):

    # Search for specific email
    mu find subject:[search term] --format=sexp
    
    # View specific email
    mu view [message-id]
    
  3. Extract email metadata:

    from: [sender email and name]
    to: [recipient list]
    cc: [cc list]
    date: [email date from headers]
    subject: [subject line]
    message_id: [unique identifier]
    thread_id: [conversation thread]
    attachments: [list of attachments]
    
  4. Extract email body:

    • Convert HTML to markdown (if HTML email)
    • Preserve formatting and links
    • Extract inline images references
  5. Identify key information:

    • Action items mentioned
    • Decisions communicated
    • Questions asked
    • Deadlines mentioned
    • People referenced (@mentions, names)
  6. Backup original (if configured):

    # Save raw email to backup
    mu view [message-id] > communications/raw/YYYY-MM-DD_email_subject-slug.eml
    

Phase 2C: Text/Chat Processing

Objective: Process plain text or chat message content.

Steps:

  1. Detect chat format:

    • Slack format: [timestamp] username: message
    • Teams format: username timestamp message
    • Discord format: username timestamp message
    • LINE format: YYYY/MM/DD HH:MM name message
    • Generic: timestamps + usernames
  2. Parse conversation:

    platform: [detected or ask]
    channel_dm: [if identifiable]
    participants: [list of usernames]
    date_range:
      start: YYYY-MM-DDTHH:MM
      end: YYYY-MM-DDTHH:MM
    messages:
      - timestamp: [time]
        sender: [username]
        content: [message]
    
  3. Handle multi-message threads:

    • Group related messages
    • Identify thread starts and replies
    • Extract thread summary
  4. Ask for missing context if needed:

    I parsed this chat conversation but need clarification:
    
    - Platform: [Ask if not detected]
    - Channel/Context: [Ask if not clear]
    - Date: [Ask if timestamps are relative like "yesterday"]
    

Phase 2D: File Processing (markitdown)

Objective: Process various file formats using markitdown.

Steps:

  1. Identify file type:

    • PDF documents
    • Word documents (.docx)
    • Excel spreadsheets (.xlsx)
    • Other supported formats
  2. Use markitdown for conversion:

    markitdown [file_path]
    
  3. Extract metadata from converted content:

    • Document title
    • Author (if available)
    • Creation/modification date
    • Key content sections
  4. Handle conversion errors:

    • If markitdown fails, report error
    • Suggest alternative approaches
    • Offer to save original file as-is

Phase 3: Timestamp Validation & Normalization

Objective: Ensure all communications have valid, normalized timestamps.

Steps:

  1. Normalize timestamp format:

    • Target format: YYYY-MM-DDTHH:MM:SS+TZ (ISO 8601)
    • Preserve original timezone if available
    • Convert relative times ("yesterday", "2 hours ago") to absolute
  2. Validate timestamp:

    • Not in the future (unless explicitly stated)
    • Within reasonable range for source type
    • Consistent with thread context
  3. If timestamp uncertain (based on config.yaml timestamp_handling):

    Timestamp Clarification Needed
    
    I couldn't determine an exact timestamp from the content.
    
    The communication appears to be from approximately:
    [Best guess based on context]
    
    Please provide the actual date/time, or confirm this estimate:
    - Exact: "2025-12-10 14:30"
    - Approximate: "last Tuesday afternoon"
    - Confirm estimate: "yes, that's correct"
    
  4. Store timestamp with confidence level:

    timestamp:
      value: 2025-12-10T14:30:00+08:00
      confidence: exact|inferred|estimated
      original_format: "[as found in source]"
    

Phase 4: Content Structuring

Objective: Structure extracted content into standardized format.

Steps:

  1. Generate communication document:

    Filename convention: YYYY-MM-DD_HH-MM_source_subject-slug.md

    Document structure:

    ---
    id: comm-{uuid}
    type: email|chat|screenshot|document
    source: [platform/origin]
    timestamp: YYYY-MM-DDTHH:MM:SS+TZ
    timestamp_confidence: exact|inferred|estimated
    participants:
      from: [sender]
      to: [recipients]
    subject: [topic/subject]
    related_sprint: [sprint-number or null]
    related_milestone: [milestone-id or null]
    related_communications: [list of related comm-ids]
    tags: [auto-generated tags]
    backup_file: [path to original if backed up]
    ---
    
    # [Subject/Topic]
    
    **Date**: [Human readable timestamp]
    **Source**: [Platform/Origin]
    **From**: [Sender]
    **To**: [Recipients]
    
    ## Content
    
    [Extracted/converted content in markdown]
    
    ## Key Points
    
    - [Automatically extracted key points]
    - [Important decisions or updates]
    - [Action items mentioned]
    
    ## Context
    
    [How this relates to the project]
    
    ## References
    
    - Related Sprint: [link if applicable]
    - Related Milestone: [link if applicable]
    - Previous Communication: [link if part of thread]
    
    ---
    *Tracked by ProjectMaster communication-tracker Skill*
    *Original backup: [path or "not backed up"]*
    
  2. Auto-extract key points:

    • Action items (look for "need to", "please", "todo", etc.)
    • Decisions (look for "decided", "will proceed", "agreed", etc.)
    • Questions (look for "?" or question patterns)
    • Deadlines (look for dates, "by Friday", etc.)
  3. Auto-generate tags:

    • Based on content analysis
    • Project-specific keywords from RULE.md
    • People mentioned
    • Topics detected

Phase 5: Timeline Integration

Objective: Add communication to project timeline.

Steps:

  1. Read current timeline files:

    Read communications/timeline.yaml
    Read communications/timeline.md
    
  2. Add entry to timeline.yaml:

    timeline:
      - id: comm-{uuid}
        timestamp: 2025-12-10T14:30:00+08:00
        timestamp_confidence: exact
        type: email
        source: Gmail
        subject: "Project Update from Client"
        from: client@example.com
        summary: "Client approved Phase 2 designs with minor revisions"
        file: communications/by-date/2025-12/2025-12-10_14-30_email_project-update.md
        related:
          sprint: sprint-05
          milestone: beta-release
          thread: comm-previous-id
        tags: [client, approval, design]
        key_points:
          - "Design approved with 3 minor revisions"
          - "Deadline: Dec 15 for revisions"
        action_items:
          - "Implement revision 1: color scheme update"
          - "Implement revision 2: font size adjustment"
    
  3. Add entry to timeline.md (human-readable):

    ## 2025-12-10
    
    ### 14:30 - Email from Client
    
    **Subject**: Project Update from Client
    **From**: client@example.com
    **Summary**: Client approved Phase 2 designs with minor revisions
    **File**: [View full communication](by-date/2025-12/2025-12-10_14-30_email_project-update.md)
    **Related**: Sprint 5, Beta Release Milestone
    
  4. Maintain chronological order:

    • Insert new entry in correct position (sorted by timestamp)
    • Update surrounding entries if needed for context
  5. Cross-reference with existing communications:

    • If part of email thread → Link to previous
    • If same topic as recent → Note relationship
    • If references project artifacts → Add links

Phase 6: Save and Organize

Objective: Save communication to appropriate locations.

Steps:

  1. Determine file locations:

    • Primary: communications/by-date/YYYY-MM/filename.md
    • Index reference: communications/by-source/{source}/README.md
    • Backup: communications/raw/ (if configured)
  2. Create directory structure if needed:

    mkdir -p communications/by-date/2025-12
    mkdir -p communications/by-source/email
    
  3. Save communication document:

    Write communications/by-date/2025-12/2025-12-10_14-30_email_project-update.md
    
  4. Update by-source index: Add to communications/by-source/email/README.md

  5. Verify save successful:

    ls -la communications/by-date/2025-12/2025-12-10_14-30_email_project-update.md
    

Phase 7: Governance Update

Objective: Update README.md indexes and project documentation.

Steps:

  1. Update communications/README.md:

    ## Recent Communications
    
    ### December 2025
    
    | Date | Type | Subject | From | File |
    |------|------|---------|------|------|
    | 2025-12-10 14:30 | Email | Project Update from Client | client@example.com | [View](by-date/2025-12/2025-12-10_14-30_email_project-update.md) |
    
    [Previous entries...]
    
    ---
    Last updated: 2025-12-10
    
  2. Update project root README.md: Add to Recent Activity:

    ## Recent Activity
    
    - 2025-12-10: Communication tracked - Client approval email for Phase 2
    
  3. Update related artifacts (if applicable):

    • If communication mentions sprint → Update sprint document references
    • If communication contains decision → Create/update decision record
    • If communication has action items → Optionally create tasks
  4. Execute custom workflows from RULE.md: Read and execute any project-specific workflows for communications.

Phase 8: Report

Objective: Confirm completion and provide summary.

Report format:

Communication Tracked Successfully!

Type: [Email/Chat/Screenshot/Document]
Timestamp: YYYY-MM-DD HH:MM [confidence level]
From: [Sender]
Subject: [Topic]

Saved to:
- communications/by-date/YYYY-MM/filename.md
- Timeline updated (timeline.yaml, timeline.md)
[If backed up:]
- Original backed up: communications/raw/filename.ext

Related to:
- Sprint: [Sprint N or "None"]
- Milestone: [Milestone or "None"]
- Thread: [Previous communication or "New thread"]

Key Points Extracted:
- [Key point 1]
- [Key point 2]
- [Action items if any]

Governance Updated:
- communications/README.md
- Project README.md
[If linked to sprint/milestone:]
- sprints/sprint-N/sprint-plan.md

Tips:
- View timeline: "Show communication timeline"
- Search communications: "Find communications about [topic]"
- Track another: "Track this email: [content]"

Special Cases

Case 1: Batch Import

If user provides multiple communications at once:

User: "Import all these emails about the project"
[Multiple email contents or file paths]

Process:

  1. Identify all items (emails/messages/files)
  2. Process each individually (Phase 2-5)
  3. Maintain thread relationships
  4. Update timeline once with all entries
  5. Report batch summary:
    Batch Import Complete!
    
    Imported 5 communications:
    - 3 emails (Dec 5, Dec 7, Dec 10)
    - 2 chat threads (Dec 6, Dec 9)
    
    Timeline updated with 5 new entries
    Thread relationships established
    
    [List of created files]
    

Case 2: Thread/Conversation Tracking

If communication is part of ongoing thread:

Process:

  1. Detect thread indicators (Re:, Fwd:, reply chains)
  2. Search existing communications for thread
  3. If found: Link as continuation
  4. If not found: Ask if should create new thread
  5. Update thread visualization in timeline:
## Email Thread: Project Budget Discussion
├── 2025-12-05 09:00: Initial proposal [From: PM]
├── 2025-12-06 14:30: Questions from finance [From: CFO]
├── 2025-12-08 10:15: Revised proposal [From: PM]
└── 2025-12-10 16:00: Approval [From: CFO] ← NEW

Case 3: Mixed Media Communication

If communication contains multiple media types:

User: "Track this email with the attached screenshot"

Process:

  1. Process email content (Phase 2B)
  2. Process attachment (Phase 2A for screenshot)
  3. Create linked documents:
    • Main: email document
    • Attachment: screenshot analysis
  4. Cross-reference in both documents
  5. Single timeline entry with attachments noted

Case 4: Urgent/Priority Communication

If communication marked as urgent or contains deadlines:

Process:

  1. Detect urgency markers ("URGENT", "ASAP", deadline dates)
  2. Add priority tag
  3. Highlight in timeline with marker
  4. Suggest linking to milestone/sprint if deadline related
  5. Optionally: Create action item or reminder

Timeline entry:

- [URGENT] [2025-12-10 14:30] Server maintenance window - Deadline Dec 12

Case 5: Failed Timestamp Extraction

If cannot determine timestamp even after inferring:

Process:

  1. Ask user directly for timestamp
  2. If user doesn't know:
    • Offer to use "approximate" with date only
    • Offer to use current time with [estimated] marker
    • Let user specify "sometime in [week/month]"
  3. Store with lowest confidence level
  4. Mark in timeline as [Approximate Date]

Case 6: Non-Project Communication

If user tracks communication not related to current project:

Process:

  1. Detect if content relates to different project
  2. Ask user to confirm:
    This communication appears to be about [other topic].
    Should I:
    1. Track it in this project anyway
    2. Track it to a different project (specify)
    3. Store it in a general communications archive
    

Error Handling

Error: Image cannot be read

Cannot analyze image at: [path]

Possible issues:
- File doesn't exist
- File format not supported
- File is corrupted

Solutions:
1. Check the file path and try again
2. Convert image to PNG/JPG format
3. Provide the content as text instead

Would you like to:
- Try a different file
- Enter the communication content manually

Error: mu command not available

The `mu` email indexer is not available.

Options:
1. Paste email content directly (I'll parse it)
2. Provide email file path (.eml, .mbox)
3. Install mu: `brew install mu` (macOS) / `apt install maildir-utils` (Linux)

How would you like to proceed?

Error: markitdown conversion failed

Could not convert file: [filename]

Error: [markitdown error message]

Options:
1. Try alternative conversion method
2. Extract text manually from file
3. Save original file without conversion
4. Skip this file

What would you like to do?

Error: Timestamp conflict

Timestamp Conflict Detected

The timestamp extracted (2025-12-15 14:00) is in the future.
Current time is 2025-12-10 10:00.

Options:
1. Use extracted timestamp anyway (scheduled/future communication)
2. Correct to current date/time
3. Specify actual timestamp

Please clarify:

Error: No RULE.md or communications/ directory

Project not initialized for communication tracking.

Options:
1. Initialize communications directory now (recommended)
2. Specify different target directory
3. Cancel

If you choose option 1, I'll ask a few configuration questions first.

Error: Duplicate communication

Possible Duplicate Detected

A similar communication already exists:
- [existing file path]
- Date: [date]
- Subject: [subject]

Options:
1. Skip (don't create duplicate)
2. Create anyway (might be different)
3. Update existing entry instead
4. View existing entry first

What would you like to do?

Integration with Other Skills

With track-meeting Skill

If communication references a meeting:

  • Detect meeting mentions ("discussed in meeting", meeting dates)
  • Link to meeting notes if they exist
  • Suggest creating meeting notes if referenced but not found
related_meetings:
  - path: meetings/sprint-planning/2025-12-05_sprint-6-planning.md
    relationship: "discussed"

In meeting documents, add Communications section:

## External Communications Referenced

Communications discussed or referenced in this meeting:
- [2025-12-04: Client Budget Approval](../../communications/by-date/2025-12/2025-12-04_email_budget-approval.md)
- [2025-12-03: Slack thread on API design](../../communications/by-date/2025-12/2025-12-03_screenshot_slack-api.md)

With manage-sprint Skill

If communication mentions sprint work:

  • Link to current sprint
  • Extract mentioned user stories
  • Update sprint document with external communication reference
Communication mentions: "User story 5 is blocked"
→ Link to sprint-06/sprint-plan.md
→ Add reference in sprint document's "Related Communications" section

In sprint documents, add section:

## Related Communications

External communications related to this sprint:

### Client Feedback
- [2025-12-10: Phase 2 Approval](../../communications/by-date/2025-12/2025-12-10_14-30_email_project-update.md)

### Team Discussions
- [2025-12-07: Database Migration Decision](../../communications/by-date/2025-12/2025-12-07_09-00_screenshot_slack-db-migration.md)

With track-milestone Skill

If communication updates milestone status:

  • Link to relevant milestone
  • Suggest milestone status update if communication indicates change
  • Track milestone-related decisions
Communication says: "Client approved beta release"
→ Link to beta-release milestone
→ Suggest: "Should I update milestone status to 'approved'?"

In milestones.yaml, reference key communications:

milestones:
  - id: beta-release
    name: "Beta Release"
    communications:
      - comm-a1b2c3d4  # Client approval
    approval_communication: comm-a1b2c3d4

With project-search Skill

Communications are searchable:

  • Full-text search in content
  • Metadata search (from, to, date range)
  • Tag-based search
  • Timeline-based search
User: "Find communications from the client about budget"
→ Search communications with: from contains "client", content contains "budget"
→ Return timeline view of matching communications

Search scope extension for project-search:

  • Include communications/ directory
  • Search timeline.yaml for metadata matching
  • Support filters: type:email, from:[sender], date:[range]

With AkashicRecords Skills

If communications need to be stored in knowledge base:

  • Use add-content for archival storage
  • Cross-reference between communications/ and knowledge base
  • Maintain links when content moves

Best Practices

1. Always confirm timestamp

Timestamps are critical for timeline integrity. Never assume - always validate or ask when uncertain.

2. Extract key points automatically

Don't just store raw content. Extract actionable information (decisions, action items, deadlines).

3. Maintain thread relationships

Connect related communications. Conversations make more sense in context.

4. Link to project artifacts

Communications don't exist in isolation. Link to sprints, milestones, meetings.

5. Backup originals

Original data (especially screenshots) should be preserved for reference and compliance.

6. Use consistent naming

Follow filename conventions strictly: YYYY-MM-DD_HH-MM_type_subject-slug.md

7. Update timeline immediately

Don't batch timeline updates. Each communication should appear in timeline upon tracking.

8. Handle uncertainty gracefully

When information is unclear, ask rather than guess. User confirmation prevents errors.

9. Preserve original language

Keep content in its original language. Use English for structure (frontmatter, section headers).

10. Auto-detect but verify

Auto-detection is helpful but not perfect. Always show extracted information for user verification.

Examples

Example 1: Track Email

User: Track this email:
From: client@example.com
To: pm@company.com
Date: Dec 10, 2025 2:30 PM
Subject: Re: Phase 2 Design Review

Hi,

We've reviewed the Phase 2 designs and they look great!
Please proceed with the following minor revisions:
1. Update the color scheme to match brand guidelines
2. Increase font size in the navigation menu
3. Add help text below the form fields

Deadline: Please complete by Dec 15.

Thanks,
Client

Claude: Tracking email communication...

Communication Tracked Successfully!

Type: Email
Timestamp: 2025-12-10 14:30 [exact]
From: client@example.com
Subject: Re: Phase 2 Design Review

Saved to:
- communications/by-date/2025-12/2025-12-10_14-30_email_phase-2-design-review.md
- Timeline updated

Key Points Extracted:
- Phase 2 designs approved
- 3 minor revisions requested:
  1. Color scheme update
  2. Navigation font size
  3. Form help text
- Deadline: Dec 15, 2025

Action Items Detected:
- [ ] Update color scheme to brand guidelines
- [ ] Increase navigation font size
- [ ] Add help text to form fields

Should I link this to a sprint or milestone?

Example 2: Track Screenshot

User: Import this Slack screenshot: /tmp/slack-conversation.png

Claude: Analyzing screenshot...

Screenshot Analysis Complete

Source: Slack (#engineering channel)
Date: [Cannot determine from image - when was this conversation?]

Participants:
- @alice
- @bob
- @carol

Content Summary:
Discussion about database migration strategy.
Alice proposed PostgreSQL, Bob agreed, Carol raised concerns about timeline.
Decision: Proceed with PostgreSQL, migration window Dec 20-22.

User: It was from yesterday around 9am

Claude: Got it!

Communication Tracked Successfully!

Type: Screenshot (Slack)
Timestamp: 2025-12-09 09:00 [inferred]
From: @alice (initiator)
Channel: #engineering
Subject: Database Migration Discussion

Saved to:
- communications/by-date/2025-12/2025-12-09_09-00_screenshot_slack-db-migration.md
- Original backed up: communications/raw/2025-12-09_slack-conversation.png

Key Points:
- PostgreSQL migration approved
- Migration window: Dec 20-22
- Timeline concerns noted (from Carol)

Decision Recorded:
"Proceed with PostgreSQL migration during Dec 20-22 window"

Timeline and governance updated.

Example 3: Batch Import

User: I have 3 emails about the project from last week, import them all
[Provides 3 email contents]

Claude: Processing batch import...

Processing email 1/3: Budget Approval (Dec 5)...
Processing email 2/3: Technical Review (Dec 6)...
Processing email 3/3: Timeline Update (Dec 7)...

Batch Import Complete!

Imported 3 communications:
- 2025-12-05: Budget Approval [from: cfo@company.com]
- 2025-12-06: Technical Review [from: tech-lead@company.com]
- 2025-12-07: Timeline Update [from: pm@company.com]

Thread Analysis:
- These appear to be related to the same project review
- Linked as conversation thread: "Project Review December"

Files created:
- communications/by-date/2025-12/2025-12-05_10-00_email_budget-approval.md
- communications/by-date/2025-12/2025-12-06_14-30_email_technical-review.md
- communications/by-date/2025-12/2025-12-07_09-15_email_timeline-update.md

Timeline updated with 3 new entries.
All communications linked to Sprint 5.

Example 4: First-Time Setup

User: Track this email from my client

Claude: I notice this is the first time using communication tracking.
Let me set up the communications directory first.

Timeline Configuration
Should I create a dedicated timeline tracking file?

User: Yes, both formats

Claude: Original Data Backup
Should I backup original source data?

User: Yes, always backup

Claude: Communication Sources
What types of communications do you typically track?

User: Email and screenshots mainly

Claude: Timestamp Handling
How should I handle communications without clear timestamps?

User: Try to figure it out, ask me if unsure

Claude:
Communication Tracker Configured!

Structure created:
communications/
├── config.yaml
├── README.md
├── timeline.yaml
├── timeline.md
├── raw/
├── by-source/
└── by-date/

Now tracking your email...

[Proceeds to track the email]

Notes

  • Communication tracking adds external context to project timeline
  • Timeline is the source of truth for chronological project history
  • Screenshots require Claude's vision capability for analysis
  • Email integration via mu is optional - direct text input always works
  • Thread tracking maintains conversation continuity across multiple communications
  • Backup strategy should align with project/organization compliance requirements
  • This Skill complements track-meeting by handling async communications
  • Content language is preserved; structure uses English for consistency
  • Timestamp confidence is always tracked to maintain timeline integrity

Effective communication tracking transforms scattered emails and messages into coherent project history. This Skill bridges the gap between external communications and internal project management.