skills/product/listen/SKILL.md
Aggregate customer feedback from discovered sources across support, surveys, social, and direct channels. This skill should be used when the user needs to gather customer voice data to inform product decisions or understand sentiment. Use when: aggregating customer feedback from discovered sources, gathering voice-of-customer data, or surveying sentiment across channels.
npx skillsauth add mikeparcewski/wicked-garden listenInstall 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.
Aggregate customer feedback from multiple channels with automatic source discovery.
The skill automatically discovers available feedback capabilities and routes to whichever are present:
| Capability | Discovers | Examples |
|------------|-----------|----------|
| support-tickets | CLI tools, APIs, exports providing ticket data | Ticket system CLIs, support platform exports, help desk APIs |
| customer-feedback | Feedback platforms, voting systems, feature request tools | Feedback exports, product board files, customer labels in issue trackers |
| surveys | Survey response exports (CSV, JSON) | Survey platform exports, NPS data files, form responses |
| conversations | Chat and messaging data sources | Chat exports, messaging platform data |
| issue-tracking | Bug/issue trackers with customer-reported items | Issue tracker CLIs with customer labels or tags |
# Listen to all available capabilities (auto-discovers sources)
/wicked-garden:product:listen
# Specific capability type
/wicked-garden:product:listen --capability support-tickets
# Time window
/wicked-garden:product:listen --days 30
/wicked-garden:product:listen --since "2026-01-01"
# Filter by tags
/wicked-garden:product:listen --tags bug,feature-request
# Limit results
/wicked-garden:product:listen --limit 50
Discover Available Capabilities
Fetch Recent Feedback
Normalize Format
Store for Analysis
# Resolved via: sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/resolve_path.py" wicked-garden:product
{local_root}/wicked-garden:product/voice/feedback/{source}/{date}/{id}.md
---
id: fb_abc123
capability: support-tickets
source_tool: detected-cli-tool
source_id: ticket_456
date: 2026-01-20T10:30:00Z
author: [email protected]
segment: enterprise
tags: [bug, mobile, performance]
sentiment: negative
priority: high
---
# {Title/Subject}
## Original Feedback
{Raw customer quote}
## Context
- Platform: iOS 16
- Plan: Enterprise
- User since: 2025-06-01
Concise summary of aggregated feedback:
## Listening Report: {Timeframe}
### Capabilities Discovered
- support-tickets: {X} items from {N} source(s)
- customer-feedback: {Y} items from {N} source(s)
- surveys: {Z} responses from {N} source(s)
- Total: {N} feedback items across {M} capabilities
### Quick Stats
- Sentiment: {%pos} positive, {%neg} negative, {%neu} neutral
- Top tags: {tag1} ({count}), {tag2} ({count})
- Critical items: {count}
### Recent Highlights
1. **{Title}** - {source} - {date}
- Sentiment: {sentiment}
- Quote: "{excerpt}"
{Top 5-10 items}
### Next Steps
Run /wicked-garden:product:analyze to extract themes and trends.
See channels.md for detailed capability integration patterns.
# Recall past customer insights
Skill(skill="wicked-brain:memory", args="recall \"customer feedback about {topic}\"")
# Provide historical context
# Auto-trigger during product:requirements phase
if event == "product:requirements:started":
feedback = listen(days=30, tags=["feature-request"])
inject_context(feedback)
Feedback stored at: {local_root}/wicked-garden:product/voice/feedback/{source}/{YYYY-MM}/{id}.md (resolve via resolve_path.py wicked-garden:product)
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".