Skip to main content

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).

Dashboard Screenshot


🚀 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

  1. regex_skills (first match wins)
  2. path_skills (longest prefix wins)
  3. extension_skills
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyteam_skills-1.0.0.tar.gz (126.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyteam_skills-1.0.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file pyteam_skills-1.0.0.tar.gz.

File metadata

  • Download URL: pyteam_skills-1.0.0.tar.gz
  • Upload date:
  • Size: 126.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyteam_skills-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b0080aef52d3cf4af2b87f66bf300369c95ea1ef14f1914c5317a5f5fe789bdf
MD5 4f5bb0c18340c21c50ea912c6a2df67c
BLAKE2b-256 91795cf411baf738515a3b4feadcda6377aba758ec8c007a43df807013465d51

See more details on using hashes here.

File details

Details for the file pyteam_skills-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyteam_skills-1.0.0-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

Hashes for pyteam_skills-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 557e94ea544961fcefe2f1015d7eee84cd1039d985548a817a37eaaeb9e04283
MD5 a7b0c4da4c830f657f3ba5499119af69
BLAKE2b-256 37ac2f5448000dc9471b206f3a619ad11f6eae06242da00a9a7238c7177073f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page