用途:从本地 git 历史回答“这个仓库最近在做什么”,适合在接手陌生代码库前快速了解情况。触发场景包括询问近期工作内容、项目使用的技术、高改动文件/热点、贡献者及其工作、项目是否活跃维护。注意:文件级 blame 或溯源应使用 investigating-repository-history,而非本技能。
主要能力:生成结构化报告,包含概览(提交数、日期范围、贡献者、增删行数)、技术栈(依据文件路径启发式推断语言与框架)、工作类型分布(feature/bugfix/refactor/docs/infra/release 等关键词启发式)、未分类提交主题、改动热点(最常修改的文件与目录,排除 lockfile/生成路径)、贡献者模式(每位作者的提交、行数与主要关注点)、开发速度(每周提交、活跃天数、平均提交大小)、项目健康度(测试模块、CI、文档、最近活动)。
使用方式:运行 python3 scripts/activity_summary.py --repo-dir . --days 90。常用参数:--repo-dir 默认 .;--days 默认 90;--author 过滤单一作者;--format 支持 markdown、json、text;--max-commits 默认 500;--branch 指定分支/修订(不能以 - 开头);--output/-o 写入 UTF-8 文件;--classify-threshold 默认 0.25;--max-unclassified-samples 默认 40;--raw-subjects 输出每条过滤后提交的主题、sha 与日期;--version 打印 1.1.0。
实现要点:通过 git log --numstat --no-renames 并显式指定 UTC --since 时间戳收集提交;过滤机器人身份并保留过滤计数;从扩展名、精确清单文件名和路径段检测技术,要求清单命中或至少两个源文件;用预编译词边界正则与多标签评分分类工作类型;按修改频率排序文件/目录;用同一分类器聚合作者统计;检查测试模块、CI 配置、文档与最后活动日期。
限制:浅克隆(--depth 1)会限制分析窗口;技术检测是路径启发式而非导入图,标签仅为提示,重要时需对照清单验证;工作类型分类是关键词启发式,非事实,Conventional Commits 前缀分类较好,自由格式主题常不准,未分类占比超过阈值(默认 25%)时报告会标记不可靠并输出主题供代理分类;平均提交大小与改动热点排除 lockfile 和常见生成/vendor 路径;本技能总结活动,不评估代码质量。