Communitygithub.com

SUDARSHANCHAUDHARI/WinNow

Investigación de los últimos 30 días clasificada por autenticidad, no por interacción bruta. Puntúa cada resultado por señales de astroturfing/bots y cubre fuentes que otros omiten: reseñas de App Store + Play Store y Pantip (Tailandia). Motor Python + skill para agente + dashboard Next.js.

¿Qué es WinNow?

Winnow es un skill para agentes de IA (Claude Code, Cursor, Codex) que ejecuta un motor Python headless para recuperar contenido de los últimos 30 días desde reseñas de App Store, Play Store y Pantip (Tailandia), y puntúa cada ítem según su autenticidad usando detectores de ráfagas, duplicados, texto fino y anonimato. La salida es un resumen markdown estructurado con etiquetas de confianza (✅ trusted, ⚠️ mixed, 🚩 suspicious) que el agente debe usar para sintetizar un informe honesto, sin reinventar datos. Es útil para investigadores de mercado, analistas de producto y desarrolladores que necesitan comprender la verdadera opinión de los usuarios sin ruido de bots. El skill gestiona automáticamente la desambiguación de marcas y la selección de fuentes según el tipo de tópico. El agente lee el output del motor y genera un headline, puntos clave con citas, una nota de confianza y la lista clasificada original.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add SUDARSHANCHAUDHARI/WinNow

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace WinNow?

Winnow ejecuta un motor Python headless que extrae contenido de los últimos 30 días desde fuentes de reseñas y plataformas regionales, puntúa cada ítem por autenticidad (detectores de ráfagas / duplicados / texto fino / anónimos) y clasifica según interacción ponderada por autenticidad. Tu trabajo es ejecutar el motor, leer su markdown estructurado y sintetizar un informe breve y honesto.

El motor hace la recuperación, puntuación y clasificación. Tú haces la prosa. No re-clasifiques, re-puntúes ni inventes datos — las etiquetas de confianza están calculadas, confía en ellas.

Ejecutar el motor

Resuelve SKILL_DIR al directorio de este SKILL.md, luego localiza el motor. Está en uno de dos lugares conocidos — empaquetado dentro del skill (instalaciones independientes) o dos niveles arriba (clon del repositorio). Revisa ambos, sin búsqueda abierta:

ENGINE=""
for cand in "$SKILL_DIR/engine/winnow.py" "$SKILL_DIR/../../engine/winnow.py"; do
  [ -f "$cand" ] && ENGINE="$cand" && break
done
python3 "$ENGINE" "<TOPIC>" --sources <sources> --limit 25
  • Fuentes predeterminadas: appstore para un nombre de app; appstore,pantip si el usuario quiere señal regional/de Tailandia; playstore cuando el tema es un id de paquete (contiene puntos, ej. com.whatsapp).
  • Los nombres de apps se resuelven automáticamente a un id de App Store. Los ids de paquete van a Play Store.
  • Una fuente muerta nunca falla la ejecución; registra en stderr y continúa.

Desambigua marcas ambiguas. Cuando el tema es una palabra que también significa otra cosa (Notion la app vs la banda; Apple la empresa vs la fruta) y estás usando una fuente de palabras clave (reddit, youtube, x, pantip), TÚ sabes qué sentido se quiere — así que pásalo:

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

Estos filtros se aplican SOLO a fuentes de palabras clave (las fuentes de reseñas se obtienen por id de app y ya son inequívocas). Proporciona una lista de exclusión ajustada para cualquier tema cuyo nombre coincida con un significado común no relacionado. Ambas banderas no tienen efecto si se omiten.

Leer la salida

El motor imprime un informe markdown: un encabezado, advertencias opcionales del corpus ⚠️, luego ítems clasificados. Cada ítem lleva:

  • una etiqueta de fuente (appstore / playstore / pantip)
  • calificación N★ (fuentes de reseñas)
  • trust 0.00–1.00 con una etiqueta: ✅ trusted · ⚠️ mixed · 🚩 suspicious
  • flags: las señales de autenticidad que se activaron (ej. review-burst, near-duplicate)

Una advertencia del corpus como "Baja confianza en el corpus (48%)" significa que la interacción está muy manipulada — dilo claramente en tu informe.

Sintetizar el informe

Emitir, en este orden:

  1. Título de una línea sobre lo que los usuarios reales están diciendo realmente este mes.
  2. Qué funciona / qué no funciona — 2–4 puntos con viñetas, cada uno basado en una reseña citada. Enlaza cada cita como [source](url).
  3. Nota de confianza — si algún ítem de alto rango está marcado o la confianza del corpus es baja, menciónalo: "N de los ítems principales muestran señales de push coordinado."
  4. Los recibos — pasa la lista clasificada del motor (o los 5–8 principales).

Reglas, mantenidas cortas a propósito:

  • Nunca fabriques una reseña, calificación o número. Si el motor no devolvió nada, dilo.
  • Cada cita proviene de la salida del motor. Cada enlace es un [texto](url) real.
  • Lidera con la historia de autenticidad — es el objetivo principal de esta herramienta.
  • Sin guiones largos en tu propia prosa; usa -.

Eso es todo. El motor es el contrato; este archivo es delgado por diseño.

Skills relacionados