本报采编内幕
特别专稿
HOW THIS PAPER IS MADE

每日情报

特稿 · 本报如何制成
THE MAKING OF AN ISSUE
AI 编辑部 · 编发 特刊 · 采编流程 ← 返回今日情报
编者按EDITOR'S NOTE
本报每晚由一位无人值守的 AI 编辑部自动采编——不设人工值夜,只设规则与闸门。从定时唤起到成稿见报,全程十步,逐一记录于本期特稿,供关心“这份报纸从哪里来”的读者查阅。
本期流程一览 · Pipeline at a Glance
🎬 长视频 Video YouTube yt-dlp → 逐字稿全文代读 full-transcript deep read 📰 文摘 Letters Newsletters · RSS 订阅长文 · 逐篇读完 long-form essays, read in full 💬 社区 Forums Hacker News 热帖 + 评论区一并读 threads incl. comments 📱 社媒 Social X · 小红书 真浏览器扫读(可选增补) live-browser lanes, optional AI 编辑部 · Editorial Team 📈 值得读 Worth Your Time 取舍讨论 · Triage 📉 不值得 Cut, With Reasons 入选证据 Keep Evidence 淘汰证据 Cut Evidence 主编成稿 Editor-in-Chief 头版 · 今日行动 · 社评 ✒ DeepSeek 中文润色 deepseek-chat · native-zh rewrite 成稿 Draft Issue 质量把关 · Quality Gates 多样性闸门 ≥2 平台信源 · hard gate 质量自检 pass→prod · fail→hold 中文润色 DeepSeek native-zh pass 发布决策 Publisher (CI) 达标自动上线 · 否则留预览 决定 Decision 🗞 上线 · Publish mrqb.space · Telegram 头版长图 ⚠ 未达标 · Held 存预览 + Telegram 呈报 held for human promote 编辑部一览 Team Overview: 编辑组扫读五路信源并取舍 → 主编提炼头版与行动 → 把关组守闸门并润色 → 发布决策定 prod 或预览
图:本报采编流程(中英对照)· Editorial pipeline, bilingual

定时触发

launchd · 20:57 每晚

1定时触发

macOS 后台任务调度器 launchd每晚 20:57 唤醒一个名为 com.zen.daily-digest 的作业,运行脚本 bin/run-digest.sh选在这个时间点,是为了让 Zen 当晚就能读到今日情报,并有机会在睡前试一试“今日上手”里的那件小事。
为何这样设计用系统级定时任务而非人工触发,保证即使无人操作,每天也有一期见报。

唤起编辑部

claude -p · headless

2唤起编辑部

run-digest.sh 以无头模式(claude -p --dangerously-skip-permissions)唤起 Claude Code,交给它 /daily-digest这份技能说明就是本报的“AI 编辑部”:没有编辑室,没有值班人,只有一份写清楚流程的技能文件,和一次性运行的无头进程。
为何这样设计无头运行意味着当晚很可能连不上浏览器(小红书/X 需要登录态的 Chrome 会话),所以编辑部必须首先保证“常驻无头”的两条带能扫到东西——见下一版。

扫读两带

headless × 2 ・ enrichment × 2

3扫读 · 常驻无头双带

YouTube(9 频道)
通过 RSS 抓取近 48 小时更新,长视频用 yt-dlp取全文转录,由编辑部代读——Zen 不必自己看完每一条长视频。
frontier: Karpathy / Anthropic / OpenAI / Dwarkesh builder: AI Engineer / Latent Space pm-strategy: Lenny's / No Priors curator: Zara Zhang
文摘 / Digest(5 源)
全部走 RSS / 前端页面,headless 可达,不依赖任何登录态——正是这条带的存在,让 9 点无浏览器的自动跑也能凑齐“≥2 来源平台”,几乎不必触发 partial。
Hacker News (front page) ・ Import AI ・ TLDR AI ・ Latent Space(newsletter)・ Simon Willison
为何这样设计YouTube + 文摘两条带都不需要浏览器登录态,是“打不开 Chrome 也能成报”的底线保证。

4扫读 · 选配增强带

X(选配增强)
已登录的 x.com 时间线 + 逐账号页面,用 get_page_text读取推文正文与互动数。仅当 Chrome/claude-in-chrome 可用时才尝试;无头跑通常会跳过。
karpathy ・ simonw ・ swyx ・ bcherny ・ zarazhangrui ・ AnthropicAI ・ OpenAI
小红书 / XHS(选配增强)
同样依赖已登录的浏览器会话,一旦不可达即跳过,不影响成稿——只要 YouTube + 文摘两条底线带已经达标。
⚠ 这两条带明确标注为“可选增强”:能扫到就更丰富,扫不到不拦发布。

提炼成稿

择要 · 去重 · 加料

5提炼

编辑部对当晚扫到的所有条目择要,跨平台去重(一事一处,同一件事在多条带出现时择强合一),归纳出“今日可行动”的具体动作项,并写一段本报社评。

6加料

在正文之外再加四样:头版要图;“今日上手”——一件今晚就能试的具体小事;编辑部 OTA 自我升级(今日所学 + 新增能力);以及全字段的 _en双语版本,供中英切换按钮读取。
为何这样设计本报每天真正“学习”的不是读者,而是 Zen 的 Claude Code:每期 OTA 先读 ota-ledger.md 台账,挑一个建立在昨日之上、不重复的能力落地实现,再追加回台账——能力逐日复利。选题也偏向 AI 的应用 / GTM / 产品面,因为那正是能直接迁进 Zen 工作的部分。

7成稿

编辑部把当晚的所有内容写成一份 digests/<date>.json,并把这一天追加进 digests/index.json索引——首页正是靠这份索引找到“最新一期”和“往期合订本”里的每一天。
◆ 多样性闸门bin/validate-digest.py
发布前,bin/publish.sh 会先跑 bin/validate-digest.py做“来源多样性校验”——防止一期报纸只靠单一来源撑起门面。
门槛要求
来源平台数≥ 2 个不同 platform(各至少 1 条)
总条目数≥ 4 条
  • 达标 → 正常发布,闸门放行。
  • 不达标但真的只够 1 个平台(例如纯无头跑,YouTube 都没扫到东西)→ 顶层字段 "partial": true → 首页顶部带出“⚠ 本期部分来源缺席(无头运行),稍后补全”的横幅照常发出,留待下一次交互式运行补全。
  • 既不达标、又没设 partial → 发布被直接拦截,退出码 1。

发布晋级

preview → 人工晋级

9预览发布

闸门放行后,publish.sh 执行 git commit,随后 vercel deploy——注意这是 PREVIEW部署,从不直接碰生产环境。

10人工晋级

次日,Zen 审阅这份预览,确认无误后手动执行 vercel --prod,报纸才真正上线 mrqb.space。全流程唯一的人工步骤,就是这最后一次“点头”。
为何这样设计AI 编辑部可以自动写稿、自动校验、自动发预览,但“公开上线”这一下,永远留给人来按。