← Back to Skills
Productivity

personal-analytics

robbyczgw-cla By robbyczgw-cla 👁 17 views ▲ 0 votes

Analyze conversation patterns, track

GitHub
---
name: personal-analytics
description: Analyze conversation patterns, track productivity, and surface self-knowledge insights. Use when user wants to understand their own patterns (when they chat, what topics they discuss, productivity trends, sentiment over time). Provides weekly/monthly reports, topic recommendations, and time-based insights. Privacy-first design with all analysis local.
---

# Personal Analytics

**Know thyself. Work smarter. Discover patterns you didn't know existed.**

Personal Analytics analyzes your conversation patterns to surface actionable insights about your work style, interests, and productivityβ€”all while keeping your data completely private and local.

## Core Capabilities

1. **Session Analysis** - When you chat, for how long, productivity patterns
2. **Topic Tracking** - What subjects come up repeatedly, trending interests
3. **Sentiment Patterns** - Mood tracking over time, stress indicators
4. **Productivity Insights** - When you're most effective, optimal work times
5. **Weekly/Monthly Reports** - Beautiful summaries of your patterns
6. **Topic Recommendations** - Auto-suggest topics for proactive-research monitoring

## Privacy First

πŸ”’ **All analysis happens locally. Nothing leaves your machine.**

- Raw conversations **never** stored
- Only aggregated statistics saved
- Opt-in design (must enable)
- Data deletion anytime
- No external APIs for analysis
- Gitignored data files

## Quick Start

```bash
# Initialize
cp config.example.json config.json

# Enable tracking
python3 scripts/enable.py

# Analyze current sessions
python3 scripts/analyze.py

# Generate report
python3 scripts/report.py weekly

# Get topic recommendations
python3 scripts/recommend.py
```

## What Gets Tracked

### Session Metadata
- Timestamp (start/end)
- Duration
- Message count
- Primary topics discussed
- Sentiment (positive/neutral/negative/mixed)
- Productivity markers (tasks completed, decisions made)

### Aggregated Stats
- Hourly activity heatmap
- Topic frequency over time
- Average session duration
- Productivity by time of day
- Sentiment trends

### What's NOT Tracked
- ❌ Raw message content
- ❌ Personal information
- ❌ Sensitive data (passwords, keys, etc.)
- ❌ Specific conversations

## Configuration

### config.json

```json
{
  "enabled": true,
  "tracking": {
    "sessions": true,
    "topics": true,
    "sentiment": true,
    "productivity": true
  },
  "privacy": {
    "min_aggregation_window_hours": 24,
    "auto_delete_after_days": 90,
    "exclude_patterns": ["password", "secret", "token", "key"]
  },
  "insights": {
    "productivity_markers": [
      "completed", "shipped", "fixed", "merged", "deployed"
    ],
    "stress_indicators": [
      "urgent", "asap", "critical", "broken", "emergency"
    ]
  },
  "reports": {
    "weekly_day": "sunday",
    "weekly_time": "20:00",
    "auto_send": false
  },
  "integrations": {
    "proactive_research": {
      "auto_suggest_topics": true,
      "suggestion_threshold": 3
    }
  }
}
```

## Scripts

### analyze.py

Analyze conversation patterns:

```bash
# Analyze all available data
python3 scripts/analyze.py

# Analyze specific time range
python3 scripts/analyze.py --since "2026-01-01" --until "2026-01-31"

# Analyze and show insights
python3 scripts/analyze.py --insights

# Verbose output
python3 scripts/analyze.py --verbose
```

**Output:**
```
πŸ“Š Personal Analytics Analysis

Period: Jan 1 - Jan 28, 2026 (28 days)

Session Summary:
  Total sessions: 145
  Total time: 18h 32m
  Avg session: 7m 40s
  Most active: Tuesday 10:00-11:00

Topics (Top 10):
  1. Python (32 sessions)
  2. FM26 (28 sessions)
  3. Dirac Live (15 sessions)
  4. ETH/crypto (12 sessions)
  5. Docker (11 sessions)
  ...

Productivity:
  High productivity: 09:00-12:00, 14:00-16:00
  Low productivity: Late night (after 22:00)
  Peak day: Wednesday
  
Sentiment:
  Positive: 62%
  Neutral: 28%
  Negative: 8%
  Mixed: 2%
```

### report.py

Generate beautiful reports:

```bash
# Weekly report
python3 scripts/report.py weekly

# Monthly report
python3 scripts/report.py monthly

# Custom range
python3 scripts/report.py custom --since "2026-01-01" --until "2026-01-31"

# Export to file
python3 scripts/report.py weekly --output report.md

# Send via Telegram
python3 scripts/report.py weekly --send
```

**Report Format:**

