周报技能 - xl-weekly-report-email
一个通用的周报收集和邮件推送技能,安装后配置邮箱即可使用。
触发方式
在对话中说"写周报"即可触发周报生成流程。
配置邮箱时说"配置周报邮箱"。
重要:执行此技能时必须严格遵循以下步骤,不得省略或跳过任何步骤!
最关键的规则:
每次只问一个问题,等用户回复后再问下一个
绝对禁止一次性抛出所有问题
绝对禁止在没有用户确认的情况下自动发送邮件!
必须等待用户明确确认后才能发送邮件!
任何用户回复的内容都应该被记录,除非用户明确回复"无"、"空"、"不需要"、"跳过"等否定词
即使内容很短(如"2"、"无内容"等非否定词),也应该记录
即使内容不按格式写,也应该直接展示,不当作空值处理
完整工作流程
第零步:检查配置
首次使用需要配置邮箱参数和报告参数。
发送"配置周报邮箱"命令会自动引导你完成配置。
配置内容包括:
SMTP服务器:选择预设(腾讯企业邮箱、阿里企业邮箱、Gmail 等)或自定义
SMTP端口:通常是465(SSL)或587(TLS)
邮箱账号:你的邮箱地址
邮箱密码:邮箱登录密码或授权码
发件人:发件人邮箱地址(通常与账号相同)
组织/部门名称(可选):如"XX公司",会显示在邮件标题开头
你的姓名:如"张三"
你的职位:如"后端工程师"
周报收件人:接收周报的邮箱地址
周报抄送人(可选):抄送周报的邮箱地址
注意:
组织/部门名称(company)字段可选,如果配置了会显示在邮件标题开头;如果不配置或为空,邮件标题中不会显示组织/部门名称和前面的"-"。
默认抄送人(cc)字段可选,如果配置了每次发送时都会抄送这些邮箱;如果不配置,则不抄送(除非发送时额外添加)。
邮箱配置会自动保存到 .env 文件(包含敏感信息,不会被发布到 clawhub)。
报告配置会保存到 config.json 文件。
第一步:计算并展示日期信息
必须先执行这一步!
自动计算并展示以下信息(所有时间必须是东八区):
周数 = ISO周数(周五/周六/周日不减1,周四/周四之前减1)
截止日期 = 下周周四(YYYYMMDD 格式)
时间范围 = 本周四 到 下周三(中文格式:YYYY年MM月DD日)
示例输出(如果今天是周五):
周报日期信息:
- 周数:13
- 截止日期:20260402
- 时间范围:2026年3月26日 至 2026年4月1日
警告:在计算并展示日期信息之前,不要询问任何周报内容!
第二步:逐项收集周报内容
关键规则:必须一个一个询问!禁止一次性抛出所有问题!
每次只问一个问题,等用户回复后再问下一个。绝对不能把所有问题一次性列出来!
第一部分:遗留问题/阻碍因素跟进
执行顺序:
先给描述
再给格式提示
最后给示例
等用户回复
描述:
列出上周遗留问题或当前最大的阻碍因素的跟进情况。
格式:
[问题描述][当前状态]:进展详情
重要:
必须使用方括号 [] 包裹问题描述和当前状态,否则没有样式!
示例:
- [测试环境资源不足][已解决]:已申请新服务器,问题解决,进度已恢复。
- [数据接口延迟问题][跟进中]:已联系数据负责人,承诺本周五前修复,目前正在联调。
状态样式说明:
已解决 或 Done → 绿色样式
其他所有状态 → 蓝色样式
格式提示与用户坚持的规则(重要!):
用户输入内容不按格式时的处理流程:
情况1:用户第一次输入不按格式(如"111"、"完成开发任务"等)
AI 只提示一次:"建议格式是 [问题描述][当前状态]:进展详情,您确定要这样写吗?"
如果用户回复"确定"、"是的"、"就这么写"等确认词 → 直接记录用户之前输入的内容("111")
如果用户回复"好的"、"明白了"等 → 重新询问用户第一部分内容
如果用户继续输入新的内容(不是确认词) → 直接记录用户新输入的内容
情况2:用户坚持使用不按格式的内容
任何用户输入的内容,都应该被记录,除非用户明确回复"无"、"空"、"不需要"、"跳过"等否定词
即使内容很短(如"111"、"222"),也应该记录
即使内容不按格式写,也应该直接展示,用普通样式展示
记住:
格式提示只提示一次,不要重复提示
用户输入任何内容(除了明确的否定词),都要记录
不要问"您确定要这样写吗?"多次
关键规则:
任何用户回复的内容都应该被记录,除非用户明确回复"无"、"空"、"不需要"、"跳过"等否定词
即使内容很短(如"2"、"123"),也应该记录
即使内容不按格式写,也应该直接展示,不当作空值处理
禁止:
不要问"第一部分是什么",直接按照"描述→格式→示例"的顺序给用户!
也不要继续问第二部分,等用户回复第一部分后再问!
第二部分:本周具体产出
执行顺序:
先给描述
再给格式提示
最后给示例
等用户回复
描述:
列出本周具体的产出,建议按项目或模块分类。
格式:
[项目 xxx] 子项目名 + 项目状态 (Done/Doing 进度 X%/ Delay/ Suspend) + 进度详情/阶段成果/阻塞原因
重要:
必须使用方括号 [] 包裹项目名,状态必须用圆括号 () 包裹,否则没有样式!
示例:
- [项目 A] 画像标签开发 (Doing 80%) 完成了用户活跃度标签的逻辑重构,性能提升 30%。
正在与业务方进行数据验收。
- [数据治理] 人员数据质量优化 (Done) 完成了历史脏数据的清洗工作,并补充了缺失的日志数据。
- [项目 B] 人员表开发(Doing 80%/Delay) 完成了 xxxx 的开发
需求变动导致 delay 状态
样式说明:
Done → 绿色样式
Delay → 橙色样式
Suspend → 灰色样式
Doing 进度X% 或其他状态 → 蓝色样式
组合状态(如 Doing 80%/Delay)会拆分成多个状态标签,分别显示对应样式
格式提示与用户坚持的规则(重要!):
用户输入内容不按格式时的处理流程:
情况1:用户第一次输入不按格式(如"222"、"完成开发任务"等)
AI 只提示一次:"建议格式是 [项目名] 任务名 (状态),您确定要这样写吗?"
如果用户回复"确定"、"是的"、"就这么写"等确认词 → 直接记录用户之前输入的内容("222")
如果用户回复"好的"、"明白了"等 → 重新询问用户第二部分内容
如果用户继续输入新的内容(不是确认词) → 直接记录用户新输入的内容
情况2:用户坚持使用不按格式的内容
任何用户输入的内容,都应该被记录,除非用户明确回复"无"、"空"、"不需要"、"跳过"等否定词
即使内容很短(如"222"、"123"),也应该记录
即使内容不按格式写,也应该直接展示,用普通样式展示
记住:
格式提示只提示一次,不要重复提示
用户输入任何内容(除了明确的否定词),都要记录
不要问"您确定要这样写吗?"多次
关键规则:
任何用户