mcpField
N
navvy

navvy

github.com/andrewgleave开发3447 次安装27 周前更新
代码仓库

关于 navvy

navvy 是一项通过 Git 历史评估代码库的 Skill,面向需要了解维护风险和项目活动的开发者。它分析五类提交信号,并汇总为简明诊断报告。

主要功能

  1. 01识别频繁变更的文件
  2. 02统计贡献者提交次数
  3. 03定位与缺陷相关的文件
  4. 04追踪每月提交趋势
  5. 05查找回滚与热修复

适用场景

  1. 01发现高变更且常出缺陷的文件
  2. 02检查项目知识是否集中于少数人
  3. 03审视开发活跃度的变化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/andrewgleave/skills --skill navvy

安装后在 Claude Code 中输入/navvy确认已加载。

附带文件README.md

详细介绍

Navvy

五条 Git 命令,不到一分钟就能让你比花一小时读代码更了解一个代码库。提交历史是诊断数据——它揭示团队动态、风险集中情况和维护模式,而这些信息无法仅从代码本身看出。

运行全部五条命令,然后综合结果,撰写一份诊断报告。

命令

尽可能并行运行这些命令。根据项目的历史时长调整 --since——活跃项目使用 1 year ago,更新较慢的项目则延长时间范围。

1. 变更热点
git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20

过去一年中修改最多的 20 个文件。某个文件变更频繁,却没人愿意负责,这是代码库拖累最明显的信号——这类文件的影响范围难以预测,还会抬高工作量估算。

2. 贡献者分布
git shortlog -sn --no-merges

按提交次数对贡献者排序。留意总线因子风险:如果某个人的提交占比达到 60% 以上,知识就过度集中,风险很高。还要检查核心贡献者目前是否仍然活跃。

3. Bug 集中点
git log -i -E --grep="fix|bug|broken" --name-only --format='' | sort | uniq -c | sort -nr | head -20

Bug 相关提交中最常被修改的文件。同时出现在此列表和变更热点中的文件风险最高——它们不断出错,也不断被修补。

4. 开发速度趋势
git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c

按月统计整个历史期间的提交次数。稳定的节奏是健康的。大幅下降可能意味着有人离职或项目失去动力。偶尔出现峰值,可能说明发布是批量进行的,而非持续交付。

5. 救火信号
git log --oneline --since="1 year ago" | grep -iE 'revert|hotfix|emergency|rollback'

回滚和热修复。频繁出现说明团队不信任自己的部署流程——这是测试或部署可靠性存在更深层问题的征兆。

综合报告

运行全部五条命令后,撰写一份简短的诊断报告。围绕数据揭示的情况来组织内容,而不是围绕命令本身。

需要关注的内容
  • 变更与 Bug 的重合点。 同时出现在两个列表中的文件,是重构或加强测试覆盖最有价值的目标。
  • 总线因子。 如果某个占主导地位的贡献者已经不再活跃,就会带来风险。贡献者分布均衡则是健康的表现。
  • 开发速度变化。 结合你对项目的了解,分析速度下降或激增的原因——例如团队变动、重写或发布。
  • 救火频率。 每年出现几次回滚很正常。每月都有热修复则说明存在系统性问题。
报告格式
# Codebase Diagnostic: [repo name]

## Key Findings
[2-4 bullet points: the most important things to know before touching this code]

## Churn Hotspots
[Top files, what they are, whether they overlap with bug clusters]

## Team & Ownership
[Bus factor assessment, active vs inactive contributors]

## Health Signals
[Velocity trend interpretation, firefighting frequency]

## Recommendations
[Where to focus attention, what to investigate further]

保持简洁。重点是帮助读者了解情况,而非进行详尽分析。读者看完报告后,应该知道问题所在,以及哪些地方需要谨慎处理。

评论

支持 Markdown