用 Agent Skill 自动生成工作周报

用 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,这些有固定答案的事情全部外包给脚本:

bash 复制代码
node .claude/skills/weekly-report/collect-commits.js <周一> <周日> <email>

prose 指令,告诉 AI 怎么生成。比如"按仓库分段、Jira 编号转完整 URL、写成工程师给半年后自己看的技术日志风格"------AI 拿到脚本输出的干净数据后,按这些规则生成最终文本。

两类指令的边界是"确定性 vs 生成性":有固定答案的(日期、commit 列表)写脚本,需要理解和表达的(把提交归纳成人话)写 prompt。

config.json

个人路径单独存放,不提交进代码仓库:

json 复制代码
{
  "scanDir": "/path/to/your/repos",
  "jiraBaseUrl": "https://yourcompany.atlassian.net/browse"
}

config.json 加入 .gitignore,同时提供 config.example.json 作为模板随代码一起开源。

calc-dates.js

日期计算不能靠 AI 心算------时区、星期几的边界太容易出错。专门抽了一个脚本处理这件事:

js 复制代码
// 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 调用:

js 复制代码
// 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 分钟出年终总结。

相关推荐
阿里云大数据AI技术3 小时前
智能体时代的数据飞轮:Agentic小模型的迭代进化
人工智能·agent
老A技术联盟4 小时前
【祛魅】一篇文章带你读懂AI领域的各种名词
agent
92year4 小时前
pip install agent-framework:微软多Agent框架1.0实测
python·ai·微软·agent·mcp
vivo互联网技术5 小时前
从 OpenClaw 看 Agent 架构设计
ai·agent·技术架构·openclaw·agent架构设计
团子和二花5 小时前
Mem0 源码解析系列(一):记忆是如何被添加的
agent·mem0·长期记忆
LucaJu5 小时前
Hermes Agent爆火,聊聊与OpenClaw 到底区别在哪
agent·ai agent·智能体·openclaw·龙虾·hermes agent
后端小肥肠5 小时前
还在爆款 AI 视频下求提示词?我做了个自动反推视频提示词的 skill
人工智能·aigc·agent
lpfasd1231 天前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
Java码农也是农1 天前
Multi-Agent 系统设计模式
设计模式·agent·multi-agent