Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add shaan-ad/pm-os --skill feedback-synthesisgit clone --depth 1 https://github.com/shaan-ad/pm-osWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/shaan-ad/pm-os/feedback-synthesis)<a href="https://agentmods.dev/skills/shaan-ad/pm-os/feedback-synthesis"><img src="https://agentmods.dev/badge/skills/shaan-ad/pm-os/feedback-synthesis/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/shaan-ad/pm-os/feedback-synthesis"><img src="https://agentmods.dev/badge/skills/shaan-ad/pm-os/feedback-synthesis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00035 | $0.01329 |
| Opus 5 | $0.00017 | $0.00665 |
| Sonnet 5 | $0.00007 | $0.00266 |
| Haiku 4.5 | $0.00003 | $0.00133 |
Grade A, and why
feedback-synthesis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 145 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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
- Check that
knowledge/exists. If not, tell the user: "No knowledge base found. Run/pm-setupfirst." - Read
knowledge/pm-context.mdfor product context, key metrics, and tone preferences. - Read
knowledge/okrs.mdfor 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:
- Extract individual pieces of feedback. Each distinct complaint, suggestion, praise, or question is one entry.
- 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.
- 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
- Rate sentiment: Positive, Negative, Neutral, Mixed
- Count frequency: How many entries per theme
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 145 lines · 35 tokens per session scan A 8ab269d7cd21
feedback-synthesis is a skill published in the GitHub repository shaan-ad/pm-os (31 stars, last pushed 5mo ago), licensed MIT. It adds 35 tokens to every session and 1,329 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
alive:system-cleanup
The world feels messy. Stale tasks, orphan folders, v2 remnants, unsaved sessions — entropy is accumulating and needs to be addressed before it compounds. Scans across all walnuts, then surfaces issues one at a time.
alive:world
The human doesn't know what to work on, or wants to see everything at once. They need the big picture — what's active, what's stale, what needs attention. Renders a live world view grouped by ALIVE domain, then routes to open, tidy, find, history, or map.
alive:bundle
Create, share, and graduate bundles — the unit of focused work within a walnut. Manages the full bundle lifecycle from creation through sharing to graduation.
alive:settings
The human wants to adjust how the system behaves — not what it contains, but how it feels. Voice, rhythm, preferences, walnut-level config, full permissions toggleable, named squirrel config, action logging toggle. The system adapting to them. Routes to preferences.yaml or walnut config.yaml depending on scope. For…
cco-budget
Configure token budget limits, auto-compact settings, and view current budget status (model-aware — Claude 5 lineup, Opus 5 default fallback, full 1M context at standard price).
alive-cleanup
System maintenance -- stale tasks, orphan folders, unsaved sessions, world health check.