# Winnow

> Research what real people say about an app or topic in the last 30 days, ranked by authenticity not raw engagement. Covers App Store + Play Store reviews and Pantip (Thailand) — sources other tools skip.

- **Type:** Skill
- **Install:** `agentstack add skill-sudarshanchaudhari-winnow-winnow`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [SUDARSHANCHAUDHARI](https://agentstack.voostack.com/s/sudarshanchaudhari)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [SUDARSHANCHAUDHARI](https://github.com/SUDARSHANCHAUDHARI)
- **Source:** https://github.com/SUDARSHANCHAUDHARI/WinNow/tree/main/skills/winnow

## Install

```sh
agentstack add skill-sudarshanchaudhari-winnow-winnow
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Winnow

Winnow runs a headless Python engine that pulls last-30-days content from
review sources and regional platforms, scores every item for **authenticity**
(burst / duplicate / thin-text / anonymous detectors), and ranks by
authenticity-weighted engagement. Your job is to run the engine, read its
structured markdown, and synthesize a short honest brief.

The engine does the retrieval, scoring, and ranking. You do the prose. Do not
re-rank, re-score, or invent data — the trust labels are computed, trust them.

## Run the engine

Resolve `SKILL_DIR` to the directory of this SKILL.md, then locate the engine.
It lives in one of two known spots - bundled inside the skill (standalone
installs) or two levels up (repo checkout). Check both, no open-ended search:

```bash
ENGINE=""
for cand in "$SKILL_DIR/engine/winnow.py" "$SKILL_DIR/../../engine/winnow.py"; do
  [ -f "$cand" ] && ENGINE="$cand" && break
done
python3 "$ENGINE" "" --sources  --limit 25
```

- **Default sources:** `appstore` for an app name; `appstore,pantip` if the user
  wants regional/Thailand signal; `playstore` when the topic is a package id
  (contains dots, e.g. `com.whatsapp`).
- App names resolve to an App Store id automatically. Package ids go to Play Store.
- One dead source never fails the run; it logs to stderr and continues.

**Disambiguate ambiguous brands.** When the topic is a word that also means
something else (Notion the app vs the band; Apple the company vs the fruit) and
you are using a keyword source (`reddit`, `youtube`, `x`, `pantip`), YOU know
which sense is meant - so pass it through:

```bash
--context-exclude "song,lyrics,album,music video,band,movie,trailer"
--context-include "app,software,workspace,update,feature"
```

These filters apply ONLY to keyword sources (review sources are fetched by app
id and are already unambiguous). Supply a tight exclude list for any topic whose
name collides with an unrelated common sense. Both flags are no-ops if omitted.

## Read the output

The engine prints a markdown brief: a header, optional `⚠️` corpus warnings, then
ranked items. Each item carries:

- a source tag (`appstore` / `playstore` / `pantip`)
- `N★` rating (review sources)
- `trust 0.00–1.00` with a label: ✅ trusted · ⚠️ mixed · 🚩 suspicious
- `flags:` the authenticity signals that fired (e.g. `review-burst, near-duplicate`)

A corpus warning like *"Low corpus trust (48%)"* means the engagement is heavily
gamed — say so plainly in your brief.

## Synthesize the brief

Emit, in this order:

1. **One-line headline** of what real users are actually saying this month.
2. **What's working / what's broken** — 2–4 bullet points, each grounded in a
   cited review. Link every citation as `[source](url)`.
3. **Trust note** — if any high-ranked items are flagged or corpus trust is low,
   call it out: "N of the top items show coordinated-push signals."
4. **The receipts** — pass through the engine's ranked list (or the top 5–8).

Rules, kept short on purpose:
- Never fabricate a review, rating, or number. If the engine returned nothing, say so.
- Every quote comes from the engine output. Every link is a real `[text](url)`.
- Lead with the authenticity story — it is the whole point of this tool.
- No em-dashes in your own prose; use ` - `.

That's it. The engine is the contract; this file is thin by design.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [SUDARSHANCHAUDHARI](https://github.com/SUDARSHANCHAUDHARI)
- **Source:** [SUDARSHANCHAUDHARI/WinNow](https://github.com/SUDARSHANCHAUDHARI/WinNow)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-sudarshanchaudhari-winnow-winnow
- Seller: https://agentstack.voostack.com/s/sudarshanchaudhari
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
