Skip to main content

Analyzes a git repository's commit history and assigns a D&D-style personality archetype

Project description

git-personality

Analyze a git repository's commit history and assign the developer (or team) a D&D-style personality archetype — based entirely on real signals from git data. No LLM, no API key, no magic. Pure Python + subprocess.

Installation

pip install git-personality

Or install from source:

git clone https://github.com/yourname/git-personality
cd git-personality
pip install -e .

Usage

# Analyze the current repository
git-personality

# Analyze a specific repository
git-personality --repo /path/to/repo

# Analyze a specific author
git-personality --author "Jane"

# Limit to recent history
git-personality --since "6 months ago"

# Combine options
git-personality --repo ~/projects/myapp --author "alice@example.com" --since "1 year ago"

Alignments

Alignment Archetype Description
Lawful Good The Senior Engineer Small commits, tests, docs, conventional messages
Neutral Good The Pragmatist Decent practices, gets things done
Chaotic Good The Hacker Ships fast, skips process, but fixes bugs
Lawful Neutral The Process Bot Follows conventions religiously, never writes tests
True Neutral The Balanced Dev Mixed signals, no strong tendencies
Chaotic Neutral The Cowboy Unpredictable, huge commits, works in bursts
Lawful Evil The Legacy Keeper Perfect process, but never deletes dead code
Neutral Evil The Tech Debt Merchant Ships features, never fixes anything
Chaotic Evil The Chaos Agent Force pushes main, "fix" is 90% of messages

Dimensions Analyzed

Lawful vs. Chaotic axis

  • Commit message quality — One-word commits ("fix", "wip") = Chaotic. Conventional commits ("feat:", "fix:") = Lawful.
  • Commit size — Giant commits (500+ lines) = Chaotic. Small, focused commits = Lawful.
  • Timing — Weekend/late-night commits = Chaotic. Business hours = Lawful.
  • Consistency — Regular cadence = Lawful. Sporadic bursts = Chaotic.

Good vs. Evil axis

  • Test discipline — Commits touching test files = Good. Never touching tests = Evil.
  • Documentation — Commits touching README/docs = Good. Ignoring docs = Evil.
  • Bug fixing — Commits that mention fixing bugs = Good. Never fixing anything = Evil.

Requirements

  • Python 3.8+
  • git installed and accessible on PATH
  • click >= 8.0
  • rich >= 13.0

License

MIT

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

git_personality-1.0.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

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

git_personality-1.0.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for git_personality-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1c44cce574c1dc756370ab24139500409239a41a0f6ab0e8892c44c8211b4228
MD5 26243cc9cb09a829534358489af3e0df
BLAKE2b-256 0795da8625fdc72d01595e354653f5eeaffe64aa376bf1db2f27b688976c2ed7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for git_personality-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d068f72f5e34d59f037e07f2c3e6bbd0f698e7b0d16fd6dca0c61dd413cde28
MD5 10f1c1f50e2dcd8ea254ee24181a019c
BLAKE2b-256 8a8ed07f0439879ab10491d10d4563d4880ba7ce483a4210f9e4030955c487e5

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