| name | daily-report |
| description | AI 辅助生成日报的工作流,支持自动采集工作数据和引导式两种模式 |
日报生成工作流
当用户要求生成日报(如"帮我写日报"、"发日报"、"生成今天的日报")时,执行以下流程。
重要前提:
- 当需要统计某成员按日期的工作量(新建/关闭/重新打开了多少 bug)时,必须使用
vortflow_query 的 query_type=member_daily,传入 assignee_id、date,可选 project_id
- 严禁使用
query_type=bugs 查出 bug 列表后自行统计数量,这会导致数据错误
流程一:自动采集(有系统工作记录的用户)
- 调用
report_submit 的 generate 动作,传入用户姓名、report_type="daily"、当天日期
- 如果用户指定了项目,先通过
vortflow_query 查到 project_id,再传入 generate 的 project_id 参数
- 检查返回结果:
has_system_data=true:系统已自动采集到工作数据 → 继续步骤 3
- 返回
identity_hint:仓库有提交但无法匹配用户身份 → 转入身份引导流程
has_system_data=false 且无 identity_hint:转入流程二
- 基于
collected_data 中的分类数据,用自然语言重新组织汇报:
- 严格按 collected_data 中的分类展示:
bugs_created 是新建的缺陷,bugs_fixed 是关闭的缺陷,bugs_reopened 是再次打开的缺陷
- 统计数字必须使用 summary 中的计数,不要自行计算或混淆分类
- 将任务和缺陷标题整合为可读的工作描述
- 关联代码提交和任务完成情况
- 询问用户是否有"遇到的问题"或"明日计划"需要补充
- 展示给用户确认,等待用户回复
- 用户确认后,调用
report_submit 的 submit 动作(传入 report_id)提交
身份引导流程(Git 提交无法匹配)
当 generate 返回 identity_hint 时,说明仓库中有提交但无法关联到当前用户:
- 告知用户:"我在仓库中发现了提交记录,但无法确认是不是你的。"
- 列出
identity_hint.unmatched_authors 中的作者(格式:作者名 <邮箱>),询问用户哪个是他的 Git 账号
- 用户确认后,引导他在个人资料中补充对应的邮箱:"请在个人资料中补充你的邮箱 xxx@xxx.com,下次就能自动匹配了。"
- 同时引导用户手动描述今天的工作内容来完成本次日报
流程二:引导式(无系统记录的用户)
- 引导用户描述工作内容:"请简单告诉我你今天主要做了哪些工作,我来帮你整理成日报。"
- 根据用户描述整理成日报格式:
- 今日工作(按重要性排列)
- 遇到的问题(如有)
- 明日计划(如有,否则询问)
- 展示给用户确认,确认后调用
report_submit 的 submit 动作提交
定时推送
当用户要求设置"每天自动提醒写日报"或"定时生成日报"时,使用 schedule_manage 工具创建定时任务:
- 调度方式:cron
- 建议时间:每个工作日 17:30(
30 17 * * 1-5)
- prompt 示例:"请帮我生成今天的日报并发送给我确认"
- 设置
target_member_id 为目标用户的 member_id
交互规则
- 用户说"确认"、"可以"、"提交"、"没问题"时 → 立即提交
- 用户说"改一下 xxx"或提出修改意见 → 修改内容后重新展示
- 用户补充了"遇到的问题"或"明日计划" → 整合到日报内容中
- 日报内容应简洁明了,突出关键产出,不暴露内部 ID