with one click
robotaxi-news-tracking
// 全球 Robotaxi、L2/L4 智能驾驶、政策法规的每日新闻追踪与每周简报生成。当用户说"跑今日新闻"、"跑 robotaxi daily"、"生成上周周报"等命令时触发。
// 全球 Robotaxi、L2/L4 智能驾驶、政策法规的每日新闻追踪与每周简报生成。当用户说"跑今日新闻"、"跑 robotaxi daily"、"生成上周周报"等命令时触发。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | robotaxi-news-tracking |
| description | 全球 Robotaxi、L2/L4 智能驾驶、政策法规的每日新闻追踪与每周简报生成。当用户说"跑今日新闻"、"跑 robotaxi daily"、"生成上周周报"等命令时触发。 |
这个 skill 帮 Long(DiDi 智驾产品/分析师)每天追踪全球 Robotaxi 竞品动态,并在每周一生成一份给老板看的简报。核心流程是统一主流程下的 Daily + Weekly:
[x] 的新闻汇总为 OneNote 可粘贴 HTML,并同步发布到网页关键时间逻辑:周报的覆盖范围是上周二 ~ 本周一(共 7 天),以周一作为周报的结尾。所以周一的 daily 跑完后,立刻就可以生成本周周报,不需要等到周二。
| 命令(用户怎么说) | 对应 workflow | 何时跑 |
|---|---|---|
| "跑今日 robotaxi 新闻" / "daily fetch" / "跑今天的新闻" | workflows/daily-fetch.md(默认:自动分两阶段) | 每天上午,实习生手动触发 |
| "只跑国外组" / "daily fetch overseas" | workflows/daily-fetch.md(仅 Phase 1) | 单独补跑某一组时 |
| "只跑国内组" / "daily fetch china" | workflows/daily-fetch.md(仅 Phase 2) | 单独补跑某一组时 |
| "生成本周周报" / "weekly report" / "做这周的简报" | workflows/weekly-report.md | 每周一,勾完三天 daily 之后 |
| "发布今日精选" / "publish daily" | workflows/daily-publish.md | 一般不用手动触发,daily-fetch 自动串接 |
| "发布本周周报到网页" / "publish weekly" | workflows/weekly-publish.md | 一般不用手动触发,weekly-report 自动串接 |
| "更新竞品 list" / "加一家公司到 list" | 直接编辑 competitors.md(Robotaxi Competitor & Keywords) | 任意时间 |
| "学习这次的判断" / "把这条加进 examples" | 直接编辑 important-examples.md | 每次划完重点后 |
默认执行策略(重要):
competitors.md 的国外公司)competitors.md 的国内公司)data/daily/YYYY-MM-DD.md(包含 "## 国外 L4" 和 "## 国内 L4" 等 section),实习生体感是一次跑完、一份文件这个 skill 不依赖单一搜索,用三层策略叠加:
第一层:Python 定向召回(主力)
competitors.md 的公司清单 + ## 搜索关键词第二层:Claude 去重 + 结构化理解
第三层:网页投递(自动)
docs/data/*.json 并驱动网页展示关于 archive/legacy-fetch/sources.md 与 Tier URL:
archive/legacy-fetch/sources.md 仅作历史归档与应急兜底参考,默认不批量抓取为了让你和实习生有合理预期,必须明确以下限制:
降低漏查的措施:
archive/legacy-fetch/sources.md 做应急补漏robotaxi-news/
├── SKILL.md # 你正在看的这个文件
├── DEPLOY.md # GitHub Pages 首次部署指南
├── competitors.md # 竞品 + 关键词维护入口
├── style-guide.md # 写作风格规则(学自 Long 的历史周报)
├── important-examples.md # 重要性判断规则(每次划完重点后追加)
├── workflows/
│ ├── daily-fetch.md # 每日抓取的执行步骤(含 Phase 3 自动发布)
│ ├── weekly-report.md # 周报生成的执行步骤(含步骤 8.5 + 11)
│ ├── daily-publish.md # 每日精选自动发布到网页
│ └── weekly-publish.md # 周报自动发布到网页
├── scripts/
│ └── python_rss_fetch.py # 主流程 Python 召回脚本(读取 competitors.md 产出结构化 JSON)
├── archive/
│ ├── claude_structured_summary.py # 已归档:旧的 API 调用总结脚本(已由 Claude 直接总结替代)
│ └── legacy-fetch/ # 已下线的旧抓取方案归档
│ ├── sources.md # 旧 Tier URL 白名单(仅应急兜底)
│ └── ref/ # 旧 Python/Gemini 抓取参考实现
├── data/
│ ├── daily/ # 每日抓取产物,文件名 YYYY-MM-DD.md
│ └── reports/ # 周报 HTML(YYYY-Wxx.html)+ JSON 副产物(YYYY-Wxx.json)
└── docs/ # GitHub Pages 网站根目录(固定用 /docs,GitHub 原生支持)
├── index.html # 单文件网页(Tailwind CDN + 原生 JS)
└── data/
├── daily.json # 每日精选数据(Claude 自动写入)
└── weekly.json # 周报数据(Claude 自动写入)
包括周六和周日。周末不跑的话,周一补三天工作量会很大,所以养成每天跑一次的习惯。
data/daily/YYYY-MM-DD.md(今天日期)[ ] 改成 [x]important-examples.md提示:如果某天 Claude Code 跑到一半卡住(网络/额度问题),等一会儿说"只跑国内组"或"只跑国外组"补跑缺失的那一半即可。两阶段都写入同一份 daily 文件,不会冲突。
周一是特殊日子:既要跑当天的 daily,又要补勾周末两天没勾的 daily,还要生成周报。
先理清时间逻辑:
无人驾驶行业0407-0413重要新闻周一流程(在常规的"每天跑 daily"之后追加这些步骤):
data/daily/ 目录,找到上周六和上周日两份 dailydata/reports/YYYY-Wxx.html周一总工作量估算:跑 daily(20-30 分钟) + 勾周一 daily(5 分钟) + 补勾周六周日 daily(10 分钟) + 生成周报(3-5 分钟) + OneNote 粘贴微调(10 分钟) = 约 50-65 分钟。
直接编辑 competitors.md。这是一份按组分类的 markdown list + 关键词配置,加一行公司或补充关键词即可。下次 daily-fetch 会自动覆盖。
编辑 style-guide.md。这个文件里写的是从历史周报里学到的规则(比如"日期开头"、"加粗用于事实而非情绪"、"零评论性词汇"等)。改了之后下次 weekly-report 会按新规则生成。
有两种方式:
important-examples.mdimportant-examples.md 添加规则,比如"涉及融资金额超过 5 亿美元的一律重要"当前主流程优先维护 competitors.md 的公司与关键词。archive/legacy-fetch/sources.md 仅在应急补漏时启用。
| 操作 | 工具调用次数 | 预估 input tokens | 预估时长 |
|---|---|---|---|
| daily-fetch(默认两阶段 + 自动发布) | 取决于公司覆盖与新闻量 | 25万-55万 | 15-25 分钟 |
| daily-fetch(仅一组,单独跑) | 取决于公司覆盖与新闻量 | 12万-30 万 | 8-15 分钟 |
| weekly-report(含 JSON 副产物 + 自动发布) | ~8 | 5-10 万 | 3-5 分钟 |
| daily-publish(手动单独跑) | ~2 | <1 万 | <1 分钟 |
| weekly-publish(手动单独跑) | ~2 | <1 万 | <1 分钟 |
关于 Pro 套餐限制:
https://qlqymzhybmr.github.io/robotaxi-news/
docs/data/daily.jsongit add -A && git commit -m "daily YYYY-MM-DD" && git push,约 1-2 分钟后网页更新[x] 汇总结果写入 docs/data/weekly.json,同样 push 后自动更新原因:Claude Code 每次任务都在 .claude/worktrees/<分支名>/ 下创建独立 worktree,所有文件编辑和 git push 均在 worktree 内完成。主目录 D:\Desktop\robotaxi-news 不会自动感知这些变更(Cursor 直接在主目录工作,所以没有这个问题)。
规则:每次 git push 完成后,Claude 必须紧接着执行以下命令同步本地主目录:
git -C "D:\Desktop\robotaxi-news" pull origin main
如果出现本地冲突(Your local changes would be overwritten),说明本地有过时的修改,先丢弃再拉取:
git -C "D:\Desktop\robotaxi-news" restore docs/data/daily.json # 或冲突的具体文件
git -C "D:\Desktop\robotaxi-news" pull origin main
checklist(每次 push 后必做):
git push origin <worktree-branch>:main ✅ 推送成功git -C "D:\Desktop\robotaxi-news" pull origin main ✅ 本地主目录已同步参见 DEPLOY.md。部署只需做一次,之后每次 push 自动发布。
如果有新的需求或发现 bug,直接编辑这个 SKILL.md 文件记录下来。
问题描述:
在执行 Phase 3(daily-publish)时,Claude 直接用 Write 工具覆盖了整个 docs/data/daily.json 文件,导致所有历史数据(10天的新闻记录)全部丢失。同时还遗漏了 JSON 数组的闭合方括号 ],导致 JSON 格式错误,网页无法正常显示。
根本原因:
正确做法(参考 workflows/daily-publish.md 步骤 4-5):
// 1. 读取现有 daily.json
const existingData = require('./docs/data/daily.json');
// 2. 构建今日 entry
const newEntry = { date: "YYYY-MM-DD", items: [...] };
// 3. 插入或替换
// - 如果数组里已有 date == 今天的 entry,替换它
// - 否则,插入到数组开头(保持日期倒序)
const existingIndex = existingData.findIndex(e => e.date === newEntry.date);
if (existingIndex >= 0) {
existingData[existingIndex] = newEntry; // 替换
} else {
existingData.unshift(newEntry); // 插入到开头
}
// 4. 写回文件
fs.writeFileSync('docs/data/daily.json', JSON.stringify(existingData, null, 2));
防范措施:
Read 现有的 docs/data/daily.jsonnode -e "require('./docs/data/daily.json')" 验证 JSON 格式git show HEAD:path/to/file 备份恢复方法(如果再次发生):
# 1. 从上次提交恢复历史数据
git show HEAD~1:docs/data/daily.json > docs/data/daily_backup.json
# 2. 用 Node.js 合并新旧数据
node -e "
const old = require('./docs/data/daily_backup.json');
const newEntry = { /* 今日数据 */ };
const merged = [newEntry, ...old];
require('fs').writeFileSync('docs/data/daily.json', JSON.stringify(merged, null, 2));
"
# 3. 验证并提交
node -e "require('./docs/data/daily.json'); console.log('✅ JSON 格式正确')"
git add docs/data/daily.json && git commit -m "fix: 恢复历史数据" && git push
影响范围:
总结:
对于 docs/data/daily.json 和 docs/data/weekly.json 这类累积型数据文件,永远不要直接 Write 覆盖,必须先 Read → 修改 → Write。这是 daily-publish 和 weekly-publish 流程的核心规则。