djangopeng/agentic-ai/morning-newspaper-assistant-skill

Claude Code and agent skill by djangopeng/agentic-ai

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

当用户希望生成 AI 早报、运行晨报链路、查看今日资讯摘要,或消息中包含”早报””晨报””今日资讯””新闻摘要”等关键词时触发。

Install

npx vskill@latest install djangopeng/agentic-ai/morning-newspaper-assistant-skill

SKILL.md

Morning Newspaper Assistant Skill

当用户希望运行中文 AI 晨报助手链路、生成 top10_publishable.json、输出静态页面、启动 8510 固定链接,或者排查邮箱提醒与成稿稳定性时,使用本 Skill。

项目依赖

这个 Skill 依赖完整项目仓库,不能只拷贝 SKILL.md 单独使用。

按以下顺序定位项目根目录:

  1. 环境变量 MORNING_NEWSPAPER_ROOT
  2. ~/projects/agentic-ai/morning-newspaper
  3. ~/.openclaw/workspace/morning-newspaper

若这些路径都不存在,应明确告诉用户:当前环境尚未部署完整项目仓库,请先完成部署。

主要入口:

  • <repo_root>/scripts/run_daily_pipeline.py
  • <repo_root>/config/sources.yaml

稳定目标

  1. runtime/top10_publishable.json 稳定为 10 条
  2. runtime/dashboard.html 稳定可生成
  3. 8510 固定链接稳定可用
  4. 右侧”今日待办提醒”优先读取真实邮箱结果,而不是占位 JSON
  5. 如果 IMAP 连通但收不到新邮件,自动继续走 POP3 fallback

稳定工作流

A. 每日稳定主流程

重要:不要直接执行 `run_daily_pipeline.py`。 该脚本是批处理入口,不会生成 LLM 结果文件。必须按以下步骤逐步执行,在每个"LLM 关口"处读取 prompt 文件、生成结果、再继续。

第一阶段:采集与准备
bash
python3 scripts/collect_mailbox.py
python3 scripts/collect_raw.py
python3 scripts/enrich_content.py
python3 scripts/prepare_title_shortlist.py

产出:

  • runtime/collected_raw.json
  • runtime/content_enriched.json
  • runtime/title_candidates.json
  • runtime/title_shortlist_prompt.txt
LLM 关口 1:标题粗筛

读取 runtime/title_shortlist_prompt.txt,按 prompt 要求生成结果,写入 runtime/title_shortlist_result.json。

必须基于本轮 `title_candidates.json` 生成,不能复用旧文件。

然后继续:

bash
python3 scripts/apply_title_shortlist.py
python3 scripts/prepare_draft_input.py

产出:runtime/shortlist.json、runtime/draft_input.json、runtime/draft_prompt.txt

LLM 关口 2:中文成稿

读取 runtime/draft_prompt.txt,按 prompt 要求生成结果,写入 runtime/draft_result.json。

必须基于本轮 `draft_input.json` 生成,不能复用旧文件。

然后继续:

bash
python3 scripts/apply_draft_results.py
python3 scripts/prepare_top10_ranking.py

产出:runtime/drafted_items.json、runtime/top10_ranking_input.json、runtime/top10_ranking_prompt.txt

LLM 关口 3:Top10 精排

读取 runtime/top10_ranking_prompt.txt,按 prompt 要求生成结果,写入 runtime/top10_ranking_result.json。

必须基于本轮 `top10_ranking_input.json` 生成,不能复用旧文件。

然后继续:

bash
python3 scripts/apply_top10_ranking.py
python3 scripts/build_dashboard.py
python3 scripts/check_runtime_status.py

产出:runtime/top10_publishable.json、runtime/dashboard.html

防串轮次机制

每个 apply 脚本会检查结果文件的修改时间是否晚于输入文件。如果结果文件更旧,说明是上一轮遗留的,脚本会报错要求重新生成。遇到此错误时,必须删掉旧文件、重新读取当前 prompt 生成新结果。

B. 只重建页面
bash
python3 scripts/run_daily_pipeline.py --rebuild-dashboard-only
C. 8510 固定链接服务
bash
./scripts/serve_dashboard_8510.sh

这个脚本会:

  • 停掉已有的 8510 服务实例
  • 在 runtime/ 目录下启动 python3 -m http.server 8510 --bind 0.0.0.0

人工或模型回填点

以下 3 个结果文件当前仍可由模型或人工回填:

  • runtime/title_shortlist_result.json
  • runtime/draft_result.json
  • runtime/top10_ranking_result.json

如果缺少这些文件,Skill 不应假装完成,而应明确指出缺的是哪一步。

页面与数据规则

  • Top10 必须完整展示 10 条
  • summary/summary_main 不允许是 [TEST] 标题 这类占位文本
  • Tavily 条目没有发布时间时,页面可以显示 -,不要额外加“待确认”文案
  • Tavily 图标不应退回默认 •
  • HN → 📰
  • GitHub → 🧰
  • 官方模型/研究页 → 🧠
  • 商业/融资新闻 → 💼
  • 其他 Tavily → 🔎
  • 邮箱提醒区如果没有真实提醒,应显示空态;不要保留“邮箱模块已切换为独立区域”这种占位卡片

邮箱规则

  • 真实邮箱提醒写入:runtime/executive_mailbox.json
  • 事件队列写入:runtime/mail_event_queue.json
  • 采集报告写入:runtime/mailbox_collect_report.json
  • 若 IMAP 成功但 alerts/events 都为空,且已开启 pop3_fallback_enabled,则必须继续尝试 POP3

邮箱配置

支持任何提供 IMAP/POP3 服务的邮箱(163、QQ、Gmail、Outlook 等),服务器地址在 config/sources.yaml 的 assistant_mailbox 段配置。

项目根目录 .env 至少需要:

text
IMAP_USER=your_email@example.com
IMAP_PASS=your_imap_authorization_code

注意:IMAP_PASS 填邮箱后台生成的客户端授权码 / 应用专用密码,不是网页登录密码。

页面输出

  • 静态页面:runtime/dashboard.html
  • 固定分享链接:http://<服务器IP>:8510/dashboard.html
  • Streamlit 看板入口:scripts/dashboard_app.py

回复要求

执行完后,至少汇报:

  • 当前链路完成到了哪一步
  • runtime/dashboard.html 是否已更新
  • 8510 页面服务是否正常
  • 采集总数、候选池数量、成稿数量、Top10 数量、邮箱提醒数量、异常来源数量
  • 如果缺少模型回填文件,明确指出缺的是哪一个

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
127
Repository forks
99
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/djangopeng/agentic-ai/morning-newspaper-assistant-skill/badge)](https://verified-skill.com/skills/djangopeng/agentic-ai/morning-newspaper-assistant-skill)

Something wrong with this skill or its page? Tell us.