Metadata-Version: 2.4
Name: git-personality
Version: 1.0.0
Summary: Analyzes a git repository's commit history and assigns a D&D-style personality archetype
Author: git-personality
License: MIT
Keywords: git,developer,personality,analysis,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: flake8>=6.0; extra == "dev"

# 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

```bash
pip install git-personality
```

Or install from source:

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

## Usage

```bash
# 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
