# Daily Report

> AI 辅助生成日报的工作流，支持自动采集工作数据和引导式两种模式

- Skill: `openvort/daily-report` (Agent Skill)
- Install (CLI): `npx skillmds@latest add openvort/daily-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openvort/daily-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: openvort (https://skillmd.com/u/openvort)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openvort/daily-report

---


## 日报生成工作流

当用户要求生成日报（如"帮我写日报"、"发日报"、"生成今天的日报"）时，执行以下流程。

**重要前提：**
- 当需要统计某成员按日期的工作量（新建/关闭/重新打开了多少 bug）时，**必须使用** `vortflow_query` 的 `query_type=member_daily`，传入 `assignee_id`、`date`，可选 `project_id`
- **严禁**使用 `query_type=bugs` 查出 bug 列表后自行统计数量，这会导致数据错误

### 流程一：自动采集（有系统工作记录的用户）

1. 调用 `report_submit` 的 `generate` 动作，传入用户姓名、`report_type="daily"`、当天日期
   - 如果用户指定了项目，先通过 `vortflow_query` 查到 project_id，再传入 generate 的 `project_id` 参数
2. 检查返回结果：
   - `has_system_data=true`：系统已自动采集到工作数据 → 继续步骤 3
   - 返回 `identity_hint`：仓库有提交但无法匹配用户身份 → 转入身份引导流程
   - `has_system_data=false` 且无 `identity_hint`：转入流程二
3. 基于 `collected_data` 中的分类数据，用自然语言重新组织汇报：
   - **严格按 collected_data 中的分类展示**：`bugs_created` 是新建的缺陷，`bugs_fixed` 是关闭的缺陷，`bugs_reopened` 是再次打开的缺陷
   - **统计数字必须使用 summary 中的计数**，不要自行计算或混淆分类
   - 将任务和缺陷标题整合为可读的工作描述
   - 关联代码提交和任务完成情况
   - 询问用户是否有"遇到的问题"或"明日计划"需要补充
4. 展示给用户确认，等待用户回复
5. 用户确认后，调用 `report_submit` 的 `submit` 动作（传入 `report_id`）提交

### 身份引导流程（Git 提交无法匹配）

当 `generate` 返回 `identity_hint` 时，说明仓库中有提交但无法关联到当前用户：
1. 告知用户："我在仓库中发现了提交记录，但无法确认是不是你的。"
2. 列出 `identity_hint.unmatched_authors` 中的作者（格式：`作者名 <邮箱>`），询问用户哪个是他的 Git 账号
3. 用户确认后，引导他在个人资料中补充对应的邮箱："请在个人资料中补充你的邮箱 xxx@xxx.com，下次就能自动匹配了。"
4. 同时引导用户手动描述今天的工作内容来完成本次日报

### 流程二：引导式（无系统记录的用户）

1. 引导用户描述工作内容："请简单告诉我你今天主要做了哪些工作，我来帮你整理成日报。"
2. 根据用户描述整理成日报格式：
   - 今日工作（按重要性排列）
   - 遇到的问题（如有）
   - 明日计划（如有，否则询问）
3. 展示给用户确认，确认后调用 `report_submit` 的 `submit` 动作提交

### 定时推送

当用户要求设置"每天自动提醒写日报"或"定时生成日报"时，使用 `schedule_manage` 工具创建定时任务：
- 调度方式：cron
- 建议时间：每个工作日 17:30（`30 17 * * 1-5`）
- prompt 示例："请帮我生成今天的日报并发送给我确认"
- 设置 `target_member_id` 为目标用户的 member_id

### 交互规则

- 用户说"确认"、"可以"、"提交"、"没问题"时 → 立即提交
- 用户说"改一下 xxx"或提出修改意见 → 修改内容后重新展示
- 用户补充了"遇到的问题"或"明日计划" → 整合到日报内容中
- 日报内容应简洁明了，突出关键产出，不暴露内部 ID

