From pm-os
Analyzes customer feedback from pasted text, files, or Slack channels. Categorizes by theme, frequency, severity, and sentiment. Outputs structured synthesis with top themes, quotes, and recommended actions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm-os:feedback-synthesisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You analyze customer feedback and produce a structured synthesis report. Feedback can come from pasted text, files, or Slack channels (via MCP).
You analyze customer feedback and produce a structured synthesis report. Feedback can come from pasted text, files, or Slack channels (via MCP).
knowledge/ exists. If not, tell the user: "No knowledge base found. Run /pm-setup first."knowledge/pm-context.md for product context, key metrics, and tone preferences.knowledge/okrs.md for current objectives (to connect feedback themes to goals).Ask the user: "How would you like to provide the feedback?"
Offer three options:
"Paste the feedback below. It can be messy: support tickets, NPS comments, survey responses, Slack messages, email threads. I'll parse it all."
"Give me a file path (CSV, TXT, MD, or JSON). I'll read it and extract the feedback entries."
Read the file and parse it. Handle common formats:
Check if Slack MCP tools are available.
If available:
If NOT available:
Once you have the raw feedback, process it:
Produce the synthesis in this format:
# Feedback Synthesis: {date}
**Source**: {where the feedback came from}
**Entries analyzed**: {count}
**Date range**: {if known}
---
## Top Themes
### 1. {Theme Name} ({count} mentions, {severity})
**Summary**: {1-2 sentence description of what users are saying}
**Representative quotes**:
> "{actual quote from feedback}"
> "{actual quote from feedback}"
**Severity breakdown**: {X critical, Y high, Z medium}
### 2. {Theme Name} ({count} mentions, {severity})
{same structure}
### 3. {Theme Name} ({count} mentions, {severity})
{same structure}
{Continue for all themes with 2+ mentions. Single-mention items go in "Other Signals" below.}
---
## Sentiment Overview
- Positive: {count} ({percentage})
- Negative: {count} ({percentage})
- Neutral: {count} ({percentage})
- Mixed: {count} ({percentage})
---
## Other Signals
{Single-mention items that are notable}
---
## Recommended Actions
| Priority | Action | Theme | Rationale |
|----------|--------|-------|-----------|
| 1 | {specific action} | {theme} | {why this is the top priority} |
| 2 | {specific action} | {theme} | {rationale} |
| 3 | {specific action} | {theme} | {rationale} |
---
## Connection to OKRs
{Map the top themes to current OKRs if relevant. Call out themes that are NOT covered by any current objective.}
---
*Generated by PM-OS feedback-synthesis*
Write the synthesis to knowledge/feedback/synthesis-{YYYY-MM-DD}.md.
Tell the user: "Synthesis saved to knowledge/feedback/synthesis-{date}.md. This will show up in your /pm-dashboard and /brief."
Based on the findings, suggest specific PM-OS actions:
/prd to spec a fix for {theme}."/competitive-intel on {competitor} to understand their approach."/prioritize backlog."/opportunity-assessment for {theme}."pm-context.md when making recommendations.npx claudepluginhub shaan-ad/pm-os --plugin pm-osCategorizes, scores, and prioritizes customer feedback from support tickets, reviews, and surveys into actionable reports with feature request rankings and sentiment trends.
Clusters support tickets, NPS verbatims, app store reviews, and churn surveys by theme, separates signal from noise, and produces actionable insight reports.
Use this skill when the user asks to "triage feedback", "analyze support tickets", "cluster feedback", "analyze NPS responses", "what are users complaining about", "find pain points in this feedback", "synthesize this customer feedback", or pastes a batch of raw feedback, tickets, or interview notes. This skill is for structured feedback triage and scoring. For interview-specific synthesis, use discovery/continuous-interview-synthesis. For full research synthesis with OST mapping, use /synthesize-research.