# 🔥 RoastBuddy

**Your witty coding companion that roasts, praises, and tracks your development journey!**

RoastBuddy is a fun, interactive CLI tool that observes your git activity and gives you humorous roasts and genuine praise. It tracks your coding streaks, monitors code quality, and helps you generate shareable brag content for social media.

## ✨ Features

- 🎭 **Smart Roasts & Praise**: Context-aware commentary on your commits using GitHub Copilot CLI or built-in templates
- 🔥 **Streak Tracking**: Monitor clean commits, daily coding habits, and test pass rates *(coming soon)*
- 📊 **Code Quality Insights**: Track your coding trends and improvements over time
- 🎨 **Beautiful CLI**: Rich, colorful terminal output with emojis and ASCII art
- 📜 **History Tracking**: View all your past roasts and praises
- ⚙️ **Configurable**: Customize roast intensity, AI usage, and more
- 🚀 **Shareable Content**: Generate LinkedIn, Twitter, and GitHub-ready summaries *(coming soon)*
- 🪝 **Git Hooks**: Optional auto-roast on every commit *(coming soon)*
- 🔒 **Privacy First**: All data stays local, no telemetry

## 🚀 Quick Start

### Installation

```bash
# Clone the repository
git clone https://github.com/yourusername/roastbuddy.git
cd roastbuddy

# Install in development mode
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e .
```

### Initialize in Your Repository

```bash
cd your-project
roastbuddy init
```

### Get Your First Roast!

```bash
# Make a commit first
git commit -m "your commit message"

# Then get roasted!
roastbuddy roast

# Or get some praise
roastbuddy praise

# Check your stats
roastbuddy status

# View history
roastbuddy history
```

## 📖 Commands

### `roastbuddy init`
Initialize RoastBuddy in a git repository. Creates configuration and database files.

```bash
roastbuddy init
```

### `roastbuddy roast`
Get a witty roast based on your last commit!

```bash
roastbuddy roast
```

Example output:
```
🔥 Your Roast

🙄 'fixed stuff' - ah yes, the ancient art of commit message poetry. 
Shakespeare would be proud... NOT! Try being specific next time. 📝
```

### `roastbuddy praise`
Receive well-deserved praise for your work!

```bash
roastbuddy praise
```

Example output:
```
✨ Your Praise

✨ Beautiful commit! Clear message, focused changes, and just the right size. 
You're a git wizard! 🧙‍♂️
```

### `roastbuddy status`
View repository statistics and activity summary.

```bash
roastbuddy status
```

Shows:
- Last commit information
- Total commits analyzed
- Clean commit ratio
- Average files and lines per commit
- GitHub Copilot availability

### `roastbuddy history`
View your roast and praise history.

```bash
roastbuddy history --limit 20
```

### `roastbuddy config`
Manage RoastBuddy configuration.

```bash
# Show current configuration
roastbuddy config --show

# Set a configuration value
roastbuddy config --set roast_intensity spicy
roastbuddy config --set use_copilot never
```

Configuration options:
- `roast_intensity`: `light`, `medium`, or `spicy`
- `use_copilot`: `auto`, `always`, or `never`
- `enable_streaks`: `true` or `false`
- `show_emojis`: `true` or `false`
- `auto_roast_on_commit`: `true` or `false` *(git hooks, coming soon)*

## 🤖 GitHub Copilot Integration

RoastBuddy works with or without GitHub Copilot CLI:

- **With Copilot**: Get dynamic, AI-powered roasts and praise tailored to your specific commits
- **Without Copilot**: Use built-in template system with dozens of witty responses

### Installing GitHub Copilot CLI (Optional)

1. Install GitHub CLI: https://cli.github.com/
2. Install Copilot extension:
   ```bash
   gh extension install github/gh-copilot
   ```

RoastBuddy will automatically detect and use Copilot when available!

## 🎯 What Makes a "Clean" Commit?

RoastBuddy evaluates commits based on:

✅ **Good Commits:**
- Descriptive message (>10 characters)
- Reasonable size (<200 lines)
- Focused changes (≤5 files)
- Clear intent and purpose

❌ **Roast-worthy Commits:**
- Vague messages ("fix", "update", "stuff")
- WIP indicators in message
- Massive changes (>500 lines)
- Too many files changed (>15)

## 📊 Example Session

```bash
$ roastbuddy init
🔥 Initializing RoastBuddy...
✅ RoastBuddy is ready to roast!

$ git commit -m "wip"
[main 1a2b3c4] wip
 1 file changed, 2 insertions(+)

$ roastbuddy roast
🔥 Your Roast

🎭 'WIP' - Working In Progress? More like 'Why Is Perfection' 
so hard to achieve! Clean up that message! ✨

$ git commit -m "Implement user authentication with JWT tokens and refresh logic"
[main 5d6e7f8] Implement user authentication...

$ roastbuddy praise
✨ Your Praise

✨ Beautiful commit! Clear message, focused changes, and just the 
right size. You're a git wizard! 🧙‍♂️

$ roastbuddy status
📊 Repository Status

Last Commit: 5d6e7f8 - Implement user authentication with JWT...
Files: 3 | Lines: +145 -12

Statistics (last 10 commits):
Total Commits      10
Clean Commits      7 (70%)
Avg Files/Commit   3.2
Avg Lines/Commit   87
GitHub Copilot     ✅ Available
```

## 🧪 Running Tests

```bash
# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
pytest

# Run with coverage
pytest --cov=roastbuddy
```

## 📋 Requirements

- Python 3.8+
- Git repository
- (Optional) GitHub Copilot CLI for AI-powered roasts

## 🛣️ Roadmap

- ✅ Phase 1: Core CLI and configuration
- ✅ Phase 2: Git integration and analysis
- ✅ Phase 3: Copilot CLI integration
- ✅ Phase 4: Fallback template system
- 🚧 Phase 5: Streak tracking
- 🚧 Phase 6: Git hooks integration
- 🚧 Phase 7: Shareable social media content
- 🚧 Phase 8: Extended testing and polish
- 🚧 Phase 9: PyPI package distribution

## 🤝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.

### Development Setup

```bash
git clone https://github.com/yourusername/roastbuddy.git
cd roastbuddy
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
```

## 📜 License

MIT License - See LICENSE file for details

## 🎉 Credits

Built with love, Python, and a healthy dose of sarcasm by developers who believe coding should be fun!

---

**Made with ❤️ and a healthy dose of sarcasm**

*Remember: RoastBuddy roasts your code, not you! All feedback is meant to be fun and educational.* 😊
