Marketplace

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`.

$ 安裝

git clone https://github.com/outfitter-dev/agents /tmp/agents && cp -r /tmp/agents/baselayer/skills/conversation-analysis ~/.claude/skills/agents

// tip: Run this command in your terminal to install the skill


name: Conversation Analysis version: 2.0.0 description: 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.

Conversation Analysis

Signal extraction → pattern detection → behavioral insights.

<when_to_use>

  • 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

</when_to_use>

<signal_taxonomy>

TypeSubtypeIndicators
SuccessExplicit Praise"Perfect!", "Exactly what I needed", exclamation marks
SuccessContinuation"Now do the same for...", building on prior work
SuccessAdoptionUser implements suggestion without modification
SuccessAcceptance"Looks good", "Ship it", "Merge this"
FrustrationCorrection"No, I meant...", "That's wrong", "Do X instead"
FrustrationReversionUser undoes agent changes, "Go back"
FrustrationRepetitionSame request 2+ times, escalating specificity
FrustrationExplicit"This isn't working", "Why did you...", accusatory tone
WorkflowSequence"First...", "Then...", "Finally...", numbered lists
WorkflowTransition"Now that X is done, let's Y", phase changes
WorkflowTool ChainRecurring tool usage patterns (Read → Edit → Bash)
WorkflowContext SwitchAbrupt topic changes, no transition language
RequestProhibition"Don't use X", "Never do Y", "Avoid Z"
RequestRequirement"Always check...", "Make sure to...", "You must..."
RequestPreference"I prefer...", "It's better to...", comparative language
RequestConditional"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

</signal_taxonomy>

Track with TodoWrite. Phases advance only, never regress.

PhaseTriggeractiveForm
Parse InputSession start"Parsing input"
Extract SignalsScope validated"Extracting signals"
Detect PatternsSignals extracted"Detecting patterns"
Synthesize ReportPatterns 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 next in_progress
  • After delivery: Mark Synthesize Report completed
  1. 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 Signals in_progress
  2. 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 Patterns in_progress
  3. 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 Report in_progress
  4. Output

    • Generate JSON with signals, patterns, summary
    • Include confidence, recommendations, action items
    • Append △ Caveats if gaps exist
    • Mark Synthesize Report completed

<pattern_detection>

Behavioral patterns from signal clusters:

PatternDetectionConfidence
RepetitionSame signal 3+ timesStrong: 5+ signals
EvolutionSignal type changes over timeModerate: 3-4 signals
PreferencesConsistent request signalsStrong: across sessions
Tool ChainsRecurring tool sequences (5+ times)High: frequent use
Problem AreasClustered frustration signalsStrong: 3+ in same topic

Temporal patterns:

  • Escalation: Increasing frustration/stronger requirements
  • De-escalation: Frustration → success transition
  • Cyclical: Same issue recurs across sessions

</pattern_detection>

<output_format>

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"]
    }
  }
}

</output_format>

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 completed after 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