程序员们大福利来了,还在愁日报、周报、月报、季度、年度做了啥不?这个 SKILL 帮你一键搞定

Tips:安装到全局就成~~

地址: https://github.com/umlink/daily-report-skill

[我今天做了什么?,我这周做了什么?,我这个月做了什么?....]

Daily Report

程序员工作报告生成 Skill 。基于本地 Git 仓库的 commit 数据,自动生成中文工作日报、周报、季度总结、年度总结,并可推送到企业微信。

功能

  • 多周期报告 — 日报、周报、季度总结、年度总结

  • 自定义时间范围 — 支持指定任意起止日期

  • 自动扫描 Git 仓库 — 递归发现工作目录下的所有 Git 项目

  • Commit 智能分类 — 按 conventional-commit 类型自动归类(featfixrefactor 等)

  • 遗留变更检测 — 识别超过 N 天未提交的文件并单独提醒

  • 企业微信推送 — 一键将报告发送到企业微信群

使用方式

在 Claude Code 中直接用自然语言触发:

生成日报
写周报
Q2 总结
年度总结
今天干了什么
推送日报到企业微信

Skill 会自动采集 Git 数据、分析归纳、生成 Markdown 报告。

配置说明

编辑 scripts/config.json

{
  "workspaceDirs": ["/Users/yourname/projects"],
  "authorEmails": [],
  "scan": {
    "maxDepth": 4,
    "maxRepos": 100
  },
  "report": {
    "showBranch": false,
    "showDate": true,
    "staleMaxAge": 3
  },
  "wechatWork": {
    "enabled": false,
    "webhookUrl": "",
    "mentionAll": false
  }
}

配置项

字段

说明

默认值

workspaceDirs

要扫描的目录列表,必填

[]

authorEmails

按邮箱过滤 commit ,留空则使用 git 全局 user.email

[]

scan.maxDepth

目录扫描深度

4

scan.maxRepos

最多扫描仓库数

100

ignore.dirs

扫描时跳过的目录名

nodemodules 、.git 等

report.showBranch

报告中是否显示分支名

false

report.showDate

每条内容是否附加日期

true

report.staleMaxAge

未提交文件超过此天数视为"遗留变更",0 禁用

3

wechatWork.enabled

是否启用企业微信推送

false

wechatWork.webhookUrl

企业微信机器人 Webhook 地址

""

wechatWork.mentionAll

推送时是否 @所有人

false

工作原理

用户触发 → 采集 Git 数据( JS 脚本) → Claude 分析归纳 → 生成 Markdown 报告 → 可选推送企业微信

脚本负责事实采集( Git log 解析、仓库发现、遗留检测),Claude 负责分析归纳( commit 分类、内容合并、报告润色)。

报告类型

触发方式

周期

输出

"日报"、"今天干了什么"

日报

完成内容、问题修复、技术优化、进行中工作、遗留变更

"周报"、"这周做了什么"

周报

同上,按天合并归纳

"Q1/Q2/Q3/Q4"、"季度总结"

季度

重点项目与成果、问题与解决、技术优化与基建

"年度总结"、"今年做了什么"

年度

年度重点项目、技术成长与基建、问题与反思

"从 X 月到 Y 月"

自定义

根据时间跨度自动选择合适模板

常见问题

问题

解决方法

找不到 git 命令

确认已安装 Git ,终端运行 git --version 验证

WORKSPACE_REQUIRED

config.json 中配置 workspaceDirs,或使用 --workspace 参数

RISKY_WORKSPACE

不能扫描根目录(/C:\),请指定具体项目文件夹

报告为空

检查指定时间范围内是否有 commit 记录

目录结构

daily-report/
├── SKILL.md                # Skill 定义( Claude Code 读取)
├── README.md               # 本文件
└── scripts/
    ├── config.json          # 用户配置
    └── daily-report.js      # 数据采集与推送脚本
聊天