Skill: wscats/code-analysis-skills (version 1.0.6)

--- name: code-analysis license: MIT description: > This skill should be used when the user needs to analyze Git repositories, compare developer commit patterns, work habits, development efficiency, code style, code quality, and slacking behaviors. It generates honest, direct developer evaluations with scores, grades, strengths, weaknesses, and actionable suggestions. Trigger phrases include "analyze code", "analyze repository", "compare developers", "code quality report", "commit patterns", "developer efficiency", "developer evaluation", "slacking index", "摸鱼指数", "工作习惯分析", "代码分析", "研发效率", "代码质量", "开发者评估", "developer score". --- # Code Analysis Skill 📦 **GitHub**: [https://github.com/Wscats/code-analysis-skills](https://github.com/Wscats/code-analysis-skills) Scan specified repositories or directories containing Git repositories, analyze and compare developers' commit habits, work patterns, development efficiency, code style, code quality, and slacking index. Provide blunt, data-driven evaluations for each developer with scores, grades, strengths, weaknesses, and actionable suggestions. Output structured reports in Markdown / HTML / JSON / PDF. ## 💬 Natural Language (Recommended) You don't need to memorize any commands — simply describe what you need in your own language: ### 🇺🇸 English ``` 💬 "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의 코드 품질을 비교해줘" 💬 "이 프로젝트의 땡땡이 지수가 뭐야?" 💬 "모든 개발자에 대한 평가 보고서를 만들어줘" ``` ### 🇪🇸 Español ``` 💬 "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" ``` ### 🇫🇷 Français ``` 💬 "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" ``` ### 🇩🇪 Deutsch ``` 💬 "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" ``` > **Note**: You need to provide the repository path (`repo_path`) — it is a required parameter. If you are already working within a repository context, the agent may infer the path from the conversation, but an explicit path is always recommended for accuracy. The Skill understands all the languages above. Just describe what you need and it will run the analysis on your repository and return a structured report. --- ## 🚀 Quick Start (CLI) ### Install Dependencies ```bash pip install gitpython pydriller radon tabulate jinja2 click reportlab ``` For higher quality PDF output (optional): ```bash pip install weasyprint # Recommended, requires system cairo library # or pip install pdfkit # Requires system wkhtmltopdf ``` ### Common Commands ```bash # 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 Parameters | Parameter | Short | Description | Default | |-----------|-------|-------------|---------| | `--repo-path` | `-r` | Path to Git repository or parent directory | Required | | `--scan-all` | | Recursively scan all `.git` repositories | `false` | | `--author` | `-a` | Filter by author (repeatable) | All authors | | `--since` | `-s` | Start date (ISO format) | None | | `--until` | `-u` | End date (ISO format) | None | | `--branch` | `-b` | Branch to analyze | Active branch | | `--format` | `-f` | Output format: `markdown`, `json`, `html`, `pdf` (comma-separated for multiple) | `markdown` | | `--output` | `-o` | Output file path | stdout | --- ## Use Cases - Analyze developer behavior in a Git repository - Compare team members' commit habits and development efficiency - Understand code quality trends and style consistency - Batch-analyze all `.git` repositories under a directory - Generate work habit reports (active hours, weekend/late-night coding, streaks, etc.) - Evaluate each developer's overall capability with scores, strengths, weaknesses, and suggestions - View the team's "Slacking Index" leaderboard - Produce formal PDF reports for review ## Workflow ### Step 1: Confirm Analysis Parameters Ask the user for the following information: - **Repository path**: A single Git repo path, or a parent directory containing multiple repos - **Scan scope**: Whether to scan all `.git` repos under the directory (`--scan-all`) - **Target authors**: Analyze specific developers (multi-select) or all contributors - **Date range**: Optional start/end dates (ISO format, e.g., `2024-01-01`) - **Branch**: Branch to analyze; defaults to the current active branch - **Output format**: `markdown` (default), `json`, `html`, `pdf`, or comma-separated combination ### Step 2: Run the Analysis Execute the analysis script with the confirmed parameters (see Quick Start above for command examples). ### Step 3: Interpret the Report The report covers seven dimensions. Walk the user through the key findings for each: 1. **🏆 Developer Evaluation** — Overall score (S/A/B/C/D/E/F), strengths, weaknesses, improvement suggestions, one-line verdict 2. **🐟 Slacking Index** — Activity level, trivial commit ratio, disappearance ratio, low output, procrastination signals 3. **📝 Commit Habits** — Commit frequency, commit size, merge ratio, message quality 4. **⏰ Work Habits** — Active hour distribution, weekend/late-night coding ratio, consecutive coding streaks 5. **🚀 Development Efficiency** — Code churn rate, rework rate, Bus Factor, file ownership 6. **🎨 Code Style** — Language distribution, Conventional Commits compliance, file classification 7. **🔍 Code Quality** — Bug fix ratio, revert frequency, large commit ratio, test coverage, complexity For multi-developer analysis, additional sections include: - 📋 Cross-comparison summary table - 🏆 Developer score leaderboard - 🐟 Slacking Index leaderboard ### Step 4: Deep-Dive into Evaluation Results For each developer's evaluation, deliver a blunt, no-nonsense interpretation to the user: 1. **Score & Grade**: Total score (0-100) and corresponding grade (S/A/B/C/D/E/F) 2. **Six Dimension Scores**: Commit discipline, work consistency, efficiency, code quality, code style, engagement 3. **Strengths**: Each backed by concrete data, not generic praise 4. **Weaknesses**: No sugarcoating — point directly at the problem and its impact 5. **Suggestions**: Actionable improvement measures, each immediately executable 6. **Slacking Index**: Interpret each signal and its meaning ## Available Resources ### Scripts - `src/main.py` — Main entry point with CLI argument support, orchestrates the full analysis pipeline and generates reports - `src/scanner.py` — Repository scanner, discovers single or recursively scans multiple Git repositories - `src/analyzers/base_analyzer.py` — Base analyzer class providing Git history traversal and author filtering - `src/analyzers/commit_analyzer.py` — Commit habit analysis (frequency, size, message quality) - `src/analyzers/work_habit_analyzer.py` — Work habit analysis (active hours, weekends, late nights, streaks) - `src/analyzers/efficiency_analyzer.py` — Development efficiency analysis (churn, rework, bus factor) - `src/analyzers/code_style_analyzer.py` — Code style analysis (language distribution, commit conventions) - `src/analyzers/code_quality_analyzer.py` — Code quality analysis (bug fixes, reverts, complexity) - `src/analyzers/slacking_analyzer.py` — Slacking index analysis (activity, trivial commits, disappearance patterns, procrastination, etc.) - `src/evaluator/developer_evaluator.py` — Developer evaluation engine (overall scoring, strengths/weaknesses, suggestions, verdicts) - `src/reporters/markdown_reporter.py` — Markdown report generator - `src/reporters/json_reporter.py` — JSON report generator - `src/reporters/html_reporter.py` — HTML report generator (with rich visual styling) - `src/reporters/pdf_reporter.py` — PDF report generator (supports weasyprint/pdfkit/reportlab fallback) ### Reference Documents - `references/metrics-guide.md` — Metric definitions, calculation methods, and healthy value reference ranges. Read this file when users ask about the meaning of a specific metric. ## ⚠️ Privacy & Data Security Notice > **Important**: This tool extracts personal developer activity data from Git commit history, including but not limited to: > - Commit timestamps (down to the hour) > - Weekend/late-night coding frequency > - Individual commit frequency and output volume > - Code ownership attribution > - Slacking index and behavioral assessments **Before using, you must adhere to the following principles:** 1. **Informed Consent** — Obtain informed consent from all relevant developers before analyzing their repositories 2. **Non-Punitive Use** — Analysis results **must not** be directly used for performance reviews, compensation decisions, or punitive management 3. **Contextual Understanding** — Data must be interpreted within actual work context (e.g., architects naturally commit less; that does not indicate low output) 4. **Data Protection** — Generated reports contain personal information and should be securely stored, not publicly shared 5. **Compliance** — Ensure usage complies with your organization's HR policies and local data protection regulations (e.g., GDPR) 6. **Local Execution** — This tool runs entirely locally and does not transmit any data to external servers ## Evaluation System ### Overall Score (0-100) | Grade | Score Range | Meaning | |-------|-------------|---------| | S | 90-100 | Top-tier contributor, excellent across all dimensions | | A | 80-89 | Outstanding developer, reliable and efficient | | B | 70-79 | Solid contributor with minor room for improvement | | C | 60-69 | Adequate, but needs improvement in multiple areas | | D | 50-59 | Barely passing, has clear weaknesses | | E | 35-49 | Below expectations, requires serious attention | | F | 0-34 | Critical issues, needs coaching or intervention | ### Six Dimension Weights | Dimension | Weight | What It Evaluates | |-----------|--------|-------------------| | 📝 Commit Discipline | 15% | Commit frequency, message quality, convention compliance | | ⏰ Work Consistency | 15% | Routine regularity, work continuity | | 🚀 Efficiency | 20% | Code churn rate, rework rate, output volume | | 🔍 Code Quality | 25% | Bug fix rate, revert rate, test coverage, complexity | | 🎨 Code Style | 10% | Conventional Commits, issue references | | 💪 Engagement | 15% | Inverse of slacking index signals | ### Slacking Index (0-100) | Level | Score Range | Meaning | |-------|-------------|---------| | 🔥 Workaholic | 0-20 | Highly engaged, continuous contributions | | ✅ Normal | 21-40 | Healthy work pattern | | 😏 Suspicious | 41-60 | Some slacking signals detected | | 🐟 Slacking Pro | 61-80 | Significant low-engagement indicators | | 🏆 Slacking Master | 81-100 | Professional-grade slacking | ## Notes - Analyzing large repositories (100K+ commits) may take a long time; consider limiting the date range - Python code complexity analysis depends on the `radon` library and only works on `.py` files - Author matching supports fuzzy matching (matches on name or email containing the keyword) - Directory scanning defaults to a maximum depth of 5 levels to avoid excessive recursion - PDF generation prefers weasyprint, falls back to pdfkit, and ultimately falls back to reportlab - Evaluation results are based solely on Git commit history and do not represent a developer's full capability - The slacking index is for reference only and should be interpreted in actual work context - **This tool runs entirely locally and does not send data to any external server** - **Always obtain informed consent before analyzing team repositories** - **Report results must not be directly used for performance reviews or punitive management decisions** ... EOF

path: src/__init__.py
content: # Code Analysis Skills


path: src/analyzers/__init__.py
content: # Analyzers Module


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)