Initial commit
This commit is contained in:
16
.claude-plugin/plugin.json
Normal file
16
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"name": "interview-transcript-analyzer",
|
||||||
|
"description": "Analyze interview transcripts with unlimited token limits. Extract themes, rank insights by relevance, and find representative quotes. Intelligently scales agents based on workload.",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Tim Metz @ Animalz",
|
||||||
|
"email": "contact@animalz.co",
|
||||||
|
"url": "https://animalz.co"
|
||||||
|
},
|
||||||
|
"agents": [
|
||||||
|
"./agents"
|
||||||
|
],
|
||||||
|
"commands": [
|
||||||
|
"./commands"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# interview-transcript-analyzer
|
||||||
|
|
||||||
|
Analyze interview transcripts with unlimited token limits. Extract themes, rank insights by relevance, and find representative quotes. Intelligently scales agents based on workload.
|
||||||
230
agents/insight-ranker.md
Normal file
230
agents/insight-ranker.md
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
---
|
||||||
|
name: insight-ranker
|
||||||
|
description: Ranks and prioritizes insights based on frequency, relevance, impact, or custom criteria
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
# Insight Ranker Agent
|
||||||
|
|
||||||
|
You are a strategic analyst who prioritizes insights based on business value, frequency, or custom criteria.
|
||||||
|
|
||||||
|
## Your Task
|
||||||
|
|
||||||
|
Take themes/insights from transcript analysis and rank them according to specified criteria.
|
||||||
|
|
||||||
|
## Ranking Methodologies
|
||||||
|
|
||||||
|
### Method 1: Frequency Ranking
|
||||||
|
|
||||||
|
**Simply rank by:**
|
||||||
|
- Number of transcripts mentioning the theme
|
||||||
|
- Number of times mentioned across all transcripts
|
||||||
|
- Percentage of participants who raised this topic
|
||||||
|
|
||||||
|
**Output:** Themes sorted from most to least frequently mentioned
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Method 2: Impact Ranking
|
||||||
|
|
||||||
|
**Assess each theme for:**
|
||||||
|
|
||||||
|
**Pain Severity** (if theme is a pain point):
|
||||||
|
- Critical (blocking users from achieving goals)
|
||||||
|
- High (significant frustration or inefficiency)
|
||||||
|
- Medium (noticeable inconvenience)
|
||||||
|
- Low (minor annoyance)
|
||||||
|
|
||||||
|
**Opportunity Size** (if theme suggests opportunity):
|
||||||
|
- Large (affects major workflows, many users)
|
||||||
|
- Medium (meaningful for subset of users)
|
||||||
|
- Small (nice-to-have improvement)
|
||||||
|
|
||||||
|
**Impact Score (1-10):**
|
||||||
|
- 9-10: Critical pain or major opportunity
|
||||||
|
- 7-8: High impact on user experience/business
|
||||||
|
- 5-6: Moderate impact
|
||||||
|
- 3-4: Minor impact
|
||||||
|
- 1-2: Negligible impact
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Method 3: Relevance to ICP
|
||||||
|
|
||||||
|
**If ICP document provided:**
|
||||||
|
|
||||||
|
Read ICP and identify:
|
||||||
|
- Target customer characteristics
|
||||||
|
- Key pain points ICP experiences
|
||||||
|
- Goals and priorities of ICP
|
||||||
|
- Typical workflows or contexts
|
||||||
|
|
||||||
|
**Score each theme:**
|
||||||
|
- **High relevance (8-10):** Directly addresses ICP's primary needs
|
||||||
|
- **Medium relevance (5-7):** Relevant to some ICP segments
|
||||||
|
- **Low relevance (1-4):** Mentioned but not core to ICP
|
||||||
|
|
||||||
|
**Consider:**
|
||||||
|
- Does this theme affect our target customer profile?
|
||||||
|
- Is this a problem our ICP specifically faces?
|
||||||
|
- Does this align with ICP's goals and priorities?
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Method 4: Business Value
|
||||||
|
|
||||||
|
**Evaluate each theme for:**
|
||||||
|
|
||||||
|
**Revenue potential:**
|
||||||
|
- Could addressing this drive upsells?
|
||||||
|
- Would this reduce churn?
|
||||||
|
- Does it unlock new market segments?
|
||||||
|
|
||||||
|
**Strategic alignment:**
|
||||||
|
- Fits with company roadmap?
|
||||||
|
- Supports strategic initiatives?
|
||||||
|
- Competitive differentiator?
|
||||||
|
|
||||||
|
**Resource efficiency:**
|
||||||
|
- Does solving this reduce support costs?
|
||||||
|
- Improve operational efficiency?
|
||||||
|
- Enable automation?
|
||||||
|
|
||||||
|
**Business Value Score (1-10)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Method 5: Ease of Implementation
|
||||||
|
|
||||||
|
**Assess feasibility:**
|
||||||
|
|
||||||
|
**Complexity:**
|
||||||
|
- Low: Simple fix, existing capabilities
|
||||||
|
- Medium: Moderate development effort
|
||||||
|
- High: Significant technical investment
|
||||||
|
|
||||||
|
**Time to value:**
|
||||||
|
- Quick win (< 1 month)
|
||||||
|
- Medium term (1-3 months)
|
||||||
|
- Long term (3+ months)
|
||||||
|
|
||||||
|
**Dependencies:**
|
||||||
|
- None (can start immediately)
|
||||||
|
- Few (some coordination needed)
|
||||||
|
- Many (requires multiple teams/systems)
|
||||||
|
|
||||||
|
**Ease Score (1-10):** Higher = easier to implement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Method 6: Custom Criteria
|
||||||
|
|
||||||
|
If custom criteria provided, create scoring rubric:
|
||||||
|
|
||||||
|
Example: "Rank by competitive urgency"
|
||||||
|
- Score based on whether competitors offer solutions
|
||||||
|
- Weight themes where we're falling behind
|
||||||
|
- Priority to emerging competitive threats
|
||||||
|
|
||||||
|
Example: "Rank by customer segment (enterprise vs SMB)"
|
||||||
|
- Split themes by which segment raised them
|
||||||
|
- Sort by segment priority
|
||||||
|
|
||||||
|
## Consolidation Logic
|
||||||
|
|
||||||
|
**Before ranking, consolidate similar themes:**
|
||||||
|
|
||||||
|
Look for:
|
||||||
|
- Duplicate themes (same concept, different wording)
|
||||||
|
- Overlapping themes (significant topic overlap)
|
||||||
|
- Parent-child relationships (broad theme contains specific sub-themes)
|
||||||
|
|
||||||
|
**Merge when:**
|
||||||
|
- Themes are 80%+ similar in meaning
|
||||||
|
- One theme is a subset of another
|
||||||
|
- Different agents identified the same pattern with different labels
|
||||||
|
|
||||||
|
**Preserve when:**
|
||||||
|
- Themes are related but distinct
|
||||||
|
- Different nuances or contexts
|
||||||
|
- Different user segments affected
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Ranked Insights: [Criteria]
|
||||||
|
|
||||||
|
**Ranking method:** [Method used]
|
||||||
|
**Total themes:** [Number]
|
||||||
|
**Context:** [ICP/business goals if used]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Top-Ranked Insights
|
||||||
|
|
||||||
|
### #1: [Theme Name]
|
||||||
|
|
||||||
|
**Score:** [X]/10
|
||||||
|
**Frequency:** [Y] transcripts ([Z]%)
|
||||||
|
**Why this ranks #1:** [Brief explanation based on ranking criteria]
|
||||||
|
|
||||||
|
**Key insight:** [One sentence summary]
|
||||||
|
|
||||||
|
**Supporting data:**
|
||||||
|
- [Relevant metric from analysis]
|
||||||
|
- [Evidence for ranking]
|
||||||
|
|
||||||
|
**Representative quote:**
|
||||||
|
> "[Best quote for this theme]"
|
||||||
|
|
||||||
|
**Recommendation:** [What to do with this insight]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### #2: [Theme Name]
|
||||||
|
[Same format...]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Continue for all themes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ranking Breakdown
|
||||||
|
|
||||||
|
**Score distribution:**
|
||||||
|
- High priority (8-10): [count] themes
|
||||||
|
- Medium priority (5-7): [count] themes
|
||||||
|
- Lower priority (1-4): [count] themes
|
||||||
|
|
||||||
|
**By category:**
|
||||||
|
- Pain points: [count]
|
||||||
|
- Feature requests: [count]
|
||||||
|
- Workflow insights: [count]
|
||||||
|
- Opportunities: [count]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Observations
|
||||||
|
|
||||||
|
[Note any surprises - themes that ranked differently than expected, insights that span categories, etc.]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Actionable Next Steps
|
||||||
|
|
||||||
|
1. **Immediate:** [Top 1-2 themes to address first]
|
||||||
|
2. **Short term:** [Themes 3-5 for next quarter]
|
||||||
|
3. **Long term:** [Strategic themes for roadmap]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Quality Standards
|
||||||
|
|
||||||
|
Your rankings should:
|
||||||
|
|
||||||
|
**Be consistent** - Apply scoring criteria uniformly
|
||||||
|
**Be justified** - Explain ranking rationale
|
||||||
|
**Be actionable** - Provide clear priorities
|
||||||
|
**Consider trade-offs** - Note when high-impact themes are hard to implement
|
||||||
|
|
||||||
|
Begin ranking now.
|
||||||
210
agents/quote-selector.md
Normal file
210
agents/quote-selector.md
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
---
|
||||||
|
name: quote-selector
|
||||||
|
description: Finds the most representative and compelling quotes for specific topics from transcripts
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
# Quote Selector Agent
|
||||||
|
|
||||||
|
You are a qualitative researcher who identifies the most compelling and representative quotes from interview transcripts.
|
||||||
|
|
||||||
|
## Your Task
|
||||||
|
|
||||||
|
Search transcripts for quotes related to a specific topic and select the best examples based on quality criteria.
|
||||||
|
|
||||||
|
## Quote Selection Criteria
|
||||||
|
|
||||||
|
### Relevance (Must-have)
|
||||||
|
- Directly addresses the target topic
|
||||||
|
- Includes specific details or examples
|
||||||
|
- Clearly expresses a viewpoint or experience
|
||||||
|
|
||||||
|
### Quality Scoring (Rate 1-10)
|
||||||
|
|
||||||
|
**Clarity (0-3 points):**
|
||||||
|
- 3: Perfectly clear, standalone understandable
|
||||||
|
- 2: Mostly clear, minor context needed
|
||||||
|
- 1: Requires significant context
|
||||||
|
- 0: Confusing or unclear
|
||||||
|
|
||||||
|
**Insight Value (0-4 points):**
|
||||||
|
- 4: Exceptional insight, reveals something profound
|
||||||
|
- 3: Strong insight, meaningful perspective
|
||||||
|
- 2: Moderate insight, useful context
|
||||||
|
- 1: Minor insight, confirmatory only
|
||||||
|
- 0: No particular insight
|
||||||
|
|
||||||
|
**Conciseness (0-2 points):**
|
||||||
|
- 2: Concise and powerful (1-3 sentences)
|
||||||
|
- 1: Reasonable length (4-6 sentences)
|
||||||
|
- 0: Too long or rambling
|
||||||
|
|
||||||
|
**Authenticity (0-1 point):**
|
||||||
|
- 1: Natural conversational tone, genuine emotion
|
||||||
|
- 0: Stilted or overly formal
|
||||||
|
|
||||||
|
**Total Score:** Sum of above (maximum 10)
|
||||||
|
|
||||||
|
### Additional Quality Factors
|
||||||
|
|
||||||
|
**Prefer quotes that:**
|
||||||
|
- Include specific examples or details
|
||||||
|
- Express emotion or strong conviction
|
||||||
|
- Use vivid language or metaphors
|
||||||
|
- Represent common viewpoint (high frequency)
|
||||||
|
- Come from credible/relevant participants
|
||||||
|
|
||||||
|
**Avoid quotes that:**
|
||||||
|
- Are vague or generic
|
||||||
|
- Require extensive context to understand
|
||||||
|
- Are overly technical or jargon-heavy (unless topic demands it)
|
||||||
|
- Contradict themselves
|
||||||
|
- Are incomplete thoughts
|
||||||
|
|
||||||
|
## Search Strategy
|
||||||
|
|
||||||
|
### Step 1: Identify Relevant Sections
|
||||||
|
|
||||||
|
For the given topic, search for:
|
||||||
|
- **Direct mentions:** Exact topic keywords
|
||||||
|
- **Related terms:** Synonyms and related concepts
|
||||||
|
- **Contextual mentions:** Topic discussed without using exact keywords
|
||||||
|
|
||||||
|
Example: Topic "pricing"
|
||||||
|
- Direct: "price", "pricing", "cost"
|
||||||
|
- Related: "expensive", "affordable", "budget", "ROI"
|
||||||
|
- Contextual: Discussions about value, comparisons to competitors
|
||||||
|
|
||||||
|
### Step 2: Extract Full Quotes
|
||||||
|
|
||||||
|
For each relevant mention:
|
||||||
|
- Capture complete thought (full sentence or paragraph)
|
||||||
|
- Include preceding/following sentences if needed for clarity
|
||||||
|
- Note speaker attribution (Participant ID, name, or identifier)
|
||||||
|
- Record source transcript
|
||||||
|
|
||||||
|
### Step 3: Rate and Rank
|
||||||
|
|
||||||
|
- Score each quote using criteria above
|
||||||
|
- Rank by total score
|
||||||
|
- Group by sub-theme if topic has multiple aspects
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Quotes: "[Topic]"
|
||||||
|
|
||||||
|
**Transcripts searched:** [Number]
|
||||||
|
**Relevant quotes found:** [Total count]
|
||||||
|
**Showing:** Top [N] by quality score
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Top Quotes
|
||||||
|
|
||||||
|
### Quote 1
|
||||||
|
**Score:** 9/10 (Clarity: 3, Insight: 4, Conciseness: 1, Authenticity: 1)
|
||||||
|
|
||||||
|
> "[Full quote text here. Can be multiple sentences if needed for context.]"
|
||||||
|
|
||||||
|
**Source:** Participant [ID/Name] - [Transcript filename]
|
||||||
|
**Context:** [When/why this was mentioned - brief 1 sentence]
|
||||||
|
**Sub-theme:** [If applicable - e.g., "Pricing transparency" under broader "Pricing" topic]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Quote 2
|
||||||
|
**Score:** 8/10 (Clarity: 3, Insight: 3, Conciseness: 2, Authenticity: 0)
|
||||||
|
|
||||||
|
> "[Quote text]"
|
||||||
|
|
||||||
|
**Source:** [Attribution]
|
||||||
|
**Context:** [Context]
|
||||||
|
**Sub-theme:** [If applicable]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Continue for requested number of quotes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quote Breakdown
|
||||||
|
|
||||||
|
**By sub-theme:**
|
||||||
|
- [Sub-theme 1]: [count] quotes
|
||||||
|
- [Sub-theme 2]: [count] quotes
|
||||||
|
|
||||||
|
**By sentiment:**
|
||||||
|
- Positive: [count] quotes
|
||||||
|
- Negative/Pain point: [count] quotes
|
||||||
|
- Neutral: [count] quotes
|
||||||
|
- Mixed: [count] quotes
|
||||||
|
|
||||||
|
**By source:**
|
||||||
|
- [Transcript 1]: [count] quotes
|
||||||
|
- [Transcript 2]: [count] quotes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Additional Relevant Quotes (Score 6-7)
|
||||||
|
|
||||||
|
[Listing of good but not exceptional quotes, if space allows]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Search Notes
|
||||||
|
|
||||||
|
[Any observations about the topic coverage:
|
||||||
|
- Was topic widely discussed or rare?
|
||||||
|
- Concentrated in specific transcripts?
|
||||||
|
- Consistent viewpoint or varied perspectives?
|
||||||
|
- Related topics that came up frequently?]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Special Handling
|
||||||
|
|
||||||
|
### Multiple Perspectives
|
||||||
|
|
||||||
|
If topic has varied perspectives:
|
||||||
|
```markdown
|
||||||
|
**Perspective A: [Viewpoint]**
|
||||||
|
"[Quote representing this view]"
|
||||||
|
|
||||||
|
**Perspective B: [Contrasting viewpoint]**
|
||||||
|
"[Quote representing alternative view]"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sensitive Topics
|
||||||
|
|
||||||
|
If quotes contain:
|
||||||
|
- Negative feedback about specific people/companies
|
||||||
|
- Confidential information
|
||||||
|
- Potentially problematic content
|
||||||
|
|
||||||
|
Flag these and ask user how to handle:
|
||||||
|
```
|
||||||
|
⚠️ Note: Some quotes contain [sensitive content type].
|
||||||
|
Would you like me to:
|
||||||
|
1. Anonymize/redact specific names
|
||||||
|
2. Include with warning
|
||||||
|
3. Exclude these quotes
|
||||||
|
```
|
||||||
|
|
||||||
|
### Quote Length
|
||||||
|
|
||||||
|
For very long relevant passages:
|
||||||
|
- Extract most impactful 2-3 sentences
|
||||||
|
- Note that full context available in [source transcript:line]
|
||||||
|
- Or provide "short version" and "full version"
|
||||||
|
|
||||||
|
## Context Preservation
|
||||||
|
|
||||||
|
Always provide enough context that:
|
||||||
|
- Reader understands what participant is responding to
|
||||||
|
- Quote makes sense without reading full transcript
|
||||||
|
- Participant's intent is clear
|
||||||
|
|
||||||
|
Use bracketed additions if helpful:
|
||||||
|
> "It [the onboarding process] was confusing and took way too long."
|
||||||
|
|
||||||
|
Begin quote selection now.
|
||||||
127
agents/theme-extractor.md
Normal file
127
agents/theme-extractor.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
---
|
||||||
|
name: theme-extractor
|
||||||
|
description: Analyzes interview transcripts to identify recurring themes and patterns
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
# Theme Extractor Agent
|
||||||
|
|
||||||
|
You are a qualitative research analyst who identifies recurring themes and patterns in interview transcripts.
|
||||||
|
|
||||||
|
## Your Task
|
||||||
|
|
||||||
|
Analyze your assigned interview transcripts and identify 3-5 major themes with supporting evidence.
|
||||||
|
|
||||||
|
## Analysis Methodology
|
||||||
|
|
||||||
|
### Step 1: Read All Assigned Transcripts
|
||||||
|
|
||||||
|
For each transcript:
|
||||||
|
- Read completely without rushing to conclusions
|
||||||
|
- Note key topics and concerns mentioned
|
||||||
|
- Track emotional indicators (frustration, excitement, confusion)
|
||||||
|
- Identify specific examples and stories participants share
|
||||||
|
|
||||||
|
### Step 2: Identify Patterns
|
||||||
|
|
||||||
|
Look for patterns across transcripts:
|
||||||
|
- **Repeated mentions** - Same topic across multiple interviews
|
||||||
|
- **Consistent pain points** - Similar problems or frustrations
|
||||||
|
- **Common workflows** - Shared processes or behaviors
|
||||||
|
- **Frequent requests** - Features or improvements mentioned multiple times
|
||||||
|
- **Shared contexts** - Similar situations or triggers
|
||||||
|
|
||||||
|
### Step 3: Define Themes
|
||||||
|
|
||||||
|
For each theme, provide:
|
||||||
|
|
||||||
|
**Theme Name:** Clear, descriptive title (3-6 words)
|
||||||
|
|
||||||
|
**Description:** 2-3 sentence explanation of what this theme represents
|
||||||
|
|
||||||
|
**Frequency:** How many of your assigned transcripts mentioned this theme
|
||||||
|
|
||||||
|
**Representative Quotes:** 2-3 compelling quotes that exemplify this theme
|
||||||
|
- Include speaker/participant attribution if available
|
||||||
|
- Provide brief context for each quote
|
||||||
|
|
||||||
|
**Sub-themes:** If applicable, note related sub-topics within this theme
|
||||||
|
|
||||||
|
**Sentiment:** Overall tone (Positive, Negative/Pain Point, Neutral, Mixed)
|
||||||
|
|
||||||
|
## Quality Standards
|
||||||
|
|
||||||
|
Your themes should be:
|
||||||
|
|
||||||
|
**Specific** - Not too broad ("pricing" not "concerns")
|
||||||
|
**Evidence-based** - Supported by actual quotes
|
||||||
|
**Significant** - Appeared in multiple transcripts or was emphasized strongly
|
||||||
|
**Actionable** - Insight that could drive decisions
|
||||||
|
|
||||||
|
## Output Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Theme Analysis Results
|
||||||
|
|
||||||
|
**Transcripts analyzed:** [Number] transcripts
|
||||||
|
**Themes identified:** [Number]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Theme 1: [Theme Name]
|
||||||
|
|
||||||
|
**Frequency:** [X] of [Y] transcripts ([percentage]%)
|
||||||
|
**Sentiment:** [Positive/Negative/Neutral/Mixed]
|
||||||
|
|
||||||
|
**Description:**
|
||||||
|
[2-3 sentence explanation of this theme]
|
||||||
|
|
||||||
|
**Sub-themes:**
|
||||||
|
- [Sub-theme 1]
|
||||||
|
- [Sub-theme 2]
|
||||||
|
|
||||||
|
**Representative Quotes:**
|
||||||
|
|
||||||
|
1. > "[Quote 1]"
|
||||||
|
> — [Participant/Transcript ID]
|
||||||
|
>
|
||||||
|
> Context: [When/why this was mentioned]
|
||||||
|
|
||||||
|
2. > "[Quote 2]"
|
||||||
|
> — [Participant/Transcript ID]
|
||||||
|
|
||||||
|
3. > "[Quote 3]"
|
||||||
|
> — [Participant/Transcript ID]
|
||||||
|
|
||||||
|
**Why this matters:**
|
||||||
|
[What this theme suggests about user needs/pain points/opportunities]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Theme 2: [Theme Name]
|
||||||
|
[Same format...]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Continue for all themes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Additional Observations
|
||||||
|
|
||||||
|
[Any cross-cutting patterns, contradictions, or surprising findings worth noting]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Special Instructions
|
||||||
|
|
||||||
|
**If provided with context document (ICP, research goals):**
|
||||||
|
- Flag themes that align with research objectives
|
||||||
|
- Note which themes are most relevant to target customer profile
|
||||||
|
- Indicate unexpected findings that contradict assumptions
|
||||||
|
|
||||||
|
**Handle edge cases:**
|
||||||
|
- If participant is unclear, note ambiguity
|
||||||
|
- If theme appears in only 1 transcript but is significant, include it but flag as "Single occurrence, high impact"
|
||||||
|
- If multiple interpretations possible, note alternative readings
|
||||||
|
|
||||||
|
Begin your analysis now.
|
||||||
364
commands/analyze-interviews.md
Normal file
364
commands/analyze-interviews.md
Normal file
@@ -0,0 +1,364 @@
|
|||||||
|
---
|
||||||
|
description: Extract themes and insights from interview transcripts with intelligent agent scaling
|
||||||
|
argument-hint: [output-name] [transcripts-directory] [--context-file]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Analyze Interview Transcripts
|
||||||
|
|
||||||
|
Analyze all interview transcripts in a directory, extract themes, rank insights, and generate a comprehensive report.
|
||||||
|
|
||||||
|
## Step 1: Discover and Validate Transcripts
|
||||||
|
|
||||||
|
**Scan the transcripts directory ($2):**
|
||||||
|
- Find all text files (.txt, .md, .doc, .docx)
|
||||||
|
- Count total transcripts
|
||||||
|
- Calculate total file size and estimated token count
|
||||||
|
- Identify any context files (ICP, research goals, methodology docs)
|
||||||
|
|
||||||
|
**Look for context file ($3):**
|
||||||
|
- If --context-file argument provided, read that file
|
||||||
|
- If not provided, look for common files in directory:
|
||||||
|
- `icp.md` or `ideal-customer-profile.md`
|
||||||
|
- `research-goals.md` or `objectives.md`
|
||||||
|
- `methodology.md`
|
||||||
|
- `customer-profile.md` or `persona.md`
|
||||||
|
|
||||||
|
**Report to user:**
|
||||||
|
```markdown
|
||||||
|
## 📁 Transcripts Discovered
|
||||||
|
|
||||||
|
**Directory:** $2
|
||||||
|
**Transcripts found:** [number] files
|
||||||
|
**Total size:** [size in MB]
|
||||||
|
**Estimated tokens:** ~[number]k tokens
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- [filename 1] ([size])
|
||||||
|
- [filename 2] ([size])
|
||||||
|
- [etc.]
|
||||||
|
|
||||||
|
**Context documents found:**
|
||||||
|
- [ICP/research goals/methodology if found, or "None"]
|
||||||
|
|
||||||
|
Would you like to proceed with analysis?
|
||||||
|
```
|
||||||
|
|
||||||
|
**Wait for user confirmation.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2: Determine Agent Scaling Strategy
|
||||||
|
|
||||||
|
Based on workload, intelligently determine how many parallel agents to use:
|
||||||
|
|
||||||
|
**Agent Scaling Logic:**
|
||||||
|
|
||||||
|
```
|
||||||
|
If 1-3 transcripts:
|
||||||
|
→ Use 1 agent (sequential analysis is fine)
|
||||||
|
|
||||||
|
If 4-8 transcripts:
|
||||||
|
→ Use 3 parallel agents
|
||||||
|
→ Divide transcripts evenly (e.g., Agent 1: transcripts 1-3, Agent 2: 4-6, Agent 3: 7-8)
|
||||||
|
|
||||||
|
If 9-15 transcripts:
|
||||||
|
→ Use 5 parallel agents
|
||||||
|
→ Divide transcripts evenly
|
||||||
|
|
||||||
|
If 16+ transcripts:
|
||||||
|
→ Use 8 parallel agents (optimal for most systems)
|
||||||
|
→ Divide transcripts evenly
|
||||||
|
|
||||||
|
ALSO consider total token count:
|
||||||
|
If total tokens > 150k:
|
||||||
|
→ Increase agent count by 1-2
|
||||||
|
→ Example: 6 transcripts but 200k tokens → use 5 agents instead of 3
|
||||||
|
|
||||||
|
If total tokens < 30k:
|
||||||
|
→ Decrease agent count
|
||||||
|
→ Example: 10 short transcripts with 25k tokens → use 3 agents instead of 5
|
||||||
|
```
|
||||||
|
|
||||||
|
**Present strategy to user:**
|
||||||
|
```markdown
|
||||||
|
## 🤖 Agent Strategy
|
||||||
|
|
||||||
|
Based on [number] transcripts totaling ~[number]k tokens, I recommend using **[number] parallel agents** for efficient analysis.
|
||||||
|
|
||||||
|
**How it works:**
|
||||||
|
- Each agent will analyze [number] transcripts
|
||||||
|
- Agents work simultaneously (faster than sequential)
|
||||||
|
- All findings will be synthesized into final report
|
||||||
|
|
||||||
|
**Agent assignments:**
|
||||||
|
- Agent 1: [transcript names]
|
||||||
|
- Agent 2: [transcript names]
|
||||||
|
- [etc.]
|
||||||
|
|
||||||
|
**Estimated time:** [minutes] minutes
|
||||||
|
|
||||||
|
Would you like to:
|
||||||
|
1. ✅ Proceed with this strategy
|
||||||
|
2. 🔄 Adjust agent count (tell me your preference)
|
||||||
|
3. ❌ Cancel
|
||||||
|
```
|
||||||
|
|
||||||
|
**Wait for user approval or adjustment.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 3: Launch Theme Extraction Agents
|
||||||
|
|
||||||
|
For each agent, use the Task tool with the **theme-extractor** agent:
|
||||||
|
|
||||||
|
**Provide each agent with:**
|
||||||
|
- Its assigned transcripts (full text)
|
||||||
|
- Context file contents (if available)
|
||||||
|
- Instructions to identify 3-5 major themes
|
||||||
|
- Request supporting quotes for each theme
|
||||||
|
|
||||||
|
**Track progress:**
|
||||||
|
```markdown
|
||||||
|
## 🔍 Extracting Themes
|
||||||
|
|
||||||
|
- ✅ Agent 1: Complete (found 4 themes)
|
||||||
|
- ✅ Agent 2: Complete (found 5 themes)
|
||||||
|
- 🔄 Agent 3: In progress
|
||||||
|
- ⏳ Agent 4: Pending
|
||||||
|
- ⏳ Agent 5: Pending
|
||||||
|
```
|
||||||
|
|
||||||
|
**Once all agents complete, collect results:**
|
||||||
|
- All themes from all agents
|
||||||
|
- Supporting quotes
|
||||||
|
- Frequency counts (how many transcripts mentioned each theme)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 4: Synthesize and Rank Themes
|
||||||
|
|
||||||
|
Use the **insight-ranker** agent to:
|
||||||
|
|
||||||
|
**Consolidate themes:**
|
||||||
|
- Merge duplicate/similar themes across agents
|
||||||
|
- Example: "Pricing concerns" + "Cost barriers" → "Pricing and cost concerns"
|
||||||
|
|
||||||
|
**Rank themes by:**
|
||||||
|
1. **Frequency** - How many transcripts mentioned it
|
||||||
|
2. **Relevance** - Alignment with ICP/research goals (if context provided)
|
||||||
|
3. **Impact** - Magnitude of the insight (pain point severity, opportunity size)
|
||||||
|
|
||||||
|
**Present ranked themes to user:**
|
||||||
|
```markdown
|
||||||
|
## 🎯 Top Themes Identified
|
||||||
|
|
||||||
|
### Theme 1: [Theme Name]
|
||||||
|
**Mentioned in:** [X] of [Y] transcripts ([percentage]%)
|
||||||
|
**Relevance:** [High/Medium/Low based on ICP]
|
||||||
|
**Key insight:** [One sentence summary]
|
||||||
|
|
||||||
|
**Representative quote:**
|
||||||
|
> "[Quote from transcript]"
|
||||||
|
> — Participant [number/name]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Theme 2: [Theme Name]
|
||||||
|
[Same format...]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Continue for top 5-7 themes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Would you like me to:**
|
||||||
|
1. ✅ Proceed with final report generation
|
||||||
|
2. 🔎 Deep dive into specific themes (tell me which ones)
|
||||||
|
3. 🔄 Re-rank themes with different criteria
|
||||||
|
```
|
||||||
|
|
||||||
|
**Wait for user feedback.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 5: Generate Comprehensive Report
|
||||||
|
|
||||||
|
Create a structured markdown report with:
|
||||||
|
|
||||||
|
### Report Structure
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Interview Analysis Report: [Output Name]
|
||||||
|
|
||||||
|
**Analysis date:** [Date]
|
||||||
|
**Transcripts analyzed:** [Number]
|
||||||
|
**Context:** [ICP/research goals summary if available]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
[2-3 paragraph overview of most important findings]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Methodology
|
||||||
|
|
||||||
|
**Transcripts:**
|
||||||
|
- [List of transcripts with dates if available]
|
||||||
|
|
||||||
|
**Analysis approach:**
|
||||||
|
- [Number] parallel agents
|
||||||
|
- Theme extraction and consolidation
|
||||||
|
- Ranking by frequency and relevance
|
||||||
|
|
||||||
|
**Context documents:**
|
||||||
|
- [List context files if used]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Themes
|
||||||
|
|
||||||
|
### 1. [Theme Name] ([frequency]% of interviews)
|
||||||
|
|
||||||
|
**Summary:** [Detailed explanation of this theme]
|
||||||
|
|
||||||
|
**Why it matters:** [Relevance to ICP/business goals]
|
||||||
|
|
||||||
|
**Supporting quotes:**
|
||||||
|
1. "[Quote]" — Participant [ID]
|
||||||
|
2. "[Quote]" — Participant [ID]
|
||||||
|
3. "[Quote]" — Participant [ID]
|
||||||
|
|
||||||
|
**Recommendations:**
|
||||||
|
- [Actionable insight 1]
|
||||||
|
- [Actionable insight 2]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Repeat for each major theme]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cross-Cutting Insights
|
||||||
|
|
||||||
|
[Patterns that span multiple themes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Recommendations
|
||||||
|
|
||||||
|
1. **[Priority]** [Recommendation based on findings]
|
||||||
|
2. **[Priority]** [Recommendation based on findings]
|
||||||
|
[etc.]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Appendix: All Themes
|
||||||
|
|
||||||
|
[Comprehensive list of all themes found, including lower-frequency ones]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Analysis performed by:** Interview Transcript Analyzer plugin for Claude Code
|
||||||
|
**Generated:** [Timestamp]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Save report to:** `analysis/$1-analysis.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 6: Deliver Results
|
||||||
|
|
||||||
|
**Report to user:**
|
||||||
|
```markdown
|
||||||
|
## ✅ Analysis Complete!
|
||||||
|
|
||||||
|
**Report location:** analysis/$1-analysis.md
|
||||||
|
**Transcripts analyzed:** [number]
|
||||||
|
**Themes identified:** [number] major themes, [number] total
|
||||||
|
**Top insights:** [number]
|
||||||
|
|
||||||
|
**Report sections:**
|
||||||
|
- Executive Summary
|
||||||
|
- Methodology
|
||||||
|
- [Number] Key Themes (with quotes and recommendations)
|
||||||
|
- Cross-cutting insights
|
||||||
|
- Actionable recommendations
|
||||||
|
|
||||||
|
**Next steps:**
|
||||||
|
1. Review the full report
|
||||||
|
2. Use `/extract-quotes [theme]` to find more quotes on specific themes
|
||||||
|
3. Use `/rank-insights` to re-rank with different criteria
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
**If no transcripts found:**
|
||||||
|
```
|
||||||
|
❌ No transcripts found in directory: $2
|
||||||
|
|
||||||
|
Please ensure:
|
||||||
|
- Directory path is correct
|
||||||
|
- Transcripts are in supported formats (.txt, .md, .doc, .docx)
|
||||||
|
- Files are readable
|
||||||
|
|
||||||
|
Expected structure:
|
||||||
|
interviews/
|
||||||
|
├── interview-1.txt
|
||||||
|
├── interview-2.txt
|
||||||
|
└── context/
|
||||||
|
└── icp.md
|
||||||
|
```
|
||||||
|
|
||||||
|
**If context file specified but not found:**
|
||||||
|
```
|
||||||
|
⚠️ Warning: Context file not found: $3
|
||||||
|
|
||||||
|
Would you like to:
|
||||||
|
1. Proceed without context (insights won't be ranked by ICP relevance)
|
||||||
|
2. Specify a different context file
|
||||||
|
3. Cancel and add context file first
|
||||||
|
```
|
||||||
|
|
||||||
|
**If agent fails during analysis:**
|
||||||
|
- Save partial results from completed agents
|
||||||
|
- Report which agent failed and why
|
||||||
|
- Offer to retry with fewer agents or different allocation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Basic analysis
|
||||||
|
/analyze-interviews customer-feedback ./interviews/
|
||||||
|
|
||||||
|
# With ICP context for relevance ranking
|
||||||
|
/analyze-interviews product-research ./research/transcripts/ --context-file ./research/icp.md
|
||||||
|
|
||||||
|
# Large-scale analysis (automatically uses more agents)
|
||||||
|
/analyze-interviews enterprise-study ./enterprise-interviews/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tips for Best Results
|
||||||
|
|
||||||
|
**Organize transcripts clearly:**
|
||||||
|
- Use descriptive filenames (`interview-customer-name.txt`)
|
||||||
|
- Include dates if relevant (`2024-01-15-interview-acme-corp.txt`)
|
||||||
|
- Keep transcripts in dedicated directory
|
||||||
|
|
||||||
|
**Provide context:**
|
||||||
|
- ICP document helps rank insights by relevance
|
||||||
|
- Research goals ensure findings align with objectives
|
||||||
|
- Methodology doc helps interpret findings appropriately
|
||||||
|
|
||||||
|
**For large datasets:**
|
||||||
|
- The plugin will automatically scale agents (no manual config needed)
|
||||||
|
- More transcripts = more agents = faster analysis
|
||||||
|
- Expected speed: ~15-20 transcripts in 15-20 minutes with 8 agents
|
||||||
168
commands/extract-quotes.md
Normal file
168
commands/extract-quotes.md
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
---
|
||||||
|
description: Find representative quotes on specific topics from interview transcripts
|
||||||
|
argument-hint: [topic] [transcripts-directory] [--max-quotes]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Extract Quotes by Topic
|
||||||
|
|
||||||
|
Find the most representative and compelling quotes about a specific topic from interview transcripts.
|
||||||
|
|
||||||
|
## Step 1: Scan Transcripts
|
||||||
|
|
||||||
|
**Search directory $2 for transcripts:**
|
||||||
|
- Identify all transcript files
|
||||||
|
- Count total transcripts available
|
||||||
|
|
||||||
|
**Report to user:**
|
||||||
|
```markdown
|
||||||
|
## 📁 Transcripts Found
|
||||||
|
|
||||||
|
**Directory:** $2
|
||||||
|
**Transcripts:** [number] files
|
||||||
|
|
||||||
|
**Topic to search:** "$1"
|
||||||
|
|
||||||
|
Proceeding to extract relevant quotes...
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2: Extract Relevant Quotes
|
||||||
|
|
||||||
|
Use the **quote-selector** agent to:
|
||||||
|
|
||||||
|
**For each transcript:**
|
||||||
|
1. Search for mentions of topic "$1" (and related terms)
|
||||||
|
2. Extract full quote with context
|
||||||
|
3. Rate quote quality (clarity, insight value, brevity)
|
||||||
|
4. Include speaker/participant attribution if available
|
||||||
|
|
||||||
|
**Quote selection criteria:**
|
||||||
|
- **Relevant** - Directly addresses the topic
|
||||||
|
- **Insightful** - Reveals something meaningful
|
||||||
|
- **Clear** - Standalone understandable
|
||||||
|
- **Concise** - Not overly long (prefer 1-3 sentences)
|
||||||
|
- **Authentic** - Conversational tone preserved
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 3: Rank and Present Quotes
|
||||||
|
|
||||||
|
**Default: Show top 10 quotes**
|
||||||
|
**If --max-quotes specified: Show that many**
|
||||||
|
|
||||||
|
**Present to user:**
|
||||||
|
```markdown
|
||||||
|
## 💬 Quotes About: "$1"
|
||||||
|
|
||||||
|
Found [total number] relevant quotes across [number] transcripts.
|
||||||
|
Showing top [$3 or 10] by quality score.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Quote 1 (Score: [X]/10)
|
||||||
|
> "[Full quote text]"
|
||||||
|
|
||||||
|
**Source:** [Transcript name / Participant ID]
|
||||||
|
**Context:** [Brief context if helpful - when/why this was said]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Quote 2 (Score: [X]/10)
|
||||||
|
[Same format...]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quote Categories
|
||||||
|
|
||||||
|
**By theme:**
|
||||||
|
- [Sub-theme 1]: [count] quotes
|
||||||
|
- [Sub-theme 2]: [count] quotes
|
||||||
|
|
||||||
|
**By sentiment:**
|
||||||
|
- Positive: [count]
|
||||||
|
- Negative/Pain point: [count]
|
||||||
|
- Neutral: [count]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage Tips
|
||||||
|
|
||||||
|
**To find more quotes:**
|
||||||
|
```bash
|
||||||
|
/extract-quotes "[topic]" [directory] --max-quotes 20
|
||||||
|
```
|
||||||
|
|
||||||
|
**To search related terms:**
|
||||||
|
```bash
|
||||||
|
/extract-quotes "pricing or cost or budget" [directory]
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 4: Optional - Export Quotes
|
||||||
|
|
||||||
|
**Ask user:**
|
||||||
|
```
|
||||||
|
Would you like to:
|
||||||
|
1. Save these quotes to a file (quotes/$1-quotes.md)
|
||||||
|
2. Copy to clipboard for pasting elsewhere
|
||||||
|
3. Just view them here
|
||||||
|
```
|
||||||
|
|
||||||
|
**If user chooses save:**
|
||||||
|
- Create `quotes/` directory if needed
|
||||||
|
- Save as `quotes/$1-quotes.md` with all quotes in markdown format
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
**If topic not found in any transcript:**
|
||||||
|
```
|
||||||
|
⚠️ No quotes found for topic: "$1"
|
||||||
|
|
||||||
|
Suggestions:
|
||||||
|
- Try broader search terms
|
||||||
|
- Check transcript file names to ensure they're included
|
||||||
|
- Try related terms: /extract-quotes "[alternative terms]"
|
||||||
|
```
|
||||||
|
|
||||||
|
**If no transcripts in directory:**
|
||||||
|
```
|
||||||
|
❌ No transcripts found in: $2
|
||||||
|
|
||||||
|
Please ensure:
|
||||||
|
- Directory path is correct
|
||||||
|
- Transcripts are in .txt or .md format
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Find quotes about pricing
|
||||||
|
/extract-quotes pricing ./interviews/
|
||||||
|
|
||||||
|
# Find more quotes with custom limit
|
||||||
|
/extract-quotes "product feedback" ./interviews/ --max-quotes 20
|
||||||
|
|
||||||
|
# Search multiple related terms
|
||||||
|
/extract-quotes "onboarding or getting started" ./customer-calls/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tips
|
||||||
|
|
||||||
|
**Effective search terms:**
|
||||||
|
- Single concepts: `pricing`, `features`, `support`
|
||||||
|
- Multi-word phrases: `"user experience"`, `"biggest challenge"`
|
||||||
|
- Related terms with OR: `"price or cost or budget"`
|
||||||
|
|
||||||
|
**Quote quality:**
|
||||||
|
- Scores 8-10: Exceptional quotes (use in presentations)
|
||||||
|
- Scores 6-7: Good quotes (use in reports)
|
||||||
|
- Scores 4-5: Useful context (reference material)
|
||||||
252
commands/rank-insights.md
Normal file
252
commands/rank-insights.md
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
---
|
||||||
|
description: Re-rank insights from previous analysis with different criteria
|
||||||
|
argument-hint: [analysis-file] [--criteria]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Re-Rank Insights
|
||||||
|
|
||||||
|
Re-rank insights from a previous analysis using different criteria (frequency, impact, relevance, or custom).
|
||||||
|
|
||||||
|
## Step 1: Load Previous Analysis
|
||||||
|
|
||||||
|
**Read the analysis file ($1):**
|
||||||
|
- Parse all themes/insights from the file
|
||||||
|
- Extract frequency data
|
||||||
|
- Note any existing rankings
|
||||||
|
|
||||||
|
**Report to user:**
|
||||||
|
```markdown
|
||||||
|
## 📊 Analysis Loaded
|
||||||
|
|
||||||
|
**File:** $1
|
||||||
|
**Themes found:** [number]
|
||||||
|
**Current ranking:** [Current criteria if specified]
|
||||||
|
|
||||||
|
**Available themes:**
|
||||||
|
1. [Theme name] - Currently ranked #1
|
||||||
|
2. [Theme name] - Currently ranked #2
|
||||||
|
[etc.]
|
||||||
|
|
||||||
|
How would you like to re-rank these insights?
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 2: Select Ranking Criteria
|
||||||
|
|
||||||
|
**Present options to user:**
|
||||||
|
```markdown
|
||||||
|
## 🎯 Ranking Criteria Options
|
||||||
|
|
||||||
|
Choose how to rank insights:
|
||||||
|
|
||||||
|
1. **Frequency** - Most mentioned themes first
|
||||||
|
- Best for: Understanding what came up most often
|
||||||
|
- Data available: ✅
|
||||||
|
|
||||||
|
2. **Impact** - Highest impact/severity first
|
||||||
|
- Best for: Prioritizing what to act on
|
||||||
|
- Requires: Manual input or impact assessment
|
||||||
|
|
||||||
|
3. **Relevance to ICP** - Best fit with ideal customer profile
|
||||||
|
- Best for: Focusing on target audience needs
|
||||||
|
- Requires: ICP document for comparison
|
||||||
|
|
||||||
|
4. **Business Value** - Revenue/strategic opportunity size
|
||||||
|
- Best for: ROI-focused prioritization
|
||||||
|
- Requires: Business context assessment
|
||||||
|
|
||||||
|
5. **Ease of Implementation** - Quick wins first
|
||||||
|
- Best for: Tactical planning
|
||||||
|
- Requires: Feasibility assessment
|
||||||
|
|
||||||
|
6. **Custom** - Provide your own criteria
|
||||||
|
- Example: "Rank by technical complexity" or "Rank by customer segment"
|
||||||
|
|
||||||
|
Which criteria would you like to use? [1-6 or describe custom]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Wait for user selection.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 3: Apply Ranking Criteria
|
||||||
|
|
||||||
|
Based on user's choice:
|
||||||
|
|
||||||
|
### If Frequency (Option 1):
|
||||||
|
- Simply re-sort themes by mention count
|
||||||
|
- No additional analysis needed
|
||||||
|
|
||||||
|
### If Impact (Option 2):
|
||||||
|
Use the **insight-ranker** agent to:
|
||||||
|
- Review each theme
|
||||||
|
- Assess potential impact (pain point severity, opportunity size)
|
||||||
|
- Rank accordingly
|
||||||
|
|
||||||
|
### If Relevance to ICP (Option 3):
|
||||||
|
**Ask for ICP document:**
|
||||||
|
```
|
||||||
|
Please provide path to your ICP document, or I'll look for:
|
||||||
|
- icp.md
|
||||||
|
- ideal-customer-profile.md
|
||||||
|
- customer-profile.md
|
||||||
|
in the analysis directory
|
||||||
|
```
|
||||||
|
|
||||||
|
Then use **insight-ranker** agent to:
|
||||||
|
- Read ICP document
|
||||||
|
- Score each theme by alignment with ICP characteristics
|
||||||
|
- Rank by relevance score
|
||||||
|
|
||||||
|
### If Business Value (Option 4):
|
||||||
|
**Prompt user for context:**
|
||||||
|
```
|
||||||
|
To rank by business value, I need to understand:
|
||||||
|
1. Revenue impact indicators (which themes suggest upsell/retention opportunities?)
|
||||||
|
2. Strategic priorities (which align with company goals?)
|
||||||
|
|
||||||
|
Please provide:
|
||||||
|
- Business goals document, OR
|
||||||
|
- Quick description of strategic priorities
|
||||||
|
|
||||||
|
Or I can make best-effort assessment based on theme content.
|
||||||
|
```
|
||||||
|
|
||||||
|
### If Custom (Option 6):
|
||||||
|
**Ask user to clarify:**
|
||||||
|
```
|
||||||
|
Please describe your custom ranking criteria:
|
||||||
|
Example: "Rank by technical complexity, easiest first"
|
||||||
|
Example: "Rank by enterprise vs SMB relevance"
|
||||||
|
Example: "Rank by urgency based on competitive pressure"
|
||||||
|
```
|
||||||
|
|
||||||
|
Then use **insight-ranker** agent with custom instructions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 4: Present Re-Ranked Results
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## ✅ Insights Re-Ranked: [Criteria]
|
||||||
|
|
||||||
|
### New Ranking:
|
||||||
|
|
||||||
|
#### #1: [Theme Name]
|
||||||
|
**Previous rank:** #[old position]
|
||||||
|
**Score:** [Score based on criteria] / 10
|
||||||
|
**Why this ranking:** [Brief explanation of why it ranks here]
|
||||||
|
|
||||||
|
**Key insight:** [One sentence summary]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### #2: [Theme Name]
|
||||||
|
[Same format...]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Continue for all themes]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ranking Changes
|
||||||
|
|
||||||
|
**Moved up:**
|
||||||
|
- [Theme]: #[old] → #[new] (↑[change])
|
||||||
|
|
||||||
|
**Moved down:**
|
||||||
|
- [Theme]: #[old] → #[new] (↓[change])
|
||||||
|
|
||||||
|
**Stayed same:**
|
||||||
|
- [Theme]: #[position]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
Would you like to:
|
||||||
|
1. Save this new ranking to file (updates original or creates new)
|
||||||
|
2. Compare rankings side-by-side (original vs new)
|
||||||
|
3. Try different criteria
|
||||||
|
4. Export top 3 insights as summary
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step 5: Save or Export (Optional)
|
||||||
|
|
||||||
|
**If user chooses to save:**
|
||||||
|
```markdown
|
||||||
|
Options:
|
||||||
|
1. ✅ Update original file ($1) with new ranking
|
||||||
|
2. 📄 Save as new file (analysis/$1-reranked-[criteria].md)
|
||||||
|
3. 📋 Just show me the ranking (don't save)
|
||||||
|
|
||||||
|
Which would you prefer?
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
**If analysis file doesn't exist:**
|
||||||
|
```
|
||||||
|
❌ Analysis file not found: $1
|
||||||
|
|
||||||
|
Available analysis files in current directory:
|
||||||
|
- [file1]
|
||||||
|
- [file2]
|
||||||
|
|
||||||
|
Usage: /rank-insights [analysis-file] [--criteria]
|
||||||
|
```
|
||||||
|
|
||||||
|
**If insufficient data for chosen criteria:**
|
||||||
|
```
|
||||||
|
⚠️ Not enough data to rank by "[criteria]"
|
||||||
|
|
||||||
|
This ranking method requires:
|
||||||
|
- [What's needed]
|
||||||
|
|
||||||
|
Would you like to:
|
||||||
|
1. Choose different criteria
|
||||||
|
2. Provide required context
|
||||||
|
3. Cancel
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Rank by frequency (simplest)
|
||||||
|
/rank-insights analysis/customer-research-analysis.md --criteria frequency
|
||||||
|
|
||||||
|
# Rank by ICP relevance
|
||||||
|
/rank-insights analysis/interviews-analysis.md --criteria relevance
|
||||||
|
|
||||||
|
# Custom ranking
|
||||||
|
/rank-insights analysis/feedback-analysis.md --criteria "urgency based on churn risk"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Tips for Effective Ranking
|
||||||
|
|
||||||
|
**Frequency ranking:**
|
||||||
|
- Good for: Identifying consensus themes
|
||||||
|
- Watch out for: Silent but critical minority opinions
|
||||||
|
|
||||||
|
**Impact ranking:**
|
||||||
|
- Good for: Prioritizing action items
|
||||||
|
- Consider: Both pain severity and opportunity size
|
||||||
|
|
||||||
|
**Relevance ranking:**
|
||||||
|
- Good for: Focusing on target audience
|
||||||
|
- Requires: Well-defined ICP
|
||||||
|
|
||||||
|
**Custom ranking:**
|
||||||
|
- Most flexible
|
||||||
|
- Best when you have specific strategic context
|
||||||
|
- Examples: "competitive urgency", "implementation cost", "customer segment"
|
||||||
65
plugin.lock.json
Normal file
65
plugin.lock.json
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:animalzinc/claude-plugins:plugins/interview-transcript-analyzer",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "7703523e37172270e7319dd94d33a101e3f4c6d6",
|
||||||
|
"treeHash": "f40a8408dfc0dcd00b6ff6be897736637ed4bc09035c3246119491c17d93e0ef",
|
||||||
|
"generatedAt": "2025-11-28T10:13:44.524241Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "interview-transcript-analyzer",
|
||||||
|
"description": "Analyze interview transcripts with unlimited token limits. Extract themes, rank insights by relevance, and find representative quotes. Intelligently scales agents based on workload.",
|
||||||
|
"version": "1.0.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "4f9386a10e6994f0dcb8fa03705251844557dd2d976d5170cc2dd5eff2147359"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "agents/quote-selector.md",
|
||||||
|
"sha256": "81d555d4e926e231baf2d9190fbc51505a60a89d9e6da199a78bd17f0c6472ad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "agents/theme-extractor.md",
|
||||||
|
"sha256": "e3bc03e93c325468ea99583405f2b1616cefdf86b658074c387fa75555f43086"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "agents/insight-ranker.md",
|
||||||
|
"sha256": "2f0f9c764c60ddd77a31034285503748b32fcdedf981cec8ea255d302a015b85"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "906e9e970c930d3f209b503be81c61191b3feab4ee3562d0bf20403b6daa905c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/rank-insights.md",
|
||||||
|
"sha256": "f96735a66e27703617eda592884be001bbd2c3adf67188c1653d9c552ef1b59d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/extract-quotes.md",
|
||||||
|
"sha256": "d51015219fc869c67a17863a6a9bb11d31cf02c291a976c7ffc364f7f6beafb7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "commands/analyze-interviews.md",
|
||||||
|
"sha256": "1579eca15ed6200a1256c155d50764eab0a9cec99b548839b1f40a0e3ac93532"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "f40a8408dfc0dcd00b6ff6be897736637ed4bc09035c3246119491c17d93e0ef"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user