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.1.tar.gz (126.5 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.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

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

Hashes for pyteam_skills-1.0.1.tar.gz
Algorithm Hash digest
SHA256 bf49e5b311793c63b39eca8471f7f9e2cc5b197c0dba6b507a16ae67bd7f0da4
MD5 ad997b36fa03869606653f407ea6f4d9
BLAKE2b-256 192c1731b34ce3495f793d206af209095b7bd9a3caf921e04bfbecc12f394f90

See more details on using hashes here.

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

Hashes for pyteam_skills-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7ccc5307e98dc512e1336bdf384334e0b20d946f0ad9a38af63d450a9a99d238
MD5 b03645bfe8184e87665b71a15ef29997
BLAKE2b-256 cf38044f63729e5a0d0a165eddd6844e780f5d0b3044d606a4b7a8ec1b1dda80

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