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.2.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.2-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyteam_skills-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 bb913ea95f9f7ad4c989d8bed0b97587311d147df619bbda27ca68026c3dc762
MD5 ccdec4fa1c5ba03a9aa3c24322c7adf6
BLAKE2b-256 e246c3f02f648c3407888e7a527e962ed450c21d241da4eb7bca17790ba23d0c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyteam_skills-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 15.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b11f02c1e598e9b6c68e6c7c2f80243221bb7fd6eca9c1f5eb2558495b5f5f7b
MD5 638dd2d06c95ac44c610d868c5e6e758
BLAKE2b-256 0d84dfc1f25a0b48cdd87d09e1c7ee6d222edf13f44d63d8088c2f88e395f0a4

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