新闻聚合·去AI头条文案(全链路版)
版本说明:本 skill 整合两大能力,形成「找热点 → 定选题 → 写出稿 → 去过检 → 验标题」一条龙流水线:
- news-aggregator(聚合引擎):只负责「抓取真实素材」——从 28 个信源实时拉取、过滤、深度分析新闻,产出中文简报。它不做创作。
- 公众号头条文案去AI(写作引擎):只负责「把素材写成爆款且无 AI 味」——热点分析、五要素、去 AI 九定律、A/B 测试。它不做抓取。
两者互补即完整闭环:聚合给你选题池,写作把你选中的新闻变成可发布的去 AI 头条文案。
模块 A:新闻聚合(找素材)
何时用:需要先有热点 / 素材;或用户要「抓今天的科技 / 财经 / AI 新闻」「跑份早报」。
A.1 抓取脚本
# 单源
python3 scripts/fetch_news.py --source <source_key> --no-save
# 多源(逗号分隔)
python3 scripts/fetch_news.py --source hackernews,github,wallstreetcn --no-save
# 全源广扫
python3 scripts/fetch_news.py --source all --limit 15 --deep --no-save
# 关键词过滤(自动扩词:"AI" → "AI,LLM,GPT,Claude,Agent,RAG,DeepSeek")
python3 scripts/fetch_news.py --source hackernews --keyword "AI,LLM,GPT" --deep --no-save
fetch_news.py 参数:
| 参数 | 说明 | 默认 |
|---|---|---|
--source |
源 key,逗号分隔,见下表 | all |
--limit |
每源最多条数 | 15 |
--keyword |
逗号分隔关键词过滤 | 无 |
--deep |
下载正文做深度分析 | 关 |
--save |
强制保存到 reports 目录 | 单源自动 |
--outdir |
自定义输出目录 | reports/YYYY-MM-DD/ |
A.2 场景早报(daily_briefing)
预置多源组合,适合一键出「杂志级」简报:
python3 scripts/daily_briefing.py --profile general # HN/36Kr/GitHub/微博/PH/华尔街见闻
python3 scripts/daily_briefing.py --profile finance # 华尔街见闻/36Kr/腾讯
python3 scripts/daily_briefing.py --profile tech # GitHub/HN/Product Hunt
python3 scripts/daily_briefing.py --profile social # 微博/V2EX/腾讯
python3 scripts/daily_briefing.py --profile ai_daily # HF Papers/AI Newsletters
执行脚本后,读取对应 instructions/briefing_<profile>.md 指令文件,再按下方「统一报告模板」生成报告。
A.3 28 源速查表
| 类别 | key | 名称 |
|---|---|---|
| 全球新闻 | hackernews |
Hacker News |
36kr |
36氪 | |
wallstreetcn |
华尔街见闻 | |
tencent |
腾讯新闻 | |
weibo |
微博热搜 | |
v2ex |
V2EX | |
producthunt |
Product Hunt | |
github |
GitHub Trending | |
| AI/Tech | huggingface |
HF Daily Papers |
ai_newsletters |
全部 AI Newsletters(聚合) | |
bensbites |
Ben's Bites | |
interconnects |
Interconnects (Nathan Lambert) | |
oneusefulthing |
One Useful Thing (Ethan Mollick) | |
chinai |
ChinAI (Jeffrey Ding) | |
memia |
Memia | |
aitoroi |
AI to ROI | |
kdnuggets |
KDnuggets | |
| 播客 | podcasts |
全部播客(聚合) |
lexfridman |
Lex Fridman | |
80000hours |
80,000 Hours | |
latentspace |
Latent Space | |
| 随笔 | essays |
全部随笔(聚合) |
paulgraham |
Paul Graham | |
waitbutwhy |
Wait But Why | |
jamesclear |
James Clear | |
farnamstreet |
Farnam Street | |
scottyoung |
Scott Young | |
dankoe |
Dan Koe |
A.4 统一报告模板(聚合产物格式)
读脚本输出 JSON,按此模板格式化每一条,全部译为简体中文:
#### N. [标题(中文翻译)](https://original-url.com)
- **Source**: 源名 | **Time**: 时间 | **Heat**: 🔥 热度值
- **Links**: [Discussion](hn_url) | [GitHub](gh_url) ← 仅数据存在时显示
- **Summary**: 一句话中文摘要。
- **Deep Dive**: 💡 **Insight**: 深度分析(背景、影响、技术价值)。
源差异适配:HN 必带 [Discussion];GitHub 用 🌟 Stars 作热度并加 Lang;HF 用 🔥 +N,写「深度解读」而非仅翻译摘要;微博保留原始热度文本(如「108万」)。
A.5 聚合规则(严守)
- 语言:所有输出简体中文,保留知名英文专有名词(ChatGPT、Python 等)。
- 时间:必填字段,缺失标「Unknown Time」,保留「Real-time / Today / Hot」。
- 反幻觉:只用 JSON 内数据,绝不编造新闻项;用简单 SVO 句,不虚构因果关系。
- 智能扩词:用户说「AI」自动扩为
"AI,LLM,GPT,Claude,Agent,RAG,DeepSeek"。 - Smart Fill:窗口内不足 5 条时,用更大范围高价值项补充,并标 ⚠️。
- 保存:生成后存
reports/YYYY-MM-DD/再展示。
> 聚合只产出「选题池」。下一步把选题池交给模块 B 做选题评估。
模块 B:选题评估(选不追)
何时用:拿到聚合选题池(或用户自带话题)后,逐条判定追不追、用什么角度。
B.1 热点分级表
| 级别 | 定义 | 识别特征 | 打法 | 时效窗口 |
|---|---|---|---|---|
| 平台级热点 | 全民话题,登多平台热榜 | 微博热搜前50、微信热榜、抖音热点同现 | 只做反差角度;24h 内发,错过不发 | 0-24h 黄金 |
| 行业垂直热点 | 圈层事件,未出圈但圈层高热 | 知乎热榜、垂类社群刷屏 | 做专业解读,把大众情绪翻译成专业价值 | 发酵期 3-7 天 |
| 常规节点 | 节日、纪念日、行业固定节点 | 日历可查,无突发 | 提前 3-7 天备稿,节前 48h 发 | 节前一周预热 |
| 突发负面热点 | 灾难、事故、逝者、争议 | 官方讣告、警情通报 | 默认不碰,除非强关联且提供公共价值 | 平台清理 24-72h |
B.2 红线禁区(一票否决)
| 禁区 | 典型翻车 | 后果 |
|---|---|---|
| 灾难/灾情营销 | 台风期间编「酒店集体半价」 | 官媒点名、删文、封号 |
| 消费逝者 | 去世即挂「同款」带货 | 民事赔偿+清朗处置 |
| 同名混淆套利 | 删身份词让读者误认同名名人 | 虚假信息处置 |
| 政治/历史敏感 | 纪念日当营销节点 | 不可逆 |
| 借争议情绪变现 | 借争议带货、站队收割 | 品牌信任慢性损耗 |
红线自查一句话:热点里有没有人在受难、有人刚离世、有公共情绪被消耗——三条占一条,选题毙掉。
B.3 时效节奏表
| 阶段 | 时间窗 | 内容形态 | 适配渠道 |
|---|---|---|---|
| 爆发期 | 0-24h | 短平快、态度鲜明、抢首发 | 头条推送 |
| 发酵期 | 3-7 天 | 深度解读、延伸讨论 | 头条+知乎联动 |
| 长尾期 | 1-4 周 | 案例总结、解决方案 | 头条吃搜索流量 |
| 追平窗口 | 已过 72h | 默认放弃 | — |
B.4 决策树(30 秒出结论)
接到热点 →
1. 踩红线禁区? → 占一条 → 毙(不做利弊计算)
2. 关联度三问:
① 热点与我的领域强关联吗?
② 读者会产生领域新问题吗?
③ 大众媒体给不了的信息,我能给吗?
→ 三问有"否"即毙
3. 热点级别判定 → 平台级24h内发 / 垂直级3-7天 / 节点提前备稿
4. 过模块C五要素流程
5. 模块D去AI检测 + 模块E A/B测试
模块 C:五要素写作(怎么写)
把模块 B 选中并定好角度的新闻,写成头条文案。
C.1 标题(决定打开率)
- 字数推荐 18-25 字,硬上限 64 字,黄金约 20 字。关键词前 7 字内出现人群标签或痛点词。
| 句式 | 模板 | 案例 |
|---|---|---|
| 数字干货型 | 数字+人群+痛点+解法 | 《买菜记住这4个窍门,商贩不敢坑你》 |
| 痛点提问型 | 老现象+为什么+过来人视角 | 《为什么越省钱越穷?看懂底层逻辑》 |
| 反差对比型 | 本以为…没想到 | 《本以为退休很轻松,才发现大多数人都踩了3个大坑》 |
| 悬念揭秘型 | 背后真相/没人说透 | 《超市晚上打折的肉,内行说出真实原因》 |
| 身份共情型 | 群体标签+情感共鸣 | 《80后最煎熬的一年,看完戳中无数人》 |
转发自检:标题被转发朋友圈时,会不会让转发者尴尬?标题要替转发者长脸。
C.2 封面文案(决定点开率另一半)
- 规格 2.35:1(900×500),系统压至 640 宽。叠加关键文字 ≤12 字,与标题不重复、互补——标题讲悬念,封面讲利益。
C.3 前 54 字(转发摘要 · 头条隐形生死线)
- 转发朋友圈时系统自动抓正文前 54 字作摘要。上来就抛核心冲突或金句;不许客套(「大家好」)、不许铺垫(「随着社会的发展」)、不许描写场景。验证:单独复制出来能否独立完成一次「二级转化」。
C.4 摘要(后台设置 · 决定会话列表点开率)
- 手动设置 ≤120 字(约 54 汉字)。做三件事之一:补充(标题没说完的)/ 金句(最扎心的一句)/ 态度(鲜明站队)。不与标题重复热点词。
C.5 正文结构(决定转发率)
- 前 3 行=留人生死线:直击痛点/故事场景/反常识观点,三选一开场。
- 段落短小:3-4 行一段;每 300-500 字立一个小标题。
- 金句截屏段:中段埋 1-2 句可单独截图转发的话。
- 转发钩:结尾埋「替你说话」的内容。
模块 D:去 AI 检测与修复(怎么改)
D.1 运行检测器(detect.py)
# 直接传文本
python3 scripts/detect.py --text "待检测正文..."
# 从文件读取(.md/.txt)
python3 scripts/detect.py --file 草稿.md
# 无参数:跑内置样例
python3 scripts/detect.py
检测维度与 AI 味标记:
| 维度 | 检测内容 | AI味标记 |
|---|---|---|
| 文体骨架 | 评论员五段模板、套话结构 | 骨架指纹 |
| 模板句 | CTA、「近日」开头、「愿…」收尾、「综上所述」 | 公共 n-gram |
| 句式密度 | 排比、对仗、连续设问 | 修辞指纹 |
| 对话载体 | 服务论证的伪对话 | 伪装对话 |
| 金句密度 | 事件回顾段有金句 | 分布异常 |
| 词汇特征 | 高级词汇堆砌、「从而」「由此可见」 | 连接词指纹 |
通过标准:时评文 ai_score < 0.45;其他文体 < 0.33。未达标则走下方修复流程,复检达标再进模块 E。
D.2 九条去 AI 实战定律
- 文体骨架即指纹:评论员五段模板本身是最大指纹,词句级修补四轮 100% 纹丝不动。唯一出口是架构置换——把「评论一篇新闻」改成「记录一个人被一条新闻搞得心神不宁的一下午」。
- 对话是人造器官,必须注废:造的对话若句句服务论证=伪装成对话的宣读。真对话八成是废话——跑题、话收一半、被别的话题打断。对话的「无用度」就是它的过检度。
- 信息全过查证链:所有数据走查证动作——不信→去查→翻判决→按计算器→再按一遍→发布前二次核验。
- 金句按时评税率征收:密度从每 150 字一枚降到每 400 字一枚;事件回顾段零金句;收尾区金句净删除。
- 公共模板句专项排查:「你怎么看?欢迎在评论区聊聊」是全网最高频 CTA,检测器必收。拆 n-gram 保功能(「这事你怎么看,评论区说一声」)单变量一步过检。排查清单:CTA、「近日」开头、「愿…」收尾、「综上所述」、一/二/三编号小标题。
- 不要用错尺子:用户随手发来的检测代码≠生产检测器。按数据方向证据走,不按外部代码走。
- 方向证据法:卡住时对比相邻两版密度,两点定方向——这段问题是「多」不是「少」。
- 回滚纪律:同段卡两轮以上,回滚到历史最优版本,只改一个变量。
- 时评基线与验收协议:时评基线天然高于小说(0.45-0.55≈小说 0.33)。<300 字段连测两轮同向才算实锤;工具名必报;过检段冻结。
D.3 施工流程(八步)
- 架构置换:评论员五段 → 查证日记+群聊体
- 造对话载体:+注废(无用度自检:删掉这句对话,论证缺不缺?缺=伪对话)
- 信息全过查证链:每个数字有查证动作
- 金句降密:+踩噪(回顾段归零)
- 手稿腔上限移植:按 D.4 表格封顶
- 分段送检:冷段冻结,只动热段
- 卡段处置:方向证据 → 单变量回滚试验 → 模板句专项排查
- 定稿协议:两轮读数+工具名+申报归档
修复阶梯:磨句 → 换载体 → 行为化 → 删层 → 回滚换装 → 模板句排查 → 真人末道工序(口述转打)→ 换工具交叉验证 → 换角度重写
D.4 手稿特征移植上限表
| 手稿特征 | 可移植度 | 时评用法 |
|---|---|---|
| 括号补注 | ✅ | 罪名科普收进括号,信息过括号不过宣读 |
| 同词过量重复 | ✅ | 「还是三年」×3 |
| 心理直给连问 | ✅限1组 | 「为什么?为什么…」砍成两问 |
| 议论跑题 | ✅限2处 | 「评论区盘祖宗」/停车位 |
| 口语字对话 | ✅ | 「唉」「哦」「也是」 |
| 的得混用 | ✅ | 上限内保留 |
| 错字/「象」字 | ❌ | 时评信誉是商品 |
| 满篇跑题 | ❌ | 信息密度是商品 |
D.5 失败档案(永不重犯)
| 模式 | 证据 |
|---|---|
| 评论员五段骨架+词句级修补 | 四轮 100% 纹丝不动 |
| 服务论证的伪对话 | 加了群聊数据不降 |
| 200 字塞 6 枚标记词 | 学密度≠学密度,7.2 反升 |
| 按无关代码维度表加词 | 外部 detect≠生产检测器 |
| 模板 CTA 当锚点原样保留 | 分类错误,隐藏到最后才抓到 |
模块 E:A/B 测试与发布(怎么验)
E.1 A/B 测试规则
- 每篇头条起 5-10 个标题,小流量测试或投票后定稿。
- 发布后 1-2 小时是关键传播窗口。
- 诊断口诀:高打开低分享=标题行、内容弱 → 补金句截屏段;低打开高分享=内容行、标题弱 → 只改标题。
E.2 平台适配检查
- 情感/民生/干货类:标题可带情绪词(焦虑/后悔),打开率提升明显。
- 知识干货类:标题带数字,点击率高于纯文字。
- 深度长文(3000 字+):标题可稍长带金句。
- 短情绪文(800-1500 字):标题要「嘴替感」。
端到端总流程
Step1 聚合 :fetch_news.py / daily_briefing.py → 中文选题池(含 URL/热度/摘要)
Step2 选题 :模块B决策树 + 红线 → 逐条"追/不追" + 角度类型(反差/专业/长尾)
Step3 写作 :模块C五要素 → 头条文案草稿(标题/封面/前54字/摘要/正文骨架)
Step4 去AI :detect.py 检测得分 → 模块D九定律修复 → 复检达标(时评<0.45 / 其他<0.33)
Step5 A/B :模块E标题变体 → 定稿交稿
一句话:头条文案是设计一张转发卡片,聚合是找素材,AI 味检测是这张卡片的质检关卡。先聚合,再跑决策树 30 秒,再进五要素,再去 AI 检测,再 A/B,再发布。
输出格式(交稿结构)
0. 热点评级:级别判定 + 时效窗口 + 决策结论(追/不追 + 理由)
0.5 借势角度:角度类型(反差/专业/长尾)+ 关联三问验证
素材来源:聚合产出的 URL / 热度 / 关键事实(注明,便于查证链)
五要素:
- 主标题1条 + 备选3条(含句式标注)
- 封面文案(≤12字)+ 与标题互补关系
- 前54字(独立成段,可作文摘)
- 后台摘要(≤54字,标注功能类型)
去AI检测:
- 全文 AI味得分(detect.py 输出)
- 触发维度(骨架/模板句/句式/对话/金句/词汇)
- 重点修复段落及建议
正文骨架:
- 前3行钩子 + 小标题结构 + 金句截屏段落位 + 转发钩设计
红线(合并)
- 聚合端:反幻觉,只用真实抓取数据,绝不编造新闻项或因果关系。
- 写作端:不用「根治/100%/特效」等违规夸大词;不做标题党;不硬蹭热点;不诱导分享;不踩红线禁区(灾难/逝者/政治敏感)。
依赖安装
pip install -r requirements.txt # requests, beautifulsoup4
# HF Papers / Ben's Bites 深度抓取另需:playwright install chromium
scripts/detect.py 仅用 Python 标准库,无需额外安装。
交互菜单
用户说「如意如意」或要 menu/help 时:读 templates.md → 展示菜单 → 按上方通用工作流执行所选。