## 诊断流程样例
### 场景
每日英语 i+1 阅读任务被定时触发,日志中出现 session,但用户没有收到报告,目标 Markdown 文件也没有出现。
### 输入
| 输入 | 示例 |
| --- | --- |
| session_id | `019e4d32-5a84-7a13-9b1f-a8c274cef662` |
| cwd | `~` |
| message counts | user=1, assistant=0, event=1 |
| report target | `~/Library/Mobile Documents/com~apple~CloudDocs/odyssey/0 收集箱/每日英语i+1阅读/2026-05-22 每日英语i+1阅读.md` |
### 检查步骤
1. 聚合 session 消息:发现 `assistant_message_count=0`,标记为零输出会话。
2. 从 prompt 中解析 Report target。
3. 在本机文件系统检查目标文件是否存在。
4. 如果文件存在,继续检查大小、mtime、标题或日期;如果不存在,直接判为未完成。
5. 写入诊断结果,供 Night Gym 汇总页展示。
### 失败输出示例
```json
{
"session_id": "019e4d32-5a84-7a13-9b1f-a8c274cef662",
"status": "failed",
"signals": ["assistant_message_count_zero", "report_target_missing"],
"target_path": "~/Library/Mobile Documents/com~apple~CloudDocs/odyssey/0 收集箱/每日英语i+1阅读/2026-05-22 每日英语i+1阅读.md",
"suggested_action": "re-run scheduled task or inspect scheduler/runtime startup logs"
}
```
### 成功判定
| 条件 | 判定 |
| --- | --- |
| assistant 输出存在 | 通过 |
| 目标文件存在且非空 | 通过 |
| 文件 mtime 晚于任务开始时间 | 通过 |
| 以上都不满足 | 失败,需要告警 |