WinNow 是做什么的?
Winnow运行一个无头Python引擎,从评论来源和区域平台拉取过去30天的内容,对每条项目进行真实性评分(爆发性/重复/文本稀薄/匿名检测器),并按真实性加权互动量排名。你的工作是运行引擎,读取其结构化的Markdown输出,并合成一份简短诚实的简报。
引擎负责检索、评分和排名。你负责撰写。不要重新排名、重新评分或编造数据——信任标签是计算出来的,请信任它们。
运行引擎
将SKILL_DIR解析为此SKILL.md所在的目录,然后定位引擎。它位于两个已知位置之一——技能内捆绑(独立安装)或向上两级目录(仓库检出)。检查这两个位置,不要进行开放式搜索:
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
- 默认来源: 如果是应用名称,使用
appstore;如果用户需要区域/泰国信号,使用appstore,pantip;如果主题是包ID(包含点,例如com.whatsapp),使用playstore。 - 应用名称会自动解析为App Store ID。包ID则前往Play Store。
- 一个失效的来源不会导致运行失败;它只会记录到stderr并继续运行。
消除品牌歧义。 当主题是一个也可能有其他含义的词(例如Notion应用 vs. Notion乐队;Apple公司 vs. 苹果水果),并且你正在使用关键词来源(reddit、youtube、x、pantip)时,你知道哪个含义是用户所指的——所以通过以下方式传递它:
--context-exclude "song,lyrics,album,music video,band,movie,trailer"
--context-include "app,software,workspace,update,feature"
这些筛选器仅适用于关键词来源(评论来源通过应用ID获取,本身已经无歧义)。对于任何名称与不相关的常见含义冲突的主题,提供一个严格的排除列表。如果省略这两个标志,则它们不起作用。
读取输出
引擎打印一份Markdown简报:一个标题,可选的⚠️语料库警告,然后是排名项目。每个项目包含:
- 来源标签(
appstore/playstore/pantip) N★评分(评论来源)信任度 0.00–1.00及其标签:✅ 可信 · ⚠️ 混合 · 🚩 可疑标志:触发的真实性信号(例如review-burst, near-duplicate)
类似 "语料库信任度低 (48%)" 的语料库警告意味着互动量被严重操纵——在你的简报中直白地说出来。
合成简报
按以下顺序输出:
- 一行标题,概括真实用户本月实际在说什么。
- 什么有效 / 什么无效 — 2–4个要点,每个都基于引用的评论。每个引用链接为
[来源](url)。 - 信任说明 — 如果任何高排名项目被标记或语料库信任度低,明确指出:“排名靠前的项目中有N个显示协调推送信号。”
- 证据 — 直接通过引擎的排名列表(或前5–8个)。
规则,刻意保持简短:
- 永远不要编造评论、评分或数字。如果引擎未返回任何内容,请如实说明。
- 每个引用都来自引擎输出。每个链接都是真实的
[文本](url)。 - 以真实性故事开头——这是该工具的全部意义所在。
- 在你自己的散文中不要使用长破折号;使用
-。
就是这样。引擎是契约;这个文件故意设计得很薄。