Version control Claude Code configuration including: - Global instructions (CLAUDE.md) - User settings (settings.json) - Custom agents (architect, designer, engineer, etc.) - Custom skills (create-skill templates and workflows) Excludes session data, secrets, cache, and temporary files per .gitignore. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
223 lines
4.3 KiB
Markdown
223 lines
4.3 KiB
Markdown
# Major Domo Scripts
|
|
|
|
Utility scripts for Major Domo (SBA) league management and automation.
|
|
|
|
## Available Scripts
|
|
|
|
### validate_database.py
|
|
Validate database integrity and check for common issues.
|
|
|
|
**Usage**:
|
|
```bash
|
|
python validate_database.py --env prod
|
|
python validate_database.py --env dev --verbose
|
|
```
|
|
|
|
**Checks**:
|
|
- Orphaned records (players without teams, etc.)
|
|
- Data consistency (standings vs results)
|
|
- Missing required fields
|
|
- Duplicate entries
|
|
- Foreign key integrity
|
|
|
|
### generate_report.py
|
|
Generate weekly league reports and statistics.
|
|
|
|
**Usage**:
|
|
```bash
|
|
python generate_report.py --season 12 --week 5
|
|
python generate_report.py --season 12 --week 5 --format markdown
|
|
```
|
|
|
|
**Output**:
|
|
- Standings update
|
|
- Weekly results summary
|
|
- Injury report
|
|
- Transaction summary
|
|
- Statistical leaders
|
|
|
|
### sync_data.py
|
|
Sync production data to development database.
|
|
|
|
**Usage**:
|
|
```bash
|
|
python sync_data.py
|
|
python sync_data.py --tables teams players standings
|
|
```
|
|
|
|
**Features**:
|
|
- Full database sync or selective tables
|
|
- Preserves development-specific data
|
|
- Creates backup before sync
|
|
- Verifies sync integrity
|
|
|
|
### deploy_bot.sh
|
|
Automated Discord bot deployment script.
|
|
|
|
**Usage**:
|
|
```bash
|
|
./deploy_bot.sh prod # Deploy to production
|
|
./deploy_bot.sh dev # Deploy to development
|
|
```
|
|
|
|
**Steps**:
|
|
- Pulls latest code
|
|
- Runs tests
|
|
- Stops current bot
|
|
- Starts new bot
|
|
- Verifies deployment
|
|
|
|
## Environment Variables
|
|
|
|
**Required**:
|
|
```bash
|
|
export API_TOKEN='your-api-token'
|
|
export DATABASE='prod' # or 'dev'
|
|
```
|
|
|
|
**Optional**:
|
|
```bash
|
|
export POSTGRES_HOST='10.10.0.42'
|
|
export POSTGRES_USER='sba_admin'
|
|
export POSTGRES_PASSWORD='your-password'
|
|
export POSTGRES_DB='sba_master'
|
|
```
|
|
|
|
## Common Workflows
|
|
|
|
### Weekly Stats Update
|
|
```bash
|
|
# 1. Generate weekly report
|
|
python generate_report.py --season 12 --week 5
|
|
|
|
# 2. Validate database integrity
|
|
python validate_database.py --env prod
|
|
|
|
# 3. Post report to Discord (manual or via bot)
|
|
```
|
|
|
|
### Development Environment Setup
|
|
```bash
|
|
# 1. Sync production data to dev
|
|
python sync_data.py
|
|
|
|
# 2. Validate dev database
|
|
python validate_database.py --env dev
|
|
|
|
# 3. Test with API client
|
|
cd ~/.claude/skills/major-domo
|
|
python api_client.py --env dev --verbose
|
|
```
|
|
|
|
### Bot Deployment
|
|
```bash
|
|
# 1. Test locally
|
|
cd /mnt/NV2/Development/major-domo/discord-app-v2
|
|
python -m pytest
|
|
|
|
# 2. Deploy to production
|
|
cd ~/.claude/skills/major-domo/scripts
|
|
./deploy_bot.sh prod
|
|
```
|
|
|
|
## Development
|
|
|
|
### Adding New Scripts
|
|
|
|
1. Create script in this directory
|
|
2. Add shebang and imports:
|
|
```python
|
|
#!/usr/bin/env python3
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
|
|
from api_client import MajorDomoAPI
|
|
```
|
|
|
|
3. Add usage documentation to this README
|
|
4. Make executable: `chmod +x script_name.py`
|
|
|
|
### Testing Scripts
|
|
|
|
```bash
|
|
# Test with dev environment first
|
|
python script_name.py --env dev --verbose
|
|
|
|
# Verify output
|
|
python script_name.py --env dev --dry-run
|
|
```
|
|
|
|
## Script Templates
|
|
|
|
### Basic Script Template
|
|
```python
|
|
#!/usr/bin/env python3
|
|
"""
|
|
Script Name - Brief Description
|
|
|
|
Usage:
|
|
python script_name.py --env prod
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import argparse
|
|
|
|
# Add parent directory to path for imports
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
|
|
from api_client import MajorDomoAPI
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Script description')
|
|
parser.add_argument('--env', choices=['prod', 'dev'], default='prod')
|
|
parser.add_argument('--verbose', action='store_true')
|
|
args = parser.parse_args()
|
|
|
|
api = MajorDomoAPI(environment=args.env, verbose=args.verbose)
|
|
|
|
# Your script logic here
|
|
current = api.get_current()
|
|
print(f"Season {current['season']}, Week {current['week']}")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Import Errors
|
|
```bash
|
|
# Ensure you're in the scripts directory
|
|
cd ~/.claude/skills/major-domo/scripts
|
|
|
|
# Or use absolute path
|
|
export PYTHONPATH="/home/cal/.claude/skills/major-domo:$PYTHONPATH"
|
|
```
|
|
|
|
### API Connection Issues
|
|
```bash
|
|
# Test API connectivity
|
|
curl -H "Authorization: Bearer $API_TOKEN" \
|
|
http://10.10.0.42/api/v3/current
|
|
|
|
# Verify environment variables
|
|
echo $API_TOKEN
|
|
echo $DATABASE
|
|
```
|
|
|
|
### Permission Errors
|
|
```bash
|
|
# Make script executable
|
|
chmod +x script_name.py
|
|
|
|
# Run with python explicitly
|
|
python script_name.py
|
|
```
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-11-10
|
|
**Maintainer**: Cal Corum
|