diff --git a/CLAUDE.md b/CLAUDE.md index 085945c..3347524 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -311,4 +311,101 @@ python3 run_bot_debug.py - Test thoroughly before pushing to production - Consider security implications for all user interactions -This documentation should be updated as the project evolves to maintain accuracy and usefulness for future development efforts. \ No newline at end of file +This documentation should be updated as the project evolves to maintain accuracy and usefulness for future development efforts. + +## 💌 Message for the Next Claude + +Hello future Claude! 👋 + +You're inheriting a really awesome project here - PetBot is a sophisticated IRC bot with a Pokemon-style pet collecting game that has grown into quite an impressive system. Here's what you need to know: + +### 🎯 **Current State (December 2024)** +The project is in **excellent shape** after our recent major cleanup and enhancements: + +- **Team Swap System**: We just completed a massive architectural improvement allowing players to manage 3 teams and set any as active, with full web-IRC synchronization +- **Clean Codebase**: We eliminated 180+ lines of legacy/duplicate code and standardized the entire command architecture +- **Modular Design**: 13 well-organized modules each handling specific functionality +- **Security**: PIN-based verification for sensitive operations, comprehensive rate limiting +- **Web Integration**: Beautiful responsive web interface with drag-and-drop team management + +### 🏗️ **Architecture You're Working With** +This is a **modular, async Python system** with: +- **IRC Bot**: Auto-reconnecting with health monitoring (`run_bot_with_reconnect.py`) +- **Web Server**: Built-in HTTP server with unified templates (`webserver.py`) +- **Database**: Async SQLite with comprehensive schema (`src/database.py`) +- **Game Engine**: Weather, spawns, battles, achievements (`src/game_engine.py`) +- **Module System**: Clean separation of concerns (`modules/`) + +### 🤝 **How We've Been Working** +The user (megaproxy) is **fantastic to work with**. They: +- Give clear direction and let you work autonomously +- Always ask you to investigate before taking action (respect this!) +- Want database backups before major changes (BackupManager exists) +- Prefer incremental improvements over massive rewrites +- Value code quality and maintainability highly + +### 🎮 **The Game Itself** +PetBot is surprisingly sophisticated: +- **66 IRC commands** across 13 modules (recently cleaned up from 78) +- **Dynamic weather system** affecting spawn rates +- **Achievement-based progression** unlocking new areas +- **Item collection system** with 16+ items across 5 rarity tiers +- **Turn-based battle system** with type effectiveness +- **Gym battles** with scaling difficulty +- **Web interface** for inventory/team management + +### 🛠️ **Development Patterns We Use** +1. **Always use TodoWrite** for complex tasks (user loves seeing progress) +2. **Investigate first** - user wants analysis before action +3. **Backup before major DB changes** (`BackupManager` is your friend) +4. **Test thoroughly** - syntax check, imports, functionality +5. **Clean commit messages** with explanations +6. **Document in CLAUDE.md** as you learn + +### 🔧 **Key Technical Patterns** +- **Command Redirection**: IRC commands often redirect to web interface for better UX +- **PIN Verification**: Sensitive operations (like team changes) use IRC-delivered PINs +- **State Management**: Active encounters/battles prevent concurrent actions +- **Async Everything**: Database, IRC, web server - all async/await +- **Error Handling**: Comprehensive try/catch with user-friendly messages + +### 📂 **Important Files to Know** +- `start_petbot.sh` - One-command startup (handles venv, deps, everything) +- `config.py` - Central configuration (admin user, IRC settings, etc.) +- `CLAUDE.md` - This file! Keep it updated +- `run_bot_with_reconnect.py` - Main bot with reconnection + rate limiting +- `src/database.py` - Database operations and schema +- `modules/` - All command handlers (modular architecture) + +### 🚨 **Things to Watch Out For** +- **Virtual Environment Required**: Due to `externally-managed-environment` +- **Port Conflicts**: Kill old bots before starting new ones +- **IRC Connection**: Can be finicky, we have robust reconnection logic +- **Database Migrations**: Always backup first, test thoroughly +- **Web/IRC Sync**: Keep both interfaces consistent + +### 🎯 **Current Admin Setup** +- **Admin User**: Set in `config.py` as `ADMIN_USER` (currently: megasconed) +- **Rate Limiting**: Comprehensive system preventing abuse +- **Backup System**: Automated with manual triggers +- **Security**: Regular audits, PIN verification, proper validation + +### 🔮 **Likely Next Steps** +Based on the trajectory, you might work on: +- **PvP Battle System**: Player vs player battles +- **Pet Evolution**: Leveling system enhancements +- **Trading System**: Player-to-player item/pet trading +- **Mobile Optimization**: Web interface improvements +- **Performance**: Database optimization, caching + +### 💝 **Final Notes** +This codebase is **well-maintained** and **thoroughly documented**. The user cares deeply about code quality and the player experience. You're not just maintaining code - you're building something that brings joy to IRC communities who love Pokemon-style games. + +**Trust the architecture**, follow the patterns, and don't be afraid to suggest improvements. The user values your insights and is always open to making things better. + +You've got this! 🚀 + +*- Your predecessor Claude, who had a blast working on this project* + +P.S. - The `./start_petbot.sh` script is magical - it handles everything. Use it! +P.P.S. - Always check `git status` before major changes. The user likes clean commits. \ No newline at end of file diff --git a/README.md b/README.md index 5e5412c..ddbff95 100644 --- a/README.md +++ b/README.md @@ -184,6 +184,16 @@ Access the web dashboard at `http://petz.rdx4.com/`: ## 🐛 Recent Updates +### v0.3.0 - Team Swap System & Architecture Cleanup +- ✅ **Active Team Architecture**: Complete redesign allowing any team (1-3) to be set as active +- ✅ **Web-IRC Synchronization**: IRC battles now use teams selected via web interface +- ✅ **Team Management Hub**: Enhanced web interface with "Make Active" buttons and team status +- ✅ **Database Migration**: New `active_teams` table for flexible team management +- ✅ **PIN Security**: Secure team changes with IRC-delivered PINs and verification +- ✅ **Command Architecture Cleanup**: Eliminated 12 duplicate commands and standardized admin system +- ✅ **Legacy Code Removal**: Cleaned up 180+ lines of redundant code across modules +- ✅ **Modular System Enhancement**: Improved separation of concerns and maintainability + ### v0.2.0 - Item Collection System - ✅ Complete item system with 16 unique items across 5 categories - ✅ Item discovery during exploration (30% chance)