.claude/skills/feedback-analysis/SKILL.md
Customer feedback analysis — sentiment detection, NPS/CSAT frameworks, feature request clustering, support ticket triage, churn signal detection, and feedback-to-roadmap translation
npx skillsauth add oimiragieo/agent-studio feedback-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Customer feedback analysis transforms raw feedback into actionable intelligence across six interconnected capability areas. All capabilities share a common data pipeline: unified multi-channel feedback collection feeds sentiment detection, which powers NPS/CSAT scoring, feature clustering, ticket triage, churn signals, and ultimately roadmap prioritization.
Six Capability Areas:
Invoke Skill({ skill: 'feedback-analysis' }) when:
Iron Law: All analysis degrades without unified data. Single-channel view creates blind spots.
Channels to unify:
- In-app surveys (NPS, CSAT, CES)
- Support tickets (Zendesk, Intercom, Freshdesk)
- App store reviews (iOS, Android)
- Social mentions (Twitter/X, Reddit, LinkedIn)
- Chat transcripts (live chat, chatbot logs)
- Product reviews (G2, Capterra, Trustpilot)
- Email responses
Output: A unified feedback dataset with source, timestamp, channel, user tier, and raw text per item.
Method: NLP-based multi-dimensional sentiment classification.
Classifications:
Key Pattern — Mismatch Detection (Critical Insight):
A customer scoring 8 (NPS Passive) with deeply negative text is high churn risk. A customer scoring 6 (NPS Detractor) with positive text is recoverable. Mismatch = highest priority segment for intervention.
Mismatch Types:
- High score + negative text → At-risk, intervention needed
- Low score + positive text → Recoverable, reduce friction
- Neutral score + high emotion → Emerging issue, monitor closely
Output: Sentiment-tagged dataset with polarity, emotion, intensity, and mismatch flags.
Dual-Track Analysis: Process numerical scores AND open-text responses in parallel.
NPS Segments:
CSAT Layers:
Multi-Dimensional Segmentation:
Dimensions to segment by:
- User tier (free, pro, enterprise)
- Acquisition channel
- Product area (onboarding, core feature, billing, support)
- Agent/team (for support CSAT)
- Cohort (joined date, plan upgrade date)
- Region/language
Output: NPS/CSAT dashboard data with trend lines, mismatch segments, and causation narratives.
Method: Group verbatims into themes without manual tagging using pattern detection.
Clustering Dimensions:
Category Taxonomy:
Request Categories:
- Bug Report (broken functionality)
- Feature Gap (missing capability)
- UX Friction (confusing/slow workflow)
- Performance Issue (speed, reliability)
- Integration Request (connect to other tools)
- Pricing Feedback (too expensive, wrong tier)
- Documentation Gap (can't figure out how to use it)
Prioritization Formula:
Priority Score = (Frequency × 0.3) + (Emotion Weight × 0.3) + (Churn Correlation × 0.4)
Output: Ranked feature request list with evidence count, sentiment weight, and churn correlation per cluster.
Taxonomy Design: Hierarchical, max 30-50 tags to prevent tag bloat.
Recommended Taxonomy Structure:
Level 1 (Category): Level 2 (Subcategory): Level 3 (Root Cause):
- Technical Issue - Login/Auth - Password reset broken
- Billing - Charge dispute - Double-charged
- Feature Usage - Onboarding - Setup wizard unclear
- Performance - Slow response - Database timeout
- Integration - API error - Rate limit exceeded
- Account Management - Team permissions - Role not propagating
Triage Modes:
Priority Scoring:
Ticket Priority = Urgency (language cues) + Impact (user tier/revenue) + Sentiment (frustration level)
- P0: Critical + Enterprise user + High frustration
- P1: High urgency + Any paid user + Negative sentiment
- P2: Medium urgency + Any user + Neutral/negative
- P3: Low urgency + Any user + Neutral
Output: Categorized and prioritized ticket queue with taxonomy assignments and routing rules.
Behavioral Profile Clustering:
User Engagement Profiles:
- Power User: High session frequency, feature breadth, collaborative
- Dabbler: Irregular sessions, single workflow, no integrations
- One-Feature User: Deep single-feature use, no expansion
- Trial Tourist: Onboarding complete, then disengaged
Early Warning Signals (detect BEFORE explicit churn):
Churn Risk Scoring:
Churn Risk = (Behavioral signals × 0.4) + (Feedback sentiment × 0.3) + (Support ticket pattern × 0.3)
Risk Tiers:
- High (>0.7): Trigger immediate retention playbook
- Medium (0.4-0.7): Proactive outreach + success check-in
- Low (<0.4): Monitor, standard touchpoints
Reason Code Generation: Each high-risk user gets a human-readable reason code:
Output: Churn risk cohort with risk scores, reason codes, and triggered playbook recommendations.
Input: Completed phases 1-6 (sentiment, NPS/CSAT, clusters, triage, churn signals)
Prioritization Matrix:
Roadmap Score = (Feature Request Frequency × 0.25)
+ (Churn Correlation × 0.35)
+ (NPS Impact × 0.25)
+ (Support Volume × 0.15)
Stakeholder Output Format:
## Roadmap Recommendation: [Feature/Fix Name]
**Evidence Summary**: [N] users requested this across [channels]
**Sentiment**: [Avg. emotional weight and polarity]
**Churn Correlation**: [% of churned users mentioned this]
**NPS Impact**: [Correlation to Detractor-to-Promoter potential]
**Support Impact**: [Ticket volume and priority distribution]
**Recommended Action**: [Implement / Investigate / Defer / Decline]
**Priority Tier**: P0 / P1 / P2 / P3
**Supporting Quotes**: [3-5 verbatim user quotes]
Continuous Loop: Feed roadmap decisions back into feedback collection ("Did we solve the problem?").
Output: Ranked roadmap items with quantitative evidence, stakeholder narrative, and action recommendations.
| Anti-Pattern | Why It Fails | Correct Approach | | --------------------------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------- | | Analyzing only NPS scores without text | Misses mismatch segments (fake Promoters, recoverable Detractors) | Always run dual-track score + text analysis | | Flat taxonomy with 200+ ticket tags | Agents use first matching tag; root cause data is lost | Hierarchical taxonomy, max 50 leaf nodes | | Clustering by frequency alone | Missing features that don't come up often but cause 80% of churn | Weight clusters by churn correlation (0.4 weight) | | Waiting for explicit churn to detect it | Post-churn analysis doesn't save the customer | Behavioral early warning signals, 14-day detection horizon | | Roadmap items without evidence count | Stakeholders can't evaluate priority or trade-offs | Every roadmap item needs: frequency, sentiment weight, churn %, quotes | | Single-channel feedback collection | Blind spots by channel; social complaints ≠ support tickets | Unify all channels before analysis |
Input validated against schemas/input.schema.json before execution.
Output contract defined in schemas/output.schema.json.
Pre-execution hook: hooks/pre-execute.cjs
Post-execution hook (observability): hooks/post-execute.cjs
Before starting:
Read .claude/context/memory/learnings.md
Check for:
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: If it's not in memory, it didn't happen.
tools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.