Skill matrix and dashboard from Git repos
Project description
🧠 pyteam-skills
Generate a team skill matrix and interactive dashboard from your Git commit history.
It mines repositories with PyDriller, maps files to skills (via extensions, paths, or regex), applies configurable weights with recency decay, and produces both CSV exports and a modern Tailwind dashboard (with dark mode + filters).
🚀 Features
- 🪄 Git mining via PyDriller
- 🧩 Skill mapping precedence:
regex → path prefix → extension → Other - ⚖️ Weighted scoring — with configurable parameters and exponential recency decay
- 📊 Normalized skill matrix (1–100) — top contributor per skill = 100
- 📈 Monthly trends — per skill, normalized (1–100)
- 🌗 Static dashboard — filters by Author, Skill, Month + dark mode + download JSON
- 🧰 CLI-powered workflow:
init,scan,matrix,dashboard - 🚧 More features coming soon!
🛠️ Installation (Development Mode)
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
For normal installation:
pip install pyteam-skills
⚡ Quickstart
# 1) Create a default configuration
pyteam-skills init --out config.yml
# 2) Scan a Git repository
pyteam-skills scan --repo . --config config.yml --out artifacts/scan.json
# 3) Export CSV artifacts
pyteam-skills matrix --scan artifacts/scan.json --out artifacts
# 4) Generate the interactive dashboard
pyteam-skills dashboard --scan artifacts/scan.json --out artifacts/dashboard
# 5) Open your dashboard in a browser
open artifacts/dashboard/index.html
⚙️ Config Reference
See examples/config.example.yml.
Skill Mapping Precedence
- regex_skills (first match wins)
- path_skills (longest prefix wins)
- extension_skills
- fallback →
["Other"]
Weight Parameters
| Parameter | Description | Default |
|---|---|---|
lines_changed |
Weight for added + deleted lines | 1.0 |
files_touched |
Weight per file touched | 0.3 |
commit_bonus |
Constant bonus per commit | 0.2 |
decay_half_life_days |
Half-life for exponential recency decay | 120 |
🧪 Development
make format # Format code with black
make lint # Run ruff linter
make test # Run pytest
make all # Format + lint + test
📜 License
MIT License © Hassan Zaib Hayat
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyteam_skills-1.0.1.tar.gz.
File metadata
- Download URL: pyteam_skills-1.0.1.tar.gz
- Upload date:
- Size: 126.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf49e5b311793c63b39eca8471f7f9e2cc5b197c0dba6b507a16ae67bd7f0da4
|
|
| MD5 |
ad997b36fa03869606653f407ea6f4d9
|
|
| BLAKE2b-256 |
192c1731b34ce3495f793d206af209095b7bd9a3caf921e04bfbecc12f394f90
|
File details
Details for the file pyteam_skills-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pyteam_skills-1.0.1-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ccc5307e98dc512e1336bdf384334e0b20d946f0ad9a38af63d450a9a99d238
|
|
| MD5 |
b03645bfe8184e87665b71a15ef29997
|
|
| BLAKE2b-256 |
cf38044f63729e5a0d0a165eddd6844e780f5d0b3044d606a4b7a8ec1b1dda80
|