SuperAPI AI 工具集

git-history-recon

编程与开发

查看项目

更新于 10-16 10:06

技能介绍

用途

git-history-recon 用于在代码审查之前,挖掘 Git 仓库的提交历史元数据,产出一份机器可读的代码库风险画像。其输出是一个结构化产物 walkthrough/recon-report.md,面向下游智能体(如代码审查智能体、线性走查 Discovery)读取,帮助它们优先关注高风险文件,而无需自行构建任何 Git 分析流程。

调用方式为 /git-history-recon,可带可选参数 [target-directory],默认使用当前工作目录。提供该参数时,所有 Git 命令使用 -C TARGET_DIRECTORY,输出写入 TARGET_DIRECTORY/walkthrough/recon-report.md。

主要能力(7 条并行分析流水线)

  1. 代码热点(Hotspots):统计分析窗口内每个文件的修改次数,降序排列取前 N。
  2. 缺陷聚集文件(Bug Magnets):按提交信息中匹配 fix、bug、broken、hotfix、revert 的提交,统计涉及的文件的修改次数。
  3. 巴士系数(Bus Factor):按全时段提交数统计贡献者排名(前 20),并计算占全部提交 80% 所需的前若干贡献者数量,报告为“N 位贡献者承担了 80% 的提交”。
  4. 活跃与总贡献者:统计最近 3 个月活跃贡献者数与全时段总贡献者数。
  5. 团队动量(Momentum):按月份统计分析窗口内的提交活动分布。
  6. 救火频率(Firefighting):统计分析窗口内提交信息匹配 revert、hotfix、rollback 的提交数量,并计算其占窗口内总提交的百分比。分级解释为:< 5% 健康、5–15% 偏高、超过 15% 高。
  7. 近期新增文件(Recently Added Files):按分析窗口内新增(--diff-filter=A)的文件,去重后取前 N。

使用方式与关键规则

  • 前置检查:先运行 git rev-parse --git-dir 判断目标是否为 Git 仓库。若不是,停止并报错“Target is not a git repository.”,不创建 walkthrough 目录,也不写部分报告。
  • 浅克隆检查:运行 git rev-parse --is-shallow-repository,若为 true 则在报告头部加警告并继续处理。
  • 规模探测(Phase 0):运行 git rev-list --count HEAD 与 git shortlog -sn HEAD --no-merges | wc -l,按提交数分级并确定分析窗口与 N:
    • < 500(small):全部历史,N = 20
    • 500–10000(medium):--since='1 year ago',N = 30
    • 10000(large):--since='6 months ago',N = 50

  • 窗口内提交检查:若窗口内 0 提交,则告警并回退为全部历史、N = 20,重新检查。
  • 技能本地排除规则:读取 ${CLAUDE_SKILL_DIR}/assets/exclude-patterns(gitignore 风格,每行一个 glob,忽略空行与 # 注释行),将每个模式包装为 git 的 :(glob,exclude)PATTERN pathspec,追加到流水线 1、2、7 的命令末尾。若没有加载任何模式,则完全省略 -- . EXCLUDE_PATHSPECS,不过滤运行。该排除不适用于流水线 3、4、5、6,因为它们基于提交与作者而非文件路径。
  • 空白行过滤:流水线 1、2、7 必须使用 grep -v '^$' 去除 --name-only 输出中提交之间的空行,避免空行被计入文件统计。
  • 交叉引用(Phase 2):计算热点文件与缺陷聚集文件的交集;交集非空时,对每个文件运行 git shortlog -sn -- FILEPATH | head -1 提取主要负责人;交集为空时,High-Risk Files 章节写入明确的无结果说明。
  • 报告写入(Phase 3):运行 mkdir -p walkthrough,写入 walkthrough/recon-report.md。

报告结构

报告头部包含:生成时间戳、仓库路径或名称、规模分级(附提交数与贡献者数)、分析窗口、缺陷匹配关键词(fix, bug, broken, hotfix, revert)、排除项数量(source: assets/exclude-patterns;应用于 Code Hotspots、Bug Magnets、High-Risk Files、Recently Added Files)、以及关于缺陷匹配依赖提交信息关键词的注意事项说明。若出现浅克隆或窗口回退等警告,则在 Caveat 之后追加 WARNING 行。

报告始终包含 8 个必需章节,无数据的章节会写入一行明确的“No data”,从不省略,以便下游智能体按章节标题解析而无需防御性空检查。

适用场景与限制

  • 适用:在代码审查前为大型或中等规模仓库建立风险优先级;为下游审查智能体提供统一的高风险文件入口;评估团队动量和救火频率等工程健康信号。
  • 限制:缺陷聚集检测依赖提交信息关键词匹配,使用纯工单号、不含 fix/bug 字样的 Conventional Commits 或非英文提交规范的仓库结果会被低估;报告明确披露该限制,并说明“条目缺失不代表低风险”。当 [target-directory] 为子目录时,Code Hotspots / Bug Magnets / Recently Added Files 受目录范围限定,而 Bus Factor / Team Momentum / Firefighting 仍为全仓库范围,此范围差异需在 Recommendations 章节注明。此外,工作流强调:若提供了流程地图或 Mermaid 图,应将其视为权威流程,严格按顺序执行,不即兴改动或跳过步骤;遇到歧义节点需先暂停询问。

关于定价、收费、平台支持等信息,资料暂未提供。