# 每日阅读推荐缺少稳定的本地信号源采集层
## Skill Gap Example: Daily Reading Local Signals
### Before
每日阅读推荐直接在生成阶段临时找上下文:
| 信号类型 | 当前表现 | 问题 |
|---|---|---|
| 昨日工作 | 能从片段中写出部分总结 | 来源不稳定,不知道是否漏了关键工作 |
| Odyssey 信息流 | 能引用到摘要 | 没有统一 JSON,难以复用或比较 |
| Anki/词汇状态 | prompt 里有用户画像 | 缺少当天真实新词/已掌握概念快照 |
| 浏览器历史 | 明确未使用 | 只知道“没找到入口”,没有后续排障路径 |
### After
新增 `daily-reading-local-signals` skill 后,推荐流程先运行:
```bash
python ~/.codex/skills/daily-reading-local-signals/scripts/collect_signals.py \
--date 2026-05-20 \
--out out/daily_reading_signals_2026-05-20.json
```
输出示意:
```json
{
"target_date": "2026-05-20",
"signals": [
{
"source": "odyssey",
"date": "2026-05-19",
"title": "AI coding agents and eval harnesses",
"confidence": 0.86,
"evidence_path": "~/Library/Mobile Documents/.../Odyssey/..."
},
{
"source": "workspace_recent_files",
"date": "2026-05-19",
"title": "Intent recognition skill eval: append vs isolated",
"confidence": 0.78,
"evidence_path": "local session summary"
}
],
"missing_sources": [
{
"source": "browser_history",
"status": "not_found",
"next_check": "discover Chrome/Safari/Arc history SQLite or configured export path"
}
]
}
```
推荐器再基于这个文件选文章。成功信号是:每天的 `Context used` 能追溯到结构化来源,缺失源可解释且可修;失败信号是:推荐仍只靠 prompt 里的静态用户画像,或出现“本次未发现入口”但没有下一步落地路径。