{"id":48446747,"url":"https://github.com/wscats/code-analysis-skills","last_synced_at":"2026-04-06T18:04:19.032Z","repository":{"id":344188785,"uuid":"1180384149","full_name":"Wscats/code-analysis-skills","owner":"Wscats","description":"一款全面的 Git 仓库分析工具，可扫描代码仓库并生成多维度的开发者洞察报告——涵盖提交模式、工作习惯、开发效率、代码风格和代码质量五大维度。","archived":false,"fork":false,"pushed_at":"2026-03-14T01:48:03.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-14T01:56:26.582Z","etag":null,"topics":["agent","clawhub","cli","llm","python","skills","tool-calling"],"latest_commit_sha":null,"homepage":"https://clawhub.ai/Wscats/code-analysis-skills","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wscats.png","metadata":{"files":{"readme":"README.CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-13T01:41:34.000Z","updated_at":"2026-03-14T01:48:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Wscats/code-analysis-skills","commit_stats":null,"previous_names":["wscats/code-analysis-skills"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Wscats/code-analysis-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wscats%2Fcode-analysis-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wscats%2Fcode-analysis-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wscats%2Fcode-analysis-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wscats%2Fcode-analysis-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wscats","download_url":"https://codeload.github.com/Wscats/code-analysis-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wscats%2Fcode-analysis-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31483389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","clawhub","cli","llm","python","skills","tool-calling"],"created_at":"2026-04-06T18:03:52.675Z","updated_at":"2026-04-06T18:04:19.018Z","avatar_url":"https://github.com/Wscats.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📊 代码分析技能 (Code Analysis Skills)\n\n[![Python](https://img.shields.io/badge/Python-3.9%2B-blue?logo=python\u0026logoColor=white)](https://www.python.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Version](https://img.shields.io/badge/version-1.0.0-orange)](skill.yaml)\n\n一款全面的 Git 仓库分析工具，可扫描代码仓库并生成多维度的开发者洞察报告——涵盖**提交模式**、**工作习惯**、**开发效率**、**代码风格**和**代码质量**五大维度。\n\n---\n\n## ✨ 功能特性\n\n- 🔍 **仓库扫描** — 分析单个 Git 仓库，或递归扫描目录下所有 `.git` 仓库\n- 📝 **提交模式** — 提交频率、提交大小分布、合并比例、提交信息质量评分\n- ⏰ **工作习惯** — 工作时段分布、周末/深夜编码比例、连续编码天数统计\n- 🚀 **开发效率** — 代码流失率、返工比例、巴士因子、文件归属分析\n- 🎨 **代码风格** — 编程语言分布、约定式提交合规率、文件分类统计\n- 🔎 **代码质量** — Bug 修复比例、回退频率、大提交比例、测试覆盖率、Python 复杂度分析（基于 radon）\n- 👥 **多开发者对比** — 所有维度的横向对比表格\n- 📄 **多种输出格式** — 支持 Markdown、JSON 或带样式的 HTML 报告\n\n## 📦 安装\n\n### 前置要求\n\n- Python 3.9+\n- Git\n\n### 安装依赖\n\n```bash\npip install -r requirements.txt\n```\n\n或单独安装各依赖包：\n\n```bash\npip install gitpython pydriller radon tabulate jinja2 click pyyaml reportlab\n```\n\n## 🚀 使用方法\n\n### 基本命令\n\n```bash\n# 分析单个仓库（所有贡献者）\npython -m src.main -r /path/to/repo\n\n# 递归扫描目录下所有 Git 仓库\npython -m src.main -r /path/to/projects --scan-all\n\n# 对比指定开发者\npython -m src.main -r /path/to/repo -a \"Alice\" -a \"Bob\"\n\n# 按日期范围过滤\npython -m src.main -r /path/to/repo -s 2024-01-01 -u 2024-12-31\n\n# 生成 HTML 报告\npython -m src.main -r /path/to/repo -f html -o report.html\n\n# 同时生成 Markdown + HTML + PDF\npython -m src.main -r /path/to/repo -f \"markdown,html,pdf\" -o report\n\n# 生成 PDF 报告\npython -m src.main -r /path/to/repo -f pdf -o report.pdf\n\n# 将 Markdown 报告保存到文件\npython -m src.main -r /path/to/repo -o report.md\n```\n\n### 命令行参数\n\n| 参数 | 说明 | 默认值 |\n|---|---|---|\n| `-r, --repo` | Git 仓库或父目录路径 | *（必填）* |\n| `--scan-all` | 递归扫描所有 `.git` 仓库 | `false` |\n| `-a, --author` | 要分析的作者名/邮箱（可重复指定） | 所有贡献者 |\n| `-s, --since` | 起始日期（ISO 格式：`YYYY-MM-DD`） | — |\n| `-u, --until` | 截止日期（ISO 格式：`YYYY-MM-DD`） | — |\n| `-b, --branch` | 要分析的分支 | 当前分支 |\n| `-f, --format` | 输出格式：`markdown`、`json`、`html`、`pdf`（逗号分隔可多选） | `markdown` |\n| `-o, --output` | 输出文件路径（多格式时为基础文件名） | 标准输出 |\n\n## 📁 项目结构\n\n```\ncode-analysis-skills/\n├── src/\n│   ├── main.py                 # CLI 入口\n│   ├── scanner.py              # 仓库扫描器（单仓库 \u0026 递归扫描）\n│   ├── analyzers/\n│   │   ├── base_analyzer.py    # 基础分析器（Git 遍历 \u0026 作者过滤）\n│   │   ├── commit_analyzer.py  # 提交模式分析\n│   │   ├── work_habit_analyzer.py  # 工作习惯分析\n│   │   ├── efficiency_analyzer.py  # 开发效率分析\n│   │   ├── code_style_analyzer.py  # 代码风格分析\n│   │   ├── code_quality_analyzer.py # 代码质量分析\n│   │   └── slacking_analyzer.py # 摸鱼指数分析\n│   ├── evaluator/\n│   │   └── developer_evaluator.py  # 开发者评估引擎\n│   ├── reporters/\n│   │   ├── base_reporter.py    # 报告生成器基类\n│   │   ├── markdown_reporter.py # Markdown 报告生成器\n│   │   ├── json_reporter.py    # JSON 报告生成器\n│   │   ├── html_reporter.py    # 带样式的 HTML 报告生成器\n│   │   └── pdf_reporter.py     # PDF 报告生成器\n│   └── utils/\n│       └── helpers.py          # 工具函数\n├── tests/\n│   ├── test_analyzers.py       # 分析器单元测试\n│   └── test_scanner.py         # 扫描器单元测试\n├── references/\n│   └── metrics-guide.md        # 指标定义与健康范围参考\n├── SKILL.md                    # ClawHub 技能定义\n├── skill.yaml                  # 技能配置文件\n├── requirements.txt            # Python 依赖清单\n├── pyproject.toml              # 项目元数据\n└── pytest.ini                  # 测试配置\n```\n\n## 📊 分析维度详解\n\n### 1. 📝 提交模式\n- 提交频率（日/周维度）\n- 提交规模（每次提交的增删行数）\n- 合并提交占比\n- 提交信息质量评分\n\n### 2. ⏰ 工作习惯\n- 工作时段热力图（按小时分布）\n- 周末编码百分比\n- 深夜编码百分比（22:00–06:00）\n- 最长连续编码天数\n\n### 3. 🚀 开发效率\n- 代码流失率（删除行数 / 新增行数）\n- 返工比例（对近期修改文件的再次修改）\n- 巴士因子（代码集中度风险指标）\n- 文件归属分布\n\n### 4. 🎨 代码风格\n- 编程语言分布\n- 约定式提交（Conventional Commits）合规率\n- 文件类型分类（源码 / 测试 / 配置 / 文档）\n\n### 5. 🔍 代码质量\n- Bug 修复提交占比\n- 回退（Revert）提交频率\n- 大提交占比（潜在代码异味）\n- 测试文件覆盖率\n- Python 代码复杂度（基于 radon 的圈复杂度分析）\n\n### 6. 🐟 摸鱼指数\n- 综合 7 大信号评估开发者投入度（0-100 分）\n- 信号包括：稀疏度、琐碎提交、消失模式、低产出、非代码提交、拖延症、复制粘贴\n- 等级：🔥 工作狂 → ✅ 正常 → 😏 有嫌疑 → 🐟 摸鱼达人 → 🏆 摸鱼大师\n\n### 7. 🏆 开发者评估\n- 六维度加权评分（提交纪律 15% + 工作一致性 15% + 效率 20% + 代码质量 25% + 风格 10% + 参与度 15%）\n- 等级：S / A / B / C / D / E / F\n- 严肃直接的优点、缺点点评\n- 可立即执行的改进建议\n- 一句话定论\n\n## 🧪 测试\n\n```bash\n# 运行所有测试\npytest\n\n# 详细输出模式\npytest -v\n\n# 运行指定测试文件\npytest tests/test_analyzers.py\n```\n\n## ⚠️ 注意事项\n\n- 分析大型仓库（10 万+ 提交）可能耗时较长，建议限定日期范围\n- Python 复杂度分析依赖 `radon`，仅适用于 `.py` 文件\n- 作者匹配支持模糊匹配（名称或邮箱子串匹配）\n- 目录扫描默认最大深度为 5 层，避免过深递归\n- PDF 生成优先使用 weasyprint，回退到 pdfkit，最终回退到 reportlab\n- 评估结果仅基于 Git 提交历史数据，不代表开发者的全部能力\n- 摸鱼指数仅供参考，需结合实际工作场景理解\n\n## ⚠️ 隐私与数据安全声明\n\n\u003e **重要提示**：本工具会从 Git 提交历史中提取开发者个人活动数据（提交时间、频率、行为模式等）。\n\n**使用前请务必注意：**\n\n- ✅ 本工具**完全本地运行**，不会向任何外部服务器传输数据\n- ⚠️ 分析他人仓库前，请**获得相关开发者的知情同意**\n- 🚫 分析结果**不应直接用于**绩效考核、薪酬决策或惩罚性管理\n- 🔒 生成的报告包含个人信息，请**妥善保管**，不应公开分享\n- 📋 使用前请确认符合组织的 HR 政策和当地数据保护法规（如 GDPR）\n\n## 📄 许可证\n\n本项目基于 MIT 许可证开源 — 详见 [LICENSE](LICENSE) 文件。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwscats%2Fcode-analysis-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwscats%2Fcode-analysis-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwscats%2Fcode-analysis-skills/lists"}