From wicked-garden
Sentiment analysis, theme extraction, and trend detection from customer feedback. Use when: "what are customers saying about X", "feedback trends", "analyze customer feedback", "sentiment analysis", "customer themes", "what's the top complaint"
npx claudepluginhub mikeparcewski/wicked-garden --plugin wicked-gardenThis skill uses the workspace's default tool permissions.
Extract themes, sentiment, and trends from aggregated customer feedback.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Extract themes, sentiment, and trends from aggregated customer feedback.
/wicked-garden:product:listen# Analyze all recent feedback
/wicked-garden:product:analyze
# Analyze specific theme
/wicked-garden:product:analyze --theme "mobile experience"
# Analyze sentiment only
/wicked-garden:product:analyze --sentiment negative
# Trend analysis
/wicked-garden:product:analyze --trend "last-quarter"
# Segment analysis
/wicked-garden:product:analyze --segment enterprise
Priority = (Frequency × Severity × Urgency) / Total_Feedback
See refs/algorithms.md for detailed scoring.
Load Feedback Data:
LOCAL_ROOT=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/resolve_path.py" wicked-garden:product)
Then use the Glob tool to find feedback files:
Glob(pattern="**/*.md", path="${LOCAL_ROOT}/voice/feedback/")
Read individual files with the Read tool to load recent feedback.
Extract Themes:
Score Sentiment:
Detect Trends:
Segment Analysis:
## Analysis: {Topic or Timeframe}
### Sentiment Overview
- Net Sentiment: {+/-N} ({X}% positive, {Y}% negative)
- Strong Emotions: {count} highly positive, {count} highly negative
- Trend: {IMPROVING/DECLINING/STABLE} compared to previous period
### Top Themes (by priority)
1. **{Theme}** - Priority: {score}
- Frequency: {count} mentions ({%} of total)
- Sentiment: {positive/negative/mixed} ({intensity})
- Trend: {GROWING/STABLE/DECLINING} ({+/-X}% vs. baseline)
- Severity: {CRITICAL/HIGH/MEDIUM/LOW}
- Key quote: "{representative example}"
{Top 5 themes}
### Emerging Patterns
- **{New Theme}**: Recently appeared, {count} mentions
- **{Growing Theme}**: {X}% increase from last period
### Segment Insights
- **{Segment}**: {sentiment + top theme}
### Recommendations
{1-3 actionable recommendations based on analysis}
See refs/algorithms.md for detailed analysis algorithms.
# Triggered by product:requirements:started event
if event.type == "product:requirements:started":
# Analyze recent feedback for feature context
analysis = analyze(days=30, tags=["feature-request"])
emit_signal("voice:analysis:ready", analysis)
# Tag themes with related task IDs by reading native tasks from
# ${CLAUDE_CONFIG_DIR}/tasks/{session_id}/ and matching keywords
tasks = search_native_tasks(theme.keywords)
theme.related_tasks = tasks
Analysis results stored at: {local_root}/wicked-garden:product/voice/analysis/{theme}/{date}.md (resolve via resolve_path.py wicked-garden:product)