conversation-analysis
Analyze conversation history to identify patterns, signals, and behaviors. Use when analyzing conversations, finding patterns in chat, identifying what went well/wrong, scanning for frustration, success, workflow transitions, or user preferences. Triggers on analyze, pattern(s), signal(s), conversation analysis, or `--analyze-conversation`.
When & Why to Use This Skill
This Claude skill provides a sophisticated framework for analyzing conversation histories to detect behavioral patterns, sentiment signals, and workflow transitions. It transforms raw chat logs into structured insights by identifying success markers, user frustration, and explicit preferences, enabling data-driven improvements to agent performance and user experience through automated signal extraction and pattern recognition.
Use Cases
- User Friction Analysis: Automatically scan interaction logs to pinpoint specific triggers for user frustration, such as repetitive requests or frequent corrections.
- Preference & Requirement Extraction: Identify and document explicit user constraints and preferences (e.g., 'Always use X', 'Never do Y') mentioned throughout a conversation history.
- Success Rate Auditing: Evaluate the effectiveness of AI interactions by tracking 'Success' signals like explicit praise, adoption of suggestions, and seamless workflow continuations.
- Workflow Optimization: Analyze recurring tool-chain sequences and transition patterns to identify bottlenecks or opportunities for process automation.
- Behavioral Trend Tracking: Monitor how user requirements and satisfaction levels evolve over the course of a long-term project or multi-session interaction.
| name | conversation-analysis |
|---|---|
| version | 2.0.0 |
| description | This skill should be used when analyzing conversation patterns, identifying frustration or success signals, or when "analyze conversation", "what went wrong", or "patterns" are mentioned. |
Conversation Analysis
Signal extraction → pattern detection → behavioral insights.
- User requests conversation analysis
- Identifying frustration, success, or workflow patterns
- Extracting user preferences and requirements
- Understanding task evolution and iterations
NOT for: real-time monitoring, content generation, single message analysis
| Type | Subtype | Indicators |
|---|---|---|
| Success | Explicit Praise | "Perfect!", "Exactly what I needed", exclamation marks |
| Success | Continuation | "Now do the same for...", building on prior work |
| Success | Adoption | User implements suggestion without modification |
| Success | Acceptance | "Looks good", "Ship it", "Merge this" |
| Frustration | Correction | "No, I meant...", "That's wrong", "Do X instead" |
| Frustration | Reversion | User undoes agent changes, "Go back" |
| Frustration | Repetition | Same request 2+ times, escalating specificity |
| Frustration | Explicit | "This isn't working", "Why did you...", accusatory tone |
| Workflow | Sequence | "First...", "Then...", "Finally...", numbered lists |
| Workflow | Transition | "Now that X is done, let's Y", phase changes |
| Workflow | Tool Chain | Recurring tool usage patterns (Read → Edit → Bash) |
| Workflow | Context Switch | Abrupt topic changes, no transition language |
| Request | Prohibition | "Don't use X", "Never do Y", "Avoid Z" |
| Request | Requirement | "Always check...", "Make sure to...", "You must..." |
| Request | Preference | "I prefer...", "It's better to...", comparative language |
| Request | Conditional | "If X then Y", "When A, do B", situational rules |
Confidence levels:
- High (0.8–1.0): Explicit keywords match taxonomy, no ambiguity, strong context
- Medium (0.5–0.79): Implicit signal, partial context, minor ambiguity
- Low (0.2–0.49): Ambiguous language, weak context, borderline classification
Track with TodoWrite. Phases advance only, never regress.
| Phase | Trigger | activeForm |
|---|---|---|
| Parse Input | Session start | "Parsing input" |
| Extract Signals | Scope validated | "Extracting signals" |
| Detect Patterns | Signals extracted | "Detecting patterns" |
| Synthesize Report | Patterns detected | "Synthesizing report" |
TodoWrite format:
- Parse Input { scope description }
- Extract Signals { from N messages }
- Detect Patterns { category focus }
- Synthesize Report { output format }
Edge cases:
- Small scope (<5 messages): Skip Extract Signals, jump to Synthesize
- Re-analysis: Resume at Detect Patterns
- Narrow focus (single signal type): Skip Detect Patterns
Workflow:
- Start: Create Parse Input
in_progress - Transition: Mark current
completed, add nextin_progress - After delivery: Mark Synthesize Report
completed
Define Scope
- Message range (all, recent N, date range)
- Actors (user only, agent only, both)
- Exclusions (system messages, tool outputs, code blocks)
- Mark Parse Input
completed, create Extract Signalsin_progress
Extract Signals
- Scan messages for signal keywords
- Match against taxonomy
- Assign confidence (high/medium/low)
- Record: type, subtype, message_id, timestamp, quote, context
- Mark Extract Signals
completed, create Detect Patternsin_progress
Detect Patterns
- Group signals by type/subtype
- Find clusters (3+ related signals)
- Identify evolution (signal changes over time)
- Track repetition (recurring themes)
- Spot correlations (tool chains, workflows)
- Mark Detect Patterns
completed, create Synthesize Reportin_progress
Output
- Generate JSON with signals, patterns, summary
- Include confidence, recommendations, action items
- Append
△ Caveatsif gaps exist - Mark Synthesize Report
completed
Behavioral patterns from signal clusters:
| Pattern | Detection | Confidence |
|---|---|---|
| Repetition | Same signal 3+ times | Strong: 5+ signals |
| Evolution | Signal type changes over time | Moderate: 3-4 signals |
| Preferences | Consistent request signals | Strong: across sessions |
| Tool Chains | Recurring tool sequences (5+ times) | High: frequent use |
| Problem Areas | Clustered frustration signals | Strong: 3+ in same topic |
Temporal patterns:
- Escalation: Increasing frustration/stronger requirements
- De-escalation: Frustration → success transition
- Cyclical: Same issue recurs across sessions
JSON structure:
{
"analysis": {
"scope": {
"message_count": N,
"date_range": "YYYY-MM-DD to YYYY-MM-DD",
"actors": ["user", "agent"]
},
"signals": [
{
"type": "success|frustration|workflow|request",
"subtype": "specific_subtype",
"message_id": "msg_123",
"timestamp": "ISO8601",
"quote": "exact text",
"confidence": "high|medium|low",
"context": "brief explanation"
}
],
"patterns": [
{
"pattern_type": "repetition|evolution|preference|tool_chain",
"category": "success|frustration|workflow|request",
"description": "pattern summary",
"occurrences": N,
"confidence": "strong|moderate|weak",
"first_seen": "ISO8601",
"last_seen": "ISO8601",
"recommendation": "actionable next step"
}
],
"summary": {
"total_signals": N,
"by_type": { "success": N, "frustration": N, ... },
"key_insights": ["insight 1", "insight 2"],
"action_items": ["item 1", "item 2"]
}
}
}
ALWAYS:
- Create Parse Input at session start
- Update todos at phase transitions
- Include confidence levels for all signals
- Support patterns with 2+ signals minimum
- Mark Synthesize Report
completedafter delivery - Apply recency weighting (recent overrides old)
NEVER:
- Skip phase transitions
- Extract low-confidence signals without marking them
- Claim patterns from single occurrences
- Regress phases
- Deliver without marking final phase complete
- Over-interpret neutral language
- signal-patterns.md — extended taxonomy, edge cases
- extraction-techniques.md — regex, heuristics
- sample-analysis.md — complete walkthrough