GitHub Work Report Skill 是一个用于汇总并生成 GitHub 工作活动报告的技能,可跨所有已认证的 gh 账号收集数据,输出内容丰富的报告。
【用途】 该技能面向需要回顾 GitHub 工作成果的用户,支持多账号场景,可生成覆盖指定时间段的综合活动报告。
【触发方式】 用户可通过如下短语触发:/gh-work-report(默认最近 7 天)、/gh-work-report show me the last 30 days、generate a github work report for the last 90 days、what did I work on this week。技能会从用户消息中解析天数,有效值为 1、5、7、30、90;未指定或无效时默认 7 天。
【工作流程】
- 检测账号:执行 gh auth status 2>&1,解析出所有已认证账号并记录当前活动账号。
- 逐账号采集数据:使用 gh auth switch --user <ACCOUNT> 切换账号后,采集近期活动仓库(通过 GraphQL 查询 viewer.repositories,按 PUSHED_AT 降序并过滤时间窗口)、拉取请求(gh search prs 按 created 与 merged 查询并去重)、议题(gh search issues 按 created 查询)、发布(对活动仓库执行 gh api repos/{owner}/{repo}/releases)。
- 合并去重:按仓库 nameWithOwner、PR 的 URL 去重,并为每项标注来源账号。
- 分析综合:按主题分组仓库与 PR,突出重要成果(如合并的大型功能、重要修复、新建仓库),为重要功能提取简短使用示例,识别时间窗口内首次提交的新工作。
- 生成报告:使用 reference.md 中的模板结构,报告须包含执行摘要(3-5 句)、含 mermaid 图表的活动概览、各项目分节及 PR 表格、主题与亮点、重要功能的使用示例、含原始数据链接的附录。保存为 gh-work-report-YYYY-MM-DD-to-YYYY-MM-DD.md。
- 恢复原账号:切换回报告开始前的活动账号。
- 可选自动化:询问用户是否创建私有 GitHub 仓库,用于自动生成每周/每月报告及 GitHub Pages 浏览站点;若同意则按 reference.md 的基础设施设置执行。
【关键规则】
- 不硬编码用户名,始终从 gh auth status 检测。
- 不使用回退,不静默默认,错误须以描述性信息显式失败。
- 所有图表须由代码生成,数字均来自实际 API 数据,不得虚构或估算。
- 完整覆盖 PR 的四个查询过滤条件:created:>DATE、is:open、merged:>DATE、closed:>DATE,并按 URL 去重。
- 甘特图与时间线图须限定在报告窗口内,起始日期取 max(pr_date, window_start)。
- 妥善处理私有仓库,除非报告本身为私有,否则不暴露敏感细节。
- 日期计算:Linux 下使用 date -d "$DAYS days ago" +%Y-%m-%d。
- 限流处理:gh api 返回 403 时等待重试,大结果集使用 --paginate。
- 结果为空也可接受,若某账号无活动则简要说明后继续。
【认证与自动化】
- 本地(多账号):使用 ./run.sh [days],可跨本地所有已认证账号切换,适合多账号(如公共 + EMU)用户,为推荐方式。
- GitHub Actions(单账号):使用工作流模板并配置 PAT secret;PAT 限定单一身份,无法跨账号。
- 双 PAT 方案:跨两个账号的 Actions 需使用独立 PAT secret(ACCOUNT1_PAT、ACCOUNT2_PAT),并在每次 API 调用时显式加 --header "authorization: token $PAT"。
- GitHub Pages 仅提供静态服务,报告生成须在别处完成(本地脚本、Actions、gh-aw),Pages 只负责输出。
【参考文件】 reference.md(报告模板、mermaid 图表模式、基础设施设置指南)、templates/weekly-report.yml(自动化报告的 GitHub Actions 工作流)、templates/pages-index.html(GitHub Pages 聚合站点模板)。
【限制】 资料未提供具体收费、价格、平台支持范围及效果保证等信息,相关内容暂未提供。