代码分析技能
📦GitHub:https://github.com/Wscats/code-analysis-skills
扫描指定的仓库或包含Git仓库的目录,分析并比较开发者的提交习惯、工作模式、开发效率、代码风格、代码质量和懈怠指数。为每位开发者提供直率、数据驱动的评估,包括分数、等级、优势、劣势和可操作建议。以Markdown/HTML/JSON/PDF格式输出结构化报告。
💬 自然语言(推荐)
您无需记忆任何命令——只需用您自己的语言描述您的需求:
🇺🇸 英语
💬 "Analyze Alice's development efficiency in /path/to/repo"
💬 "Show me the team's work habits in this project"
💬 "Compare Alice and Bob's code quality"
💬 "What's the slacking index of this project?"
💬 "Generate a full developer evaluation report"
💬 "Score all developers and tell me who's slacking"
💬 "What's wrong with Bob's commit habits?"
💬 "Here's my repo, can you analyze the team?"
🇨🇳 中文
💬 "分析一下这个仓库 Alice 的研发效率"
💬 "帮我看看团队成员的工作习惯"
💬 "对比一下 Alice 和 Bob 的代码质量"
💬 "看看这个项目的摸鱼指数"
💬 "给所有开发者做个完整评估打分"
💬 "谁的代码质量最差?帮我分析下"
💬 "最近一个月团队的提交习惯怎么样?"
💬 "这个仓库有什么问题?帮我诊断下"
🇯🇵 日语
💬 "このリポジトリの開発者効率を分析してください"
💬 "チームメンバーの作業習慣を見せてください"
💬 "AliceとBobのコード品質を比較してください"
💬 "このプロジェクトのサボり指数は?"
💬 "全開発者の評価レポートを作成してください"
🇰🇷 韩语
💬 "이 레포지토리의 개발 효율성을 분석해줘"
💬 "팀원들의 작업 습관을 보여줘"
💬 "Alice와 Bob의 코드 품질을 비교해줘"
💬 "이 프로젝트의 땡땡이 지수가 뭐야?"
💬 "모든 개발자에 대한 평가 보고서를 만들어줘"
🇪🇸 西班牙语
💬 "Analiza la eficiencia de desarrollo de Alice en este repositorio"
💬 "Muéstrame los hábitos de trabajo del equipo"
💬 "Compara la calidad del código de Alice y Bob"
💬 "¿Cuál es el índice de holgazanería de este proyecto?"
💬 "Genera un informe de evaluación completo de los desarrolladores"
🇫🇷 法语
💬 "Analyse l'efficacité de développement d'Alice dans ce dépôt"
💬 "Montre-moi les habitudes de travail de l'équipe"
💬 "Compare la qualité du code d'Alice et de Bob"
💬 "Quel est l'indice de paresse de ce projet ?"
💬 "Génère un rapport d'évaluation complet des développeurs"
🇩🇪 德语
💬 "Analysiere die Entwicklungseffizienz von Alice in diesem Repository"
💬 "Zeig mir die Arbeitsgewohnheiten des Teams"
💬 "Vergleiche die Codequalität von Alice und Bob"
💬 "Was ist der Faulenzer-Index dieses Projekts?"
💬 "Erstelle einen vollständigen Bewertungsbericht für alle Entwickler"
注意:您需要提供仓库路径(
repo_path) — 这是一个必需参数。如果您已在代码仓库上下文中操作,智能体或许能从对话中推断出路径,但为了准确性,始终建议明确指定路径。
该技能理解上述所有语言。只需描述您的需求,它就会在您的代码仓库上运行分析并返回一份结构化报告。
🚀 快速开始 (CLI)
安装依赖项
pip install gitpython pydriller radon tabulate jinja2 click reportlab
为了获得更高质量的PDF输出(可选):
pip install weasyprint # Recommended, requires system cairo library
# or
pip install pdfkit # Requires system wkhtmltopdf
常用命令
# Analyze a single repository (all contributors)
python -m src.main -r /path/to/repo
# Scan all repositories under a directory
python -m src.main -r /path/to/projects --scan-all
# Compare specific developers
python -m src.main -r /path/to/repo -a "Alice" -a "Bob"
# Specify date range + HTML output
python -m src.main -r /path/to/repo -s 2024-01-01 -u 2024-12-31 -f html -o report.html
# Generate Markdown + HTML + PDF simultaneously
python -m src.main -r /path/to/repo -f "markdown,html,pdf" -o report
# Generate PDF report only
python -m src.main -r /path/to/repo -f pdf -o report.pdf
# Save report to a file
python -m src.main -r /path/to/repo -o report.md
CLI 参数
| 参数 | 简写 | 描述 | 默认值 |
|---|---|---|---|
--repo-path | -r | Git仓库或父目录的路径 | 必需 |
--scan-all | 递归扫描所有.git仓库 | false | |
--author | -a | 按作者筛选(可重复) | 所有作者 |
--since | -s | 开始日期 (ISO 格式) | 无 |
--until | -u | 结束日期 (ISO 格式) | 无 |
--branch | -b | 要分析的分支 | 活动分支 |
--format | -f | 输出格式:markdown,json,html,pdf(多个选项用逗号分隔) | markdown |
--输出 | -o | 输出文件路径 | 标准输出 |
使用场景
- 分析Git仓库中的开发者行为
- 比较团队成员的提交习惯和开发效率
- 了解代码质量趋势和风格一致性
- 批量分析目录下的所有
.git仓库 - 生成工作习惯报告(活跃时段、周末/深夜编码、连续提交情况等)
- 通过评分、优势、不足和建议来评估每位开发者的综合能力
- 查看团队的“摸鱼指数”排行榜
- 生成正式的PDF报告以供审查
工作流程
步骤1:确认分析参数
向用户询问以下信息:
- 仓库路径:单个Git仓库路径,或包含多个仓库的父目录
- 扫描范围:是否扫描目录下的所有
.git仓库(--scan-all) - 目标作者:分析特定开发者(多选)或所有贡献者
- 日期范围:可选的开始/结束日期(ISO格式,例如:
2024-01-01) - 分支:要分析的分支;默认为当前活动分支
- 输出格式:
markdown(默认)、json、html、pdf,或逗号分隔的组合
步骤 2:运行分析
使用已确认的参数执行分析脚本(命令示例请参见上方的“快速开始”)。
步骤3:解读报告
报告涵盖七个维度。请为用户逐一解读每个维度的关键发现:
- 🏆 开发者评估— 总体评分(S/A/B/C/D/E/F)、优势、劣势、改进建议、一句话评价
- 🐟 摸鱼指数— 活跃度、琐碎提交比例、消失比例、低产出、拖延信号
- 📝 提交习惯— 提交频率、提交规模、合并比例、提交信息质量
- ⏰ 工作习惯— 活跃时段分布、周末/深夜编码比例、连续编码时段
- 🚀 开发效率— 代码变更率、返工率、巴士因子、文件所有权
- 🎨 代码风格— 语言分布、约定式提交规范遵循度、文件分类
- 🔍 代码质量— Bug修复比例、回退频率、大型提交比例、测试覆盖率、复杂度
在多开发者分析中,额外包含以下部分:
- 📋 交叉对比汇总表
- 🏆 开发者得分排行榜
- 🐟 摸鱼指数排行榜
步骤四:深入解读评估结果
针对每位开发者的评估,向用户提供直白、不拐弯抹角的解读:
- 得分与等级:总分(0-100)及对应等级(S/A/B/C/D/E/F)
- 六维度得分:提交纪律、工作连续性、效率、代码质量、代码风格、参与度
- 优势:每项优势均有具体数据支撑,而非泛泛表扬
- 不足:不加修饰——直接指出问题及其影响
- 改进建议:可立即执行的具体改进措施
- 摸鱼指数:解读各项信号及其含义
可用资源
脚本
src/main.py— 主入口点,支持命令行参数,协调完整分析流程并生成报告src/scanner.py— 仓库扫描器,发现单个或递归扫描多个Git仓库src/analyzers/base_analyzer.py— 基础分析器类,提供Git历史遍历和作者过滤功能src/analyzers/commit_analyzer.py— 提交习惯分析(频率、大小、提交信息质量)src/analyzers/work_habit_analyzer.py— 工作习惯分析(活跃时段、周末、深夜、连续工作)src/analyzers/efficiency_analyzer.py— 开发效率分析(代码变动、返工、巴士因子)src/analyzers/code_style_analyzer.py— 代码风格分析(语言分布、提交规范)src/analyzers/code_quality_analyzer.py— 代码质量分析(缺陷修复、撤销提交、复杂度)src/analyzers/slacking_analyzer.py— 摸鱼指数分析(活跃度、琐碎提交、消失模式、拖延症等)src/evaluator/developer_evaluator.py— 开发者评估引擎(综合评分、优势/劣势、建议、结论)src/reporters/markdown_reporter.py— Markdown报告生成器src/reporters/json_reporter.py— JSON报告生成器src/reporters/html_reporter.py— HTML报告生成器(带有丰富的视觉样式)src/reporters/pdf_reporter.py— PDF报告生成器(支持weasyprint/pdfkit/reportlab备用方案)
参考文档
references/metrics-guide.md— 指标定义、计算方法及健康值参考范围。当用户询问特定指标含义时,请阅读此文件。
⚠️ 隐私与数据安全声明
重要提示:本工具从Git提交历史中提取开发者个人活动数据,包括但不限于:
- 提交时间戳(精确到小时)
- 周末/深夜编码频率
- 个人提交频率与产出量
- 代码归属权认定
- 懈怠指数与行为评估
使用前必须遵守以下原则:
- 知情同意— 分析代码库前需获得所有相关开发者的明确同意
- 非惩罚性使用— 分析结果不得直接用于绩效考核、薪酬决策或惩罚性管理
- 情境化理解— 数据必须在实际工作背景下解读(例如:架构师天然提交较少,这不代表低产出)
- 数据保护— 生成的报告包含个人信息,应安全存储,不得公开分享
- 合规性— 确保使用方式符合组织人力资源政策及当地数据保护法规(如GDPR)
- 本地执行— 此工具完全在本地运行,不会向外部服务器传输任何数据
评估体系
总体评分(0-100)
| 等级 | 分数范围 | 含义 |
|---|---|---|
| S | 90-100 | 顶尖贡献者,各方面表现卓越 |
| A | 80-89 | 优秀开发者,可靠且高效 |
| B | 70-79 | 可靠贡献者,仍有小幅提升空间 |
| C | 60-69 | 表现合格,但需在多方面改进 |
| D | 50-59 | 勉强通过,存在明显短板 |
| E | 35-49 | 低于预期,需要引起重视 |
| F | 0-34 | 关键问题,需要指导或干预 |
六个维度权重
| 维度 | 权重 | 评估内容 |
|---|---|---|
| 📝 提交规范 | 15% | 提交频率、提交信息质量、规范遵守情况 |
| ⏰ 工作稳定性 | 15% | 日常规律性、工作持续性 |
| 🚀 效率 | 20% | 代码变更率、返工率、产出量 |
| 🔍 代码质量 | 25% | 缺陷修复率、回退率、测试覆盖率、复杂度 |
| 🎨 代码风格 | 10% | 规范提交、关联问题引用 |
| 💪 参与度 | 15% | 松懈指数反信号 |
松懈指数(0-100)
| 等级 | 分数范围 | 含义 |
|---|---|---|
| 🔥 工作狂 | 0-20 | 高度投入,持续贡献 |
| ✅ 正常 | 21-40 | 健康的工作模式 |
| 😏 可疑 | 41-60 | 检测到一些松懈信号 |
| 🐟 松懈高手 | 61-80 | 显著的低投入指标 |
| 🏆 松懈大师 | 81-100 | 专业级松懈 |
备注
- 分析大型代码库(10万次以上提交)可能耗时较长;建议限制日期范围
- Python代码复杂度分析取决于
radon库且仅适用于.py文件 - 作者匹配支持模糊匹配(通过姓名或邮箱包含关键词进行匹配)
- 目录扫描默认最大深度为5层,以避免过度递归
- PDF生成优先使用weasyprint,其次回退到pdfkit,最终回退到reportlab
- 评估结果仅基于Git提交历史,不代表开发者的全部能力
- 懈怠指数仅供参考,应在实际工作背景下解读
- 此工具完全在本地运行,不会向任何外部服务器发送数据
- 分析团队仓库前,务必事先获得知情同意
- 报告结果不得直接用于绩效评估或惩罚性管理决策
... 结束

微信扫一扫,打赏作者吧~