Issue #29 MVP 已跑通:AI Digest → Podcast → 草稿分发
2026-01-30 11:22 · Zon · Local-first pipeline
把 Issue #29 从“盘点”推进到“可复跑闭环”:并用可视化把模块与缺口标注清楚
你现在已经有一个最小可运行的管道:本机已有的 Weibo AI trending JSON → 统一 schema & SQLite → 每日 Digest.md + 公众号草稿文件 + 小红书发布包 + 3–5 分钟 TTS 播客(本地 RSS)。剩余工作主要集中在:sources 规则补齐、LLM 摘要/成本账本、播客托管与 HTTPS feed、以及更稳的“半自动发布”触点。
TL;DR
- 闭环已跑通(offline):2026-01-30 已成功生成 Digest / 公众号稿件文件 / 小红书发布包 / 播客 mp3 + RSS。
- 中间层已经补齐:统一 schema + SQLite(runs/items/metrics)+ 去重/打分(MVP)+ 渲染器(digest/wechat/rss)。
- 剩余缺口集中在“可维护与可分发”:sources 规则还偏示例;LLM 摘要与 ck/成本账本尚未接入;播客 RSS 还只能本地订阅;多端发布仍以“产出包 + 人工确认”为主。
关于 Issue 链接:当前环境访问 github.com/EOMZON/myObsidian 返回 404(疑似私有/迁移)。本页以本机
assets + system skills + 现有代码与运行产物为“事实来源”。
Run Snapshot (2026-01-30)
本次成功运行(offline)产物与关键指标
| 产物 | 路径 | 说明 |
|---|---|---|
| Digest.md | projects/gh-issue-29-ai-digest-podcast/outputs/digest/2026-01-30/digest.md |
每日 Top 条目 + show notes(MVP) |
| 公众号稿件(文件) | TASKS/CODEXhelpME/01_Agent与工作流/ref/articles/2026-01-30_ai-digest/article_ai-digest.md |
默认只生成文件;可选 --publish-wechat 推草稿箱 |
| 小红书发布包 | projects/gh-issue-29-ai-digest-podcast/outputs/xhs/2026-01-30/content.yaml |
默认不自动发布;留给 Playwright 半自动 |
| 播客音频 | projects/gh-issue-29-ai-digest-podcast/outputs/podcast/2026-01-30/podcast.mp3 |
macOS say + ffmpeg 转 mp3 |
| 播客 RSS(本地) | projects/gh-issue-29-ai-digest-podcast/outputs/podcast/2026-01-30/feed.xml |
默认 http://localhost:8787;需本地起 http.server |
一条命令复跑(offline)
python3 projects/gh-issue-29-ai-digest-podcast/run_mvp.py --offline --date 2026-01-30
本地订阅播客 RSS(MVP)
cd projects/gh-issue-29-ai-digest-podcast/outputs/podcast/2026-01-30python3 -m http.server 8787- 在播客 App/播放器里打开
http://localhost:8787/feed.xml
Architecture (Now)
一张图看懂“从 sources 到产物”的真实路径
projects/gh-issue-29-ai-digest-podcast/run_mvp.py(offline 默认;可选 --enable-network 启用 GitHub/YouTube)。
Status (Done vs Missing)
用“能否每天稳定交付”为标准打分(MVP=可跑;V1=可维护;V2=可分发)
Done (可复跑)
projects/gh-issue-29-ai-digest-podcast/pipeline/:collect → dedupe/score → sqlite → render- 默认 offline:不依赖外网也能每天交付(基于本机已有 JSON)
- WeChat/XHS 保持“半自动”:只产出文件/包
Missing (可维护/可分发)
- 把 sources 从“示例”变成“规则”:YouTube channels、GitHub queries、关键词库
- LLM 摘要 + ck/成本账本:让 Digest 与播客更像“栏目化内容”
- 托管与 HTTPS feed:让播客可在任何 App 订阅
Skills Map (System → Modules)
把“系统级 skills”放回到管道图里:你已经具备哪些积木?
Next Actions
从“能跑”走向“稳定 + 可分发”,按收益/风险排序
1) 补齐 Sources(当天收益最高)
- 把 YouTube channels 与 GitHub queries 填进
config/sources.yaml - 再跑一次:
--enable-network(可与 offline 对照)
2) LLM 摘要 + ck 账本(让内容更像栏目)
- 摘要:每条 1 句“发生了什么 + 为什么重要”
- 记账:tokens / cost / failures / latency
3) 托管与 HTTPS feed(让播客可订阅)
- 上传 mp3 + feed.xml 到 R2/S3
- 把
PODCAST_BASE_URL改成公网域名
One next action(建议现在就做):补齐 projects/gh-issue-29-ai-digest-podcast/config/sources.yaml
里的 YouTube channels,并跑一次 python3 projects/gh-issue-29-ai-digest-podcast/run_mvp.py --enable-network --date 2026-01-30。
Best Minds (Why this structure works)
用“谁最懂这件事”的视角校验下一步不要走偏
Martin Kleppmann
先把内容当成数据系统:统一 schema、可追溯、可重跑(idempotent),再谈分发。SQLite 足够做 MVP 与复盘。
Charity Majors
自动化的关键在“坏了能否 1 分钟定位”:每一步要有 metrics、失败原因要能落盘;发布必须有开关与审阅点。
Podcast Producer
播客不是“摘要朗读”,而是“栏目化脚本 + 节奏控制 + show notes”:先固定结构,再迭代语言与停顿。