首页 > 基础资料 博客日记

用 Agent Skill 自动生成工作周报

2026-04-10 17:30:02基础资料围观1

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

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 分钟出年终总结。


文章来源:https://www.cnblogs.com/forzhaokang/p/19847939
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云