O que WinNow faz?
O Winnow executa um motor Python headless que coleta conteúdo dos últimos 30 dias de fontes de avaliações e plataformas regionais, pontua cada item por autenticidade (detectores de explosão / duplicata / texto raso / anônimo) e ranqueia por engajamento ponderado por autenticidade. Seu trabalho é executar o motor, ler seu markdown estruturado e sintetizar um breve resumo honesto.
O motor faz a recuperação, pontuação e ranqueamento. Você faz a prosa. Não re-ranqueie, re-pontue ou invente dados — os rótulos de confiança são computados, confie neles.
Execute o motor
Resolva SKILL_DIR para o diretório deste SKILL.md, então localize o motor.
Ele está em um de dois locais conhecidos — embutido dentro do skill (instalações
autônomas) ou dois níveis acima (checkout do repositório). Verifique ambos, sem busca aberta:
ENGINE=""
for cand in "$SKILL_DIR/engine/winnow.py" "$SKILL_DIR/../../engine/winnow.py"; do
[ -f "$cand" ] && ENGINE="$cand" && break
done
python3 "$ENGINE" "<TOPICO>" --sources <fontes> --limit 25
- Fontes padrão:
appstorepara um nome de aplicativo;appstore,pantipse o usuário quiser sinal regional/d a Tailândia;playstorequando o tópico é um id de pacote (contém pontos, ex.com.whatsapp). - Nomes de aplicativos resolvem automaticamente para um id da App Store. Ids de pacote vão para a Play Store.
- Uma fonte morta nunca falha a execução; ela registra em stderr e continua.
Desambigue marcas ambíguas. Quando o tópico é uma palavra que também significa
outra coisa (Notion o aplicativo vs. a banda; Apple a empresa vs. a fruta) e
você está usando uma fonte de palavra-chave (reddit, youtube, x, pantip), VOCÊ
sabe qual sentido é pretendido — então passe isso:
--context-exclude "song,lyrics,album,music video,band,movie,trailer"
--context-include "app,software,workspace,update,feature"
Esses filtros se aplicam APENAS a fontes de palavra-chave (fontes de avaliação são obtidas por id de aplicativo e já são inequívocas). Forneça uma lista de exclusão restrita para qualquer tópico cujo nome colida com um sentido comum não relacionado. Ambas as flags são no-ops se omitidas.
Leia a saída
O motor imprime um breve resumo em markdown: um cabeçalho, avisos opcionais de corpus ⚠️, depois
itens ranqueados. Cada item carrega:
- uma tag de fonte (
appstore/playstore/pantip) - classificação
N★(fontes de avaliação) trust 0.00–1.00com um rótulo: ✅ confiável · ⚠️ misto · 🚩 suspeitoflags:os sinais de autenticidade que dispararam (ex.review-burst, near-duplicate)
Um aviso de corpus como "Baixa confiança no corpus (48%)" significa que o engajamento é fortemente manipulado — diga isso claramente em seu breve resumo.
Sintetize o breve resumo
Emita, nesta ordem:
- Manchete de uma linha sobre o que usuários reais estão realmente dizendo este mês.
- O que está funcionando / o que está quebrado — 2–4 marcadores, cada um baseado em
uma avaliação citada. Vincule cada citação como
[fonte](url). - Nota de confiança — se algum item de alto rank estiver sinalizado ou a confiança do corpus estiver baixa, destaque: "N dos principais itens mostram sinais de push coordenado."
- Os recibos — passe a lista ranqueada do motor (ou os 5–8 primeiros).
Regras, mantidas curtas de propósito:
- Nunca invente uma avaliação, classificação ou número. Se o motor não retornou nada, diga.
- Cada citação vem da saída do motor. Cada link é um
[texto](url)real. - Comece com a história de autenticidade — é todo o propósito desta ferramenta.
- Sem travessões longos (em-dashes) na sua própria prosa; use
-.
É isso. O motor é o contrato; este arquivo é enxuto por design.