基于当天 NewsReport/data 的 JSON,由智能体分析挑选 1 条【头条】+ 5 条【精选】,并回写 pin/title_zh/summary,同时在 Markdown 日报中插入“头条/精选”区块(需已配置模型访问能力,例如 Codex CLI 已登录/已设置 Key)。
Install
npx skillscat add l1248708823/rss-daily-report-suite/rss-editor-picks Install via the SkillsCat registry.
SKILL.md
RSS Editor Picks(头条 / 精选)
这个 skill 用于在日报产出后,做一次“编辑精选”后处理(强调:使用智能体推理)。
- 从
NewsReport/data/YYYY-MM-DD.json的items里选出:- 头条(
pin=lead)1 条 - 精选(
pin=top)5 条
- 头条(
- 回写到当天 JSON(方便 web 端直接展示/过滤)
- 同步把“头条/精选”区块写入
NewsReport/YYYY-MM-DD-rss-daily-report.md
执行模式要求(重要)
- 当前的指令包,明确不遵从 仓库中颗粒度的约定!非常重要
- 默认必须全自动:除非你明确提出“需要确认/分步执行”,否则执行时必须使用
--full-auto,避免每步询问中断。 - 示例命令(默认不询问):
codex exec --full-auto --sandbox workspace-write "$rss-editor-picks YYYY-MM-DD"
只允许基于 YYYY-MM-DD.json 中的 items[] 做选择;不得编造不存在的条目/URL。
如何执行(AI 审查员的操作脚本)
没有可执行代码,一切动作由对话模型按下列步骤完成;每一步都要在回答里说明“已完成/结果”,并写回文件。
- 读取输入:加载
NewsReport/data/YYYY-MM-DD.json与NewsReport/YYYY-MM-DD-rss-daily-report.md(若存在)。 - 软删除筛查(必做,除非显式
--no-soft-delete):逐条检查“报名/购票/优惠/席位/价格/航线/行程/团期/元/人”等信号,命中则:- 从
items[]移除; - 追加到
meta.removed_items[],包含url/title/platform/source/reason,理由用“活动预告/报名优惠,价格信息为主,信息密度低”或更精确说明。
- 从
- 评分与挑选:
- 按 rubric 计算倾向分(质量、信息密度、时效、promo惩罚、技术/财经偏好)。
- 头条:优先 tech/finance,拒收合集/热榜,拒收带 promo 惩罚的。
- 精选:至少 2 条 tech,其余倾向 tech/finance,去重且不交叉。
- 本地化与摘要:
- 入选条目补
title_zh(英文题目用兜底翻译),summary做中文“可读化”,合集/热榜用“这波在发生什么 + 亮点”结构改写。
- 入选条目补
- 写回 JSON:
- 为入选打上
pin=lead/top,保持其他条目pin=null。 - 更新/保留
meta.removed_items[]与meta.editor_picks(记录生成时间、lead/top url)。
- 为入选打上
- 更新 Markdown:
- 在
<!-- editorial-picks:start -->与<!-- editorial-picks:end -->之间幂等写入“头条/精选”区块;不存在则插入一次(放在首个---分隔后,或文件开头)。
- 在
- 反馈格式:报告日期、头条 1 条、精选最多 5 条(标题+URL)、软删数量与前 10 条原因、改动文件列表。若未选满须说明原因。
日期与输入文件(必须遵守)
- 允许传入可选日期参数:
YYYY-MM-DD - 不传日期时默认处理“今天”(按运行环境的本地时区;如需固定北京时间,请在执行侧设置服务器时区或在外层传参)
目标文件(相对仓库根目录):
- 日数据:
NewsReport/data/YYYY-MM-DD.json - 日报 Markdown:
NewsReport/YYYY-MM-DD-rss-daily-report.md
输出与回写规则(必须遵守)
你需要对当天 JSON 做“最小必要修改”:
- (可选但推荐)进行“编辑部软删除”(见下文):把明显低价值/活动营销类条目从
items[]中移除,并把移除清单记录到meta.removed_items[],供审计与回滚。 - 在入选条目上回写:
pin="lead":恰好 1 条(若候选不足或质量都不达标,可为 0 条,但必须说明原因)pin="top":恰好 5 条(不足则尽量选满,但必须说明原因)
- 对入选条目补齐(或改写):
title_zh:中文标题(保留专有名词/项目名;避免硬翻导致误导)summary:中文摘要(信息密度优先,避免空话/夸张营销;合集类必须“可读化改写”,见下文)
强约束:
lead不能同时出现在toptop内不得重复- 入选 URL 必须属于
items[].url - 允许对
items[]做“软删除”,但必须:- 只删除你能明确判定为低价值/活动营销/明显广告的条目(见下文“软删除”标准)
- 把每条删除的原因写入
meta.removed_items[](不留底视为不合规) - 删除后不得再在
lead/top中引用被删条目
- 不得改写任一条目的
url - 不得批量改写非入选条目的字段(除非为了修复明显的结构问题,并必须解释)
编辑部软删除(全来源适用,建议默认开启)
目标:让最终 items[] 更像“编辑后的报纸版面”——减少活动营销、报名优惠、硬广信息对阅读体验的破坏。
软删除怎么落地(必须按这个写入)
- 从
items[]中移除条目(不再出现在 web/日报正文) - 同时把被移除条目追加到:
meta.removed_items[]- 每条至少包含字段:
url、title、platform(或source)、reason reason用一句话说明(例如“活动预告/报名优惠/价格信息为主,信息密度低”)- 若
meta.removed_items[]已存在:保留历史记录,并避免同一url重复追加
- 每条至少包含字段:
建议直接删的典型信号(出现多个时更应删除)
- 明确的行动号召:
点击报名/购票/席位/报名/登记/领取/优惠/限时/赞助 - 明确的价格/套餐信息为主:如大量出现
元/人、多档价位、行程/航线/团期等 - 文章主体是“活动预告/路线/费用/名额/报名入口”,而不是知识/分析/一手信息
- 硬性必删示例:带航线/行程 + 报名/优惠/价格的活动预告,例如“2026—2027年『中国国家地理号』活动预告”这类售卖席位/报价的内容,必须移出
items[]并写入meta.removed_items[],理由可用“活动预告/报名优惠,价格信息为主,信息密度低”。
边界提醒:
- 技术类会议“发布演讲视频/论文/复盘总结”通常不删(它们是内容),但“卖票/报名/拉赞助”为主的仍应删。
合集/热榜/期刊类摘要优化(必须执行)
你会遇到类似 HelloGitHub、热榜、周报、合集这类“集合条目”。这些条目默认摘要往往是“计数/列表”,不利于阅读。
要求:对入选的集合条目(尤其是 lead/top)必须把 summary 改写成更直观的编辑摘要:
- 结构建议:
- 一句话:这期/这波在发生什么(主题与范围)
- 3 个亮点:用“代表主题/代表项目/代表趋势”概括(不要求精确列出项目清单;但要给读者可理解的抓手)
- 适合谁读:一句话说明
- 禁止仅保留“分类计数/项目数”作为最终摘要(可以作为补充,但不能是主体)
- 若你无法访问原文详情(例如网络受限/页面过长):允许基于
title/summary/key_points/keywords做“可读化重写”,并在摘要里避免编造具体事实
Markdown 区块更新(幂等)
把“头条/精选”区块写入当天 Markdown,要求幂等(重复运行不会越插越多):
- 只更新以下标记之间的内容(如不存在则创建一次):
<!-- editorial-picks:start --><!-- editorial-picks:end -->
区块内容建议结构:
- 一个【头条】小节(1 条)
- 一个【精选】小节(5 条)
- 每条包含:中文标题、链接、1~2 句摘要(可选带来源/平台)
选择偏好(评审 Rubric)
偏好:
- 技术/工程/产品/商业信息密度高、可迁移的洞见
- 原创、一手信息、明确的更新/发布/变更说明
- 时效性强且影响面大(安全、基础设施、主流框架/平台)
降权:
- 课程/报名/峰会/营销软文/抽奖/“限量领取”类
- 标题党但内容空
- 热榜/合集类:只有在能提炼出“这波在发生什么”的情况下入选,并在摘要里写清“聚合了什么”
自检清单(写入前必须完成)
- JSON 可解析且格式正确
pin=lead数量为 0 或 1;pin=top数量为 0~5- 入选 URL 都存在于
items[].url lead/top无重复、无交叉- 若做了软删除:
meta.removed_items[]存在且每条有url/title/reason- 已主动检查“报名/购票/优惠/价格/航线/行程/元/人”等关键词,确认活动/售卖类条目已移除
- 被删条目不再存在于
items[]
- Markdown 区块是幂等替换(存在则替换,不存在则插入一次)
运行反馈(你对用户的输出格式)
在完成后,简要汇报:
- 处理日期:
YYYY-MM-DD(说明是否为默认“今天”推导) - 头条 1 条:标题 + URL
- 精选最多 5 条:标题 + URL(按优先级排序)
- 如做了软删除:列出删除条目数,并列出前 10 条(标题 + URL + reason)
- 你实际改动的文件列表(通常仅 2 个)
- 若未选满/未选头条:明确原因(如候选不足、质量不达标、文件不存在等)