AI 写周报——工程师最爱的效率工具
AI 写周报——工程师最爱的效率工具
适读人群:需要写周报的工程师 | 阅读时长:约12分钟 | 核心价值:一套从 git log 到周报的完整工作流,不是让 AI 替你写,是让 AI 帮你整理
每个周五下午,我的日历里有一个15分钟的阻塞事件,叫"写周报"。
以前这15分钟经常变成30分钟甚至1小时。因为我要回忆这一周做了什么,翻 Jira、翻聊天记录、翻 git 提交,东拼西凑出一篇。有时候想不起来某个改动是什么背景,写出来的东西自己都觉得语焉不详。
更糟糕的是,有些人周报写得花哨,实际上什么都没干;有些人干了很多,但写出来三行字。这种不公平我也碰到过——干了一堆事,周报没法体现,绩效周期一看,好像这个人"不太活跃"。
我开始用 AI 辅助写周报,不是让 AI 替我写,而是用 AI 帮我做信息整理。
先说一个错误的用法
"帮我写一份这周的工作周报,内容包括:完成了用户模块开发,修复了几个 Bug,参加了技术分会。"
这样写出来的周报没有价值。
不是因为 AI 写得不好,而是因为输入就是废话,输出也是废话。这种周报任何人都能在10秒内写出来,不需要 AI。
这种周报里没有:你解决了什么具体问题、这周的进度是快是慢、遇到了什么技术难点、下周要做什么、有没有需要协调的事情。
读你周报的人(你的 Leader 或者 PM)想看的就是这些,而不是"完成了用户模块开发"这种空话。
正确的用法是:先收集素材,再让 AI 帮你整理。
素材收集:三个来源
来源一:git log
这是最客观的记录。你这周真正写了什么代码,commit 信息全都在:
# 查看这周的 commit(假设今天是周五)
git log --since="last monday" --until="now" --author="你的名字" --oneline
# 如果需要更详细的信息
git log --since="last monday" --until="now" --author="你的名字" \
--pretty=format:"%ad | %s" --date=short输出示例:
2026-04-21 | feat: 添加用户手机号修改接口,增加验证码校验流程
2026-04-21 | fix: 修复多租户场景下 Redis 缓存 key 冲突问题
2026-04-22 | refactor: 优化订单查询接口,引入分页游标替代 offset 分页
2026-04-22 | fix: 修复订单状态机在并发场景下的幂等问题
2026-04-23 | docs: 更新支付模块接口文档
2026-04-23 | test: 补充用户模块的集成测试
2026-04-24 | feat: 完成支付回调处理逻辑,接入微信支付 v3 API
2026-04-25 | chore: 升级 Spring Boot 版本到 3.2.5,修复 CVE-2024-22257这8条 commit,每一条背后都有故事。
来源二:Jira/任务管理系统
把这周关闭的 Ticket 和进行中的 Ticket 截图或者导出一份。包含:
- Ticket 编号和标题
- 当前状态(完成/进行中/阻塞)
- 如果被阻塞,阻塞原因
来源三:重要会议和沟通记录
这周有哪些重要的技术讨论、设计评审、跨团队协调?简单记几个关键点就行,不需要完整会议纪要。
完整工作流
收集好素材之后,我的工作流是这样的:
第一步:整理原始素材
我会把上面三个来源的内容整理成一个文本,大概长这样:
=== Git Commits(本周)===
2026-04-21 添加用户手机号修改接口,增加验证码校验流程
2026-04-21 修复多租户场景下 Redis 缓存 key 冲突问题(线上出过这个 Bug,之前埋的坑今天填掉了)
2026-04-22 优化订单查询接口,引入分页游标替代 offset 分页(原来大数据量下超时,现在稳了)
2026-04-22 修复订单状态机在并发场景下的幂等问题(压测发现的,修了两天)
2026-04-23 更新支付模块接口文档
2026-04-23 补充用户模块的集成测试
2026-04-24 完成支付回调处理逻辑,接入微信支付 v3 API
2026-04-25 升级 Spring Boot 版本到 3.2.5,修复安全漏洞
=== Jira Tickets ===
USER-234:用户手机号修改功能 → 已完成
ORDER-189:订单列表查询性能优化 → 已完成
PAY-56:微信支付接入 → 进行中,回调处理完成,测试中
ORDER-201:订单状态异常排查 → 已完成
=== 重要事项 ===
- 周二和支付团队对接了微信支付 v3 的回调格式,确认了签名验证方案
- 周三参加了架构评审,讨论了消息队列选型(最终决定维持 RabbitMQ,不迁移 Kafka)
- 下周需要推进 PAY-56 测试完成,目标下周三上线
- 有个问题需要协调:支付回调的重试策略需要和业务方确认最大重试次数注意我在 git commit 后面加了自己的备注,说明为什么要做这件事,这是纯靠 git log 拿不到的信息。这一步是有价值的。
第二步:发给 AI 整理
把上面的素材发给 Claude(我在专门的"周报"Project 里做这个),附上 Prompt:
帮我把下面的工作记录整理成周报,格式要求:
1. 本周完成事项(按重要性排序,每条说明完成了什么、解决了什么问题)
2. 进行中事项(当前状态和下一步)
3. 下周计划
4. 需要协调的事项(如果有)
要求:
- 语言简洁,每条不超过50字
- 体现技术难度和价值,不要空泛
- 用第一人称
- 不要用"首先"、"其次"这类词
原始记录:
[粘贴上面的素材]第三步:AI 输出,我来润色
AI 给我的输出:
本周完成事项:
1. 接入微信支付 v3 API,完成回调处理逻辑,对接了签名验证方案(PAY-56 进行中,预计下周三上线)
2. 优化订单列表查询性能,将 offset 分页改为游标分页,解决大数据量下接口超时问题(ORDER-189)
3. 修复订单状态机并发场景下的幂等 Bug,经压测验证稳定(ORDER-201)
4. 修复多租户 Redis 缓存 key 冲突问题,填补历史遗留风险点
5. 完成用户手机号修改功能,含验证码校验流程(USER-234)
6. 完成 Spring Boot 安全版本升级,修复 CVE-2024-22257
进行中:
- 微信支付接入(PAY-56):回调逻辑完成,联调测试中,目标下周三上线
下周计划:
- 完成支付模块测试,推进上线
- 继续补充集成测试覆盖率
需要协调:
- 支付回调重试策略(最大重试次数)需与业务方确认,影响下周上线排期第四步:我自己的润色
AI 整理得已经不错,但我还是会做两件事:
一是检查技术表述是否准确,有没有被 AI 模糊化或者夸大。
二是加上一些不在素材里但我认为重要的判断,比如本周整体进度是提前了还是滞后了,有没有遇到什么预期外的技术问题。
这些判断是我的,不是 AI 能替代的。
我的周报 Project 配置
我在 Claude Projects 里建了一个专门的"周报"Project:
Instructions:
你帮我整理工作周报。
我是一个 Java 后端工程师,参与一个 B2B SaaS 产品的开发。
你帮我整理周报时:
1. 把技术工作翻译成能让非技术 Leader 看懂的语言,但不要失去技术准确性
2. 优先呈现"解决了什么问题"而不是"做了什么操作"
3. 如果某件事明显是在填坑(修复历史 Bug、还技术债),单独标出来
4. 进度滞后的事情,要说明原因,不能只说"进行中"
5. 语言简洁,每条不超过50字
6. 不要加任何废话,不要写"以上是本周工作总结,感谢领导关注"这种套话一个进阶用法:让 AI 帮你发现遗漏
有时候我写完周报,觉得"好像做了很多但周报看起来没多少"。
这时候我会让 AI 反过来帮我:
帮我分析一下,这份原始素材里有没有我忽略没写进周报的重要工作?
(把原始素材和已完成的周报都粘进去)AI 会找出"你修了一个安全漏洞 CVE-2024-22257,但周报里只写了'版本升级',没有体现安全价值"这类问题。
这个用法特别适合"干了很多但不会表达"的工程师。
多项目并行时的素材收集脚本
如果你同时参与多个 Git 仓库,手动一个个查 log 很麻烦。我写了一个脚本:
#!/bin/bash
# collect_weekly_work.sh
# 收集本周在所有项目里的工作记录
AUTHOR="你的名字" # 改成你的 git 用户名
SINCE="last monday"
# 定义你的项目目录列表
PROJECTS=(
"/path/to/project-a"
"/path/to/project-b"
"/path/to/project-c"
)
echo "=== 本周工作记录 ==="
echo "时间范围:$(date -v-mon +%Y-%m-%d) 至 $(date +%Y-%m-%d)"
echo ""
for project in "${PROJECTS[@]}"; do
project_name=$(basename "$project")
if [ -d "$project/.git" ]; then
commits=$(git -C "$project" log \
--since="$SINCE" \
--author="$AUTHOR" \
--pretty=format:"%ad | %s" \
--date=short 2>/dev/null)
if [ -n "$commits" ]; then
echo "--- $project_name ---"
echo "$commits"
echo ""
fi
fi
done运行之后把输出复制,作为素材的一部分。
关于"AI 写周报"这件事的判断
有人问我:让 AI 写周报,这样好吗?会不会变成一种欺骗?
我的看法:让 AI 写是两码事,让 AI 帮你整理是两码事。
如果你这周实际上什么都没做,让 AI 把空话写得更漂亮,这是欺骗,而且毫无意义。
如果你这周干了很多,但不善于把工作"翻译"成对 Leader 有价值的语言,让 AI 帮你做这个翻译,这是效率工具。
区别在于:素材是真实的,还是捏造的。
我让 AI 做的只是整理和结构化,判断这周干了什么、有没有价值、遇到了什么问题——这些都是我自己给出的。AI 只是帮我把这些信息组织得更清晰。
这不是欺骗,这是正确使用工具。
