codebase-health-score
Calculate a health score for any Git repository. Analyzes code complexity, documentation coverage, dependency freshness, test presence, and contributor bus factor.
Installation
Install via pip:
pip install codebase-health-score
Quick Start
Analyze a repository:
codebase-health analyze /path/to/repo
Sample output:
Repository Health Analysis: /path/to/repo
Overall Score: 73/100 (Good)
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━┓
┃ Dimension ┃ Score ┃ Status ┃
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━┩
│ Code Complexity │ 18/25 │ Good │
│ Documentation │ 16/20 │ Good │
│ Test Coverage │ 15/20 │ Fair │
│ Dependency Health │ 12/15 │ Fair │
│ Git & Collaboration │ 12/20 │ Fair │
└──────────────────────┴────────┴───────────┘
Key Findings:
• Repository has 42 Python files with average size of 124 lines
• README.md exists, but CONTRIBUTING.md is missing
• Test directory present: 18 test files found
• 6 active contributors, bus factor at 34% (top contributor)
• Last commit 2 days ago
Generate detailed reports:
# Table format (default)
codebase-health report /path/to/repo --format table
# JSON format for integration
codebase-health report /path/to/repo --format json
# Markdown format
codebase-health report /path/to/repo --format markdown
# Save to file
codebase-health report /path/to/repo --output-file health_report.json
How Scoring Works
Code Complexity (25 points)
Evaluates the structural complexity of your codebase:
- File Size: Measures average and maximum file sizes. Large files indicate potential complexity.
- Directory Depth: Checks nesting levels. Excessive nesting suggests organizational issues.
- File Count: Considers total files. Very small or very large codebases may have organization concerns.
Good: Average file size 100-200 lines, max file under 500 lines, directory depth under 5 levels
Documentation (20 points)
Assesses how well your project is documented:
- README: Presence of README.md is essential
- Contributing Guide: CONTRIBUTING.md indicates mature projects
- Docstrings: Ratio of documented functions/classes
- Code Comments: Inline comment density in source files
Good: README present, some docstrings, reasonable comment coverage
Test Coverage Indicators (20 points)
Evaluates testing infrastructure:
- Test Directory: Presence of tests/ or test directory
- Test File Ratio: Proportion of test files to source files
- CI Configuration: Presence of .github/workflows, .gitlab-ci.yml, etc.
Good: 1 test file per 3-4 source files, CI pipeline configured
Dependency Health (15 points)
Checks dependency management practices:
- Lock File: Presence of requirements.txt, poetry.lock, package-lock.json, etc.
- Dependency Count: Reasonable number of direct dependencies
- Freshness: Heuristic based on repository age and activity
Good: Lock file present, under 50 direct dependencies, recent updates
Git & Collaboration (20 points)
Analyzes repository health and team dynamics:
- Commit Frequency: Regular commits indicate active maintenance
- Contributor Count: Diversity of contributors
- Bus Factor: Risk mitigation - not overly dependent on single contributor
- Recent Activity: Last commit within reasonable timeframe
Good: Multiple commits per month, 5+ contributors, bus factor below 40%, active within 30 days
Available Commands
# Analyze a repository with default settings
codebase-health analyze .
# Analyze with verbose output
codebase-health analyze /path/to/repo --verbose
# Generate detailed report in JSON format
codebase-health report . --format json
# Save markdown report
codebase-health report . --format markdown --output-file report.md
# See help
codebase-health --help
codebase-health analyze --help
Requirements
- Python 3.8+
- Git (for repository analysis)
Built With
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see LICENSE file for details.
Built by Glue — AI codebase intelligence for product teams. If you want deeper analysis including feature discovery, tribal knowledge extraction, and natural language querying, check out Glue.
Metadata
Release files for codebase-health-score 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codebase_health_score-1.0.0.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codebase_health_score-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.6 kB
Release files / codebase_health_score-1.0.0.tar.gz
| Download URL | codebase_health_score-1.0.0.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9a8ab4ecc61a48c01991ac74bad00ffa9495100d98d329aaa5f9bc57cdd6c7b
|
|
BLAKE2b-256 checksum How to use checksums |
533738526ebc62e0cacfba34c48ec120d316115470ff0a6fb3a8a8ba12f1678c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / codebase_health_score-1.0.0-py3-none-any.whl
| Download URL | codebase_health_score-1.0.0-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d9f4f67026e0db8581428060ded35052e573ba37d4281eb2189889b15386c4a7
|
|
BLAKE2b-256 checksum How to use checksums |
a13727d26f38409c9c9c9f7c87ce5ec25c7a21ea5ce3f6a37610eac65984ccf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|