首页 > 基础资料 博客日记
用 Agent Skill 自动生成工作周报
2026-04-10 17:30:02基础资料围观1次
用 Agent Skill 自动生成工作周报
背景:周报的痛点
每到周一,都要回忆上周干了什么——翻 git log、拼 Jira 链接、整理成人话,半小时就没了。更大的问题是,这些记录如果不及时整理,年底写年终总结时根本想不起来做过什么。
想解决这个问题,但又不想每次都手动跟 AI 说"帮我看看这些 commit 写周报"。于是实现了一个 Agent Skill:/weekly-report。
效果演示
在 work-journal 目录下输入:
/weekly-report
自动扫描上周所有 git 仓库的提交,生成中文周报并 commit:
周报
**xxx-ecom**:围绕 [TO-xxxx](https://xxx.atlassian.net/browse/TO-xxxx) 对 admin 后台的交易和订阅 API 做了一轮字段扩展与重构。新增 `xxx` 字段到 xxx 和 xxx 接口,去掉了 `xxx` 前缀的冗余命名,并将 `xxx.xxx` 的参数整合为 xxx 对象以提升可读性。后续又修正了 `xxx` 字段在取消订阅场景下不必要的返回逻辑,统一了 snake_case 命名风格。
**xxx-portal-bff**:同属 [TO-xxxx](https://xxx.atlassian.net/browse/TO-xxxx),修复了 Jenkins 流水线中 CodeArtifact token 获取失败的问题,将 OpenJDK 基础镜像版本钉死到 `17.0.2` 以避免构建漂移;重构了 pipeline 的 `compile` 和 `build` 函数,拆出独立的 `update_dependency` 阶段,避免重复获取 token,并在 build 脚本中跳过不必要的 dependency check 以提速。
**xxx-backend-service**:[TO-xxxx](https://xxx.atlassian.net/browse/TO-xxxx) 后端侧同步扩展:在 xxx API 响应中新增 `xxx` 字段,在 xxx API 响应中新增 `xxx` 字段,同时清理了 `xxx` 中多余的 `xxx` 映射逻辑。
**xxx-portal-web**:[TO-xxxx](https://xxx.atlassian.net/browse/TO-xxxx) 前端侧:在 B2C 客户页面的 xxx 列表中添加 xxx 可点击跳转;xxx 和 xxx 页面通过 router state 传递 xxx,实现从客户页面跳转后自动展开对应套餐导航;修复若干 ESLint 问题。
**xxx-mobile-app**:[TO-xxxx](https://xxx.atlassian.net/browse/TO-xxxx) 修复了 `NewYearPromotion202512` 促销活动的背景图片显示问题。
按仓库分段,Jira 编号自动转为完整链接,写完直接提交进 work-journal 仓库。
也可以补生历史周报:
/weekly-report 2026-03-29
实现思路
源码:github.com/zhaokang555/kang-skills
Agent Skill 由四个文件组成:
SKILL.md
SKILL.md 是整个流程的编排层,由 frontmatter(name、description 等元数据)和若干编号步骤组成。步骤里混写两种指令,AI 按顺序执行:
bash 指令,调脚本处理确定性逻辑。比如计算日期、扫描 commit,这些有固定答案的事情全部外包给脚本:
node .claude/skills/weekly-report/collect-commits.js <周一> <周日> <email>
prose 指令,告诉 AI 怎么生成。比如"按仓库分段、Jira 编号转完整 URL、写成工程师给半年后自己看的技术日志风格"——AI 拿到脚本输出的干净数据后,按这些规则生成最终文本。
两类指令的边界是"确定性 vs 生成性":有固定答案的(日期、commit 列表)写脚本,需要理解和表达的(把提交归纳成人话)写 prompt。
config.json
个人路径单独存放,不提交进代码仓库:
{
"scanDir": "/path/to/your/repos",
"jiraBaseUrl": "https://yourcompany.atlassian.net/browse"
}
config.json 加入 .gitignore,同时提供 config.example.json 作为模板随代码一起开源。
calc-dates.js
日期计算不能靠 AI 心算——时区、星期几的边界太容易出错。专门抽了一个脚本处理这件事:
// calc-dates.js [YYYY-MM-DD]
// 无参数:返回上周周一和周日;有参数:验证是周日,返回该周周一和周日
node .claude/skills/weekly-report/calc-dates.js
// → {"monday":"2026-03-30","sunday":"2026-04-05"}
参数不是周日时直接报错退出,SKILL.md 把错误信息转给用户即可。
collect-commits.js
AI 直接从 git log 里提取提交很耗 token,稳定性也差(输出格式不固定)。所以把这部分逻辑抽成一个 Node.js 脚本,由 SKILL.md 调用:
// collect-commits.js <MONDAY> <SUNDAY> <AUTHOR_EMAIL>
// 扫描 BASE_DIR 下所有 git 仓库(最大深度 3),输出指定周期内的提交记录
const repos = run(`find ${BASE_DIR} -maxdepth 3 -name ".git" -type d -prune`)
//...
for (const repo of repos) {
const hashes = run(
`git -C "${repo}" log --format="%H" --no-merges ` +
`--after="${monday} 00:00:00" --before="${sunday} 23:59:59" ` +
`--author="${author}"`
)
//...
}
脚本输出结构化文本(=== REPO: xxx === / --- COMMIT ---),AI 拿到的是干净的数据,省 token,也不会因 git 输出格式变化而出错。
SKILL.md + 脚本 的组合比纯 SKILL.md(让 AI 直接跑 git 命令解析输出)稳定得多。
定时任务:让周报真正自动化
每周手动输一次命令还是有摩擦。不同系统有不同的调度工具,以 macOS 为例,可以用内置的 launchd 实现每周一早上自动触发。
总结
30 分钟搭建,全年周报零手写。每周积累下来,年底把 52 篇周报扔给 AI,配合上 atlassian/jira skill/mcp, 10 分钟出年终总结。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:

