- Refactor major-domo skill: api_client.py, cli.py, and CLI modules (admin, common, injuries, results, schedule, transactions) with significant simplification (-275 lines net) - Update CLI_REFERENCE.md and SKILL.md docs for major-domo - Update create-scheduled-task SKILL.md - Update plugins blocklist.json and known_marketplaces.json - Add patterns/ directory to repo - Update CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.7 KiB
5.7 KiB
| name | description |
|---|---|
| major-domo | Major Domo SBA fantasy baseball management. USE WHEN user mentions Major Domo, SBA, league operations, player stats, team rosters, Discord bot, database migrations, or Strat-o-Matic Baseball Association. |
Major Domo - SBA Fantasy Baseball League Management
SCOPE: Only use in major-domo-v2, major-domo-bot, major-domo-database repos. Do not activate in unrelated projects.
When to Activate
- Discord bot operations, deployment, status checks
- League operations: weekly stats, injuries, trade deadlines
- Data queries: player stats, team rosters, standings, transactions
- Database operations: migrations, sync, health checks
- Analytics: batting/pitching leaders, team analysis
What is Major Domo?
Comprehensive system for managing the Strat-o-Matic Baseball Association (SBA):
- Database API: FastAPI + PostgreSQL (prod:
https://api.sba.manticorum.com/v3/, dev:http://10.10.0.42:8000/api/v3/) - Discord Bot: Python bot (discord.py 2.5.2) + v2 with enhanced logging
- Website: Vue 3 + TypeScript
- Seasons: 18 weeks, 4 games/week, draft with keepers and pick trading
- Current Season: 12
CRITICAL: Safety Rules
API-First Data Access
- ALWAYS use the API or CLI — never query databases directly
- NEVER access local SQLite databases (always out of date)
- Production API is the single source of truth
- Exception: direct DB access only when user explicitly requests it
CLI-First for Operations
python3 ~/.claude/skills/major-domo/cli.py <command>
IMPORTANT: Before running ANY CLI command, read ~/.claude/skills/major-domo/CLI_REFERENCE.md for the full command list, flag ordering rules, and available options. Do not guess at CLI syntax — the reference is authoritative.
Before Every Commit
- Run
git remote -vto verify repository - Major Domo:
/mnt/NV2/Development/major-domo/
Always Prompt User Before
- Modifying production infrastructure
- Running
docker-compose downon production - Deploying bot updates to main Discord server
- Running database migrations on production
Architecture
major-domo/
├── database/ # FastAPI backend (PostgreSQL)
│ ├── app/main.py # FastAPI application
│ ├── app/db_engine.py # Peewee ORM models
│ ├── app/routers_v3/ # API v3 endpoints
│ └── migrations/ # SQL migration files
├── discord-app/ # Original Discord bot
├── discord-app-v2/ # Next-gen bot with enhanced logging
└── sba-website/ # Vue.js frontend
Database Models (Key Entities)
- Core: Current, Player, Team, Manager, Division
- Stats: BattingStat, PitchingStat, FieldingStat, SeasonBattingStats, SeasonPitchingStats
- League: Standings, Schedule, Result, Transaction, Injury, Award
- Draft: DraftData, DraftPick, DraftList, Keeper
- Game: StratGame, StratPlay, SBAPlayer
Workflows
| Workflow | Trigger | Details |
|---|---|---|
| Bot Deployment | "Deploy bot" | workflows/bot-deployment.md |
| Weekly Stats | "Update weekly stats" | workflows/weekly-stats-update.md |
| Database Migration | "Run migration" | workflows/database-migration.md |
| Season Rollover | "Start new season" | workflows/season-rollover.md |
Common Queries
# Status
cli.py status # Current season/week
# Players
cli.py player get "Mike Trout" # Player info
cli.py player search "trout" # Fuzzy search
# Teams
cli.py team roster CAR # Full roster breakdown
cli.py --json team get CAR # All fields inc. salary_cap
# Standings & Stats
cli.py standings --division ALE # Division standings
cli.py stats batting --sort woba --min-pa 100 # Batting leaders
cli.py stats pitching --sort era --min-outs 100 # Pitching leaders
# Transactions
cli.py transactions --team CLS --week 9 # Team transactions
cli.py transactions simulate CLS "P1:CLSMiL,P2:CLS" # Compliance check
# Admin
cli.py admin recalculate-standings # Recalculate standings
cli.py admin refresh-stats # Refresh stat views
Reference Files
| File | Purpose |
|---|---|
API_REFERENCE.md |
Full API endpoints, authentication, Python client |
CLI_REFERENCE.md |
Complete CLI commands, flag ordering, workflows |
workflows/bot-deployment.md |
Bot deployment procedure |
workflows/database-migration.md |
Migration procedure |
GETTING_STARTED.md |
Onboarding guide |
Environment Variables
| Variable | Purpose |
|---|---|
API_TOKEN |
API auth token (required) |
DATABASE |
Environment: prod or dev |
BOT_TOKEN |
Discord bot auth |
GUILD_ID |
Discord server ID |
DB_URL |
Database API endpoint |
Development
# Database API (Docker)
cd /mnt/NV2/Development/major-domo/database
docker-compose up --build
# Discord Bot
cd /mnt/NV2/Development/major-domo/discord-app-v2
python bot.py
# Website
cd /mnt/NV2/Development/major-domo/sba-website
npm run dev
# Tests
cd /mnt/NV2/Development/major-domo/discord-app-v2
python -m pytest --tb=short -q
Deployment
Use the deploy skill for Docker-based deployments:
~/.claude/skills/deploy/deploy.sh md-discord patch
~/.claude/skills/deploy/deploy.sh md-database minor
| Service | Image | Production Path |
|---|---|---|
md-discord |
manticorum67/major-domo-discordapp |
/root/container-data/major-domo |
md-database |
manticorum67/major-domo-database |
/root/container-data/sba-database |
Updated: 2026-03-05 Version: 2.0.0 (modularized)