```markdown
# πŸ“Š Weekly Analytics Report
**Jan 22 - Jan 28, 2026**

## 🎯 Highlights

- **Most productive day:** Wednesday (4 tasks completed)
- **Peak hours:** 09:00-11:00 (3h 45m focused work)
- **Emerging topic:** Rust (mentioned 12 times, +200% from last week)
- **Mood trend:** ↗️ Improving (78% positive, up from 65%)

## ⏰ Time Patterns

### Activity Heatmap
```
Mon  β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  4h
Tue  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  6h 30m
Wed  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  8h 15m  ← Peak
Thu  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  5h
Fri  β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  3h 45m
Sat  β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  1h 30m
Sun  β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  45m
```

### Hourly Distribution
```
06-09: β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ (12%)
09-12: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ (38%)  ← Peak productivity
12-14: β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘ (15%)
14-17: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘ (24%)
17-22: β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ (11%)
```

## πŸ“š Topic Insights

### Top Topics This Week
1. **Python Development** (32 sessions)
   - Focus: FastAPI, async, testing
   - Trend: Steady
   - Suggestion: Monitor "Python 3.13 features"

2. **FM26** (28 sessions)
   - Focus: Tactics, transfers, editor
   - Trend: ↗️ +15%
   - Suggestion: Already monitoring "FM26 patches" βœ“

3. **Audio Engineering** (15 sessions)
   - Focus: Dirac Live, room correction, bass management
   - Trend: πŸ†• New topic
   - Suggestion: Monitor "Dirac Live updates"

### Emerging Topics
- **Rust** (12 mentions, first appearance)
- **Kubernetes** (8 mentions, +300%)
- **Machine Learning** (6 mentions)

## πŸ’‘ Productivity Insights

### Task Completion
- Total tasks: 23 completed
- Success rate: 87%
- Best day: Wednesday (6 tasks)
- Best time: Morning (09:00-12:00)

### Focus Sessions
- Long sessions (>30m): 8
- Average focus time: 18m
- Longest session: 1h 42m (Wed 10:15)

### Problem-Solving Speed
- Quick wins (<15m): 14 problems
- Complex issues (>1h): 3 problems
- Average: 24m per problem

## 😊 Sentiment & Well-being

### Overall Mood
```
😊 Positive  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘  78%  (↗️ +13%)
😐 Neutral   β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  18%
😟 Negative  β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   4%
```

### Stress Indicators
- High stress: 3 sessions (down from 7)
- Urgent keywords: 5 (down from 12)
- Late-night work: 2 sessions (down from 8)

**Insight:** Stress levels decreasing. Good work-life balance this week! πŸŽ‰

## 🎯 Recommendations

### For Proactive Research
Based on your interests this week, consider monitoring:
1. **Rust language updates** (mentioned 12x, new interest)
2. **Dirac Live releases** (mentioned 15x, active problem-solving)
3. **Kubernetes security** (mentioned 8x, DevOps focus)

### Productivity Tips
- **Schedule deep work 09:00-11:00** (your peak productivity)
- **Batch meetings after lunch** (14:00-16:00 is secondary peak)
- **Avoid late-night sessions** (22% slower problem-solving)

### Topics to Explore
Based on your current interests, you might enjoy:
- Async Rust patterns (combines Rust + async focus)
- Kubernetes observability (combines K8s + monitoring)
- Audio DSP with Python (combines audio + Python)

---

_Generated by Personal Analytics β€’ Privacy-first, locally processed_
```

### recommend.py

Get topic recommendations for proactive-research:

```bash
# Get recommendations
python3 scripts/recommend.py

# Show reasoning
python3 scripts/recommend.py --explain

# Auto-add to proactive-research
python3 scripts/recommend.py --auto-add

# Set threshold (minimum mentions)
python3 scripts/recommend.py --threshold 5
```

**Output:**
```
πŸ’‘ Topic Recommendations for Proactive Research

Based on your conversation patterns:

1. Rust Language Updates
   Mentioned: 12 times this week (new topic)
   Reason: Emerging interest, high engagement
   Suggested query: "Rust language updates releases"
   Suggested frequency: weekly
   
2. Dirac Live Updates
   Mentioned: 15 times this week
   Reason: Active problem-solving, technical depth
   Suggested query: "Dirac Live update release"
   Suggested frequency: daily
   
3. FM26 Patches
   Mentioned: 28 times this week
   Reason: Consistent interest over time
   NOTE: Already monitoring! βœ“

Would you like to add these topics to proactive-research? [y/N]
```

### session_tracker.py

Track individual sessions (called by Moltbot):

```bash
# Log session start
python3 scripts/session_tracker.py start --channel telegram

# Log session end
python3 scripts/session_tracker.py end --session-id <id>

# Log message (topics, sentiment)
python3 scripts/session_tracker.py message --session-id <id> \
  --topics "Python,Docker" \
  --sentiment positive
```

This script is designed to be called by Moltbot hooks, not manually.

### enable.py / disable.py

Manage tracking:

```bash
# Enable tracking
python3 scripts/enable.py

# Disable tracking
python3 scripts/disable.py

# Show status
python3 scripts/status.py
```

## Integration with Moltbot

Personal Analytics can integrate with Moltbot session lifecycle:

### Hook Points

1. **Session Start** - Log timestamp, channel
2. **Session End** - Calculate duration, save stats
3. **Message Received** - Extract topics (lightweight), detect sentiment

### Recommended Setup

Add to Moltbot SOUL.md:

```markdown
## Personal Analytics Integration

After each session ends, if personal-analytics is enabled:
1. Extract primary topics discussed (max 5)
2. Determine overall sentiment
3. Detect productivity markers (tasks completed)
4. Log to personal-analytics via session_tracker.py
```

## Data Storage

### .analytics_data.json

Aggregated statistics only:

```json
{
  "sessions": [
    {
      "id": "session_uuid",
      "start": "2026-01-28T10:00:00Z",
      "end": "2026-01-28T10:15:00Z",
      "duration_seconds": 900,
      "channel": "telegram",
      "topics": ["Python", "Docker"],

... (truncated)
productivity

Comments

Sign in to leave a comment

Loading comments...