Skip to content
Back to skills

Feedback Synthesis

ASecurity

Analyze customer feedback from any source. Categorize by theme, frequency, and severity. Output a synthesis with top themes, representative quotes, and recommended actions.

  • 31 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
datagoperformance

Works with

  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add shaan-ad/pm-os --skill feedback-synthesis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Feedback Synthesis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Feedback Synthesis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shaan-ad-feedback-synthesis/badge)](https://www.skillsdirectory.com/skills/shaan-ad-feedback-synthesis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: feedback-synthesis
description: "Analyze customer feedback from any source. Categorize by theme, frequency, and severity. Output a synthesis with top themes, representative quotes, and recommended actions."
---

# Feedback Synthesis

You analyze customer feedback and produce a structured synthesis report. Feedback can come from pasted text, files, or Slack channels (via MCP).

## Before Running

1. Check that `knowledge/` exists. If not, tell the user: "No knowledge base found. Run `/pm-setup` first."
2. Read `knowledge/pm-context.md` for product context, key metrics, and tone preferences.
3. Read `knowledge/okrs.md` for current objectives (to connect feedback themes to goals).

## Step 1: Collect Feedback

Ask the user: "How would you like to provide the feedback?"

Offer three options:

### Option A: Paste directly
"Paste the feedback below. It can be messy: support tickets, NPS comments, survey responses, Slack messages, email threads. I'll parse it all."

### Option B: Import from file
"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:
- CSV: Look for columns like "feedback", "comment", "message", "text", "description"
- JSON: Look for arrays of objects with text fields
- TXT/MD: Treat each paragraph or line as a separate piece of feedback

### Option C: Pull from Slack (MCP)
Check if Slack MCP tools are available.

If available:
- Ask: "Which Slack channel should I pull from? And how far back? (e.g., #product-feedback, last 7 days)"
- Use Slack MCP to fetch messages from that channel and timeframe
- Filter for actual feedback (skip status updates, casual chat, bot messages)

If NOT available:
- Say: "Slack integration isn't set up. You can install the Slack MCP server for direct channel access. For now, paste the feedback or give me a file path."

## Step 2: Parse and Categorize

Once you have the raw feedback, process it:

1. **Extract individual pieces of feedback.** Each distinct complaint, suggestion, praise, or question is one entry.
2. **Categorize each entry by theme.** Create themes from the data (don't use pre-built categories). Typical themes: usability issues, missing features, performance, pricing, onboarding, specific feature requests.
3. **Rate severity for each entry:**
   - **Critical**: User is blocked, churning, or losing money
   - **High**: Significant friction, workaround required
   - **Medium**: Annoying but manageable
   - **Low**: Nice-to-have, minor polish
4. **Rate sentiment:** Positive, Negative, Neutral, Mixed
5. **Count frequency:** How many entries per theme

## Step 3: Generate Synthesis

Produce the synthesis in this format:

```markdown
# 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*
```

## Step 4: Save the Report

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`."

## Step 5: Suggest Next Steps

Based on the findings, suggest specific PM-OS actions:

- If a critical theme emerged: "Consider running `/prd` to spec a fix for {theme}."
- If a competitor was mentioned: "Run `/competitive-intel` on {competitor} to understand their approach."
- If it connects to OKRs: "This feedback supports OKR {X}. Consider adding it to your `/prioritize` backlog."
- If a theme is new territory: "This theme isn't covered by current OKRs. Consider an `/opportunity-assessment` for {theme}."

## Behavior Notes

- **Use actual quotes.** Never fabricate or paraphrase quotes in the "representative quotes" sections. Use the exact words from the feedback.
- **Be specific in actions.** "Fix the onboarding flow" is too vague. "Add a progress indicator to the 5-step onboarding wizard" is better.
- **Don't over-categorize.** If there are only 10 pieces of feedback, 3-4 themes is plenty. Don't create a theme for every entry.
- **Flag data quality.** If the feedback set is small (<10), skewed toward one channel, or all from the same time period, note the limitations.
- **Respect the product context.** Reference the product stage and key metrics from `pm-context.md` when making recommendations.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.