claude-configs/skills/paper-dynasty/README.md
Cal Corum 8a1d15911f Initial commit: Claude Code configuration backup
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>
2026-02-03 16:34:21 -06:00

157 lines
4.0 KiB
Markdown

# Paper Dynasty - Unified Skill
Complete Paper Dynasty baseball card game management with workflow-based architecture.
## Structure
```
paper-dynasty/
├── SKILL.md # Main skill documentation (read by Claude Code)
├── README.md # This file
├── api_client.py # Shared API client for all operations
├── workflows/
│ ├── gauntlet-cleanup.md # Gauntlet team cleanup workflow
│ └── card-generation.md # Weekly card generation workflow
└── scripts/
├── gauntlet_cleanup.py # Gauntlet cleanup script
├── generate_summary.py # Card update summary generator
└── validate_database.py # Database validation tool
```
## Key Features
### 1. Unified API Client
- Single, reusable `Paper DynastyAPI` class
- Handles authentication, environments (prod/dev)
- Methods for all common operations
- Used by all scripts and workflows
### 2. Workflow-Based Architecture
- **Structured workflows** for repeatable tasks
- **Flexible ad-hoc** queries for creative requests
- Workflows are documented separately for clarity
- Scripts can be used standalone or via skill activation
### 3. Comprehensive Context
- Full API endpoint documentation
- Database structure and relationships
- Safety considerations
- Common request patterns
## Quick Start
### Setup Environment
```bash
# Required for API access
export API_TOKEN='your-api-token'
export DATABASE='prod' # or 'dev'
```
### Using the API Client
```python
from api_client import PaperDynastyAPI
api = PaperDynastyAPI(environment='prod')
# Get a team
team = api.get_team(abbrev='SKB')
# List cards
cards = api.list_cards(team_id=team['id'])
# Gauntlet operations
runs = api.list_gauntlet_runs(event_id=8, active_only=True)
```
### Using Scripts
```bash
cd ~/.claude/skills/paper-dynasty/scripts
# List gauntlet runs
python gauntlet_cleanup.py list --event-id 8 --active-only
# Wipe gauntlet team
python gauntlet_cleanup.py wipe --team-abbrev Gauntlet-SKB --event-id 8
```
## Available Workflows
### Gauntlet Team Cleanup
**Documentation**: `workflows/gauntlet-cleanup.md`
Clean up temporary gauntlet teams:
- Wipe cards (unassign from team)
- Delete packs
- End active runs
- Preserve historical data
### Weekly Card Generation
**Documentation**: `workflows/card-generation.md`
Generate and update player cards:
- Update date constants
- Generate card images
- Validate database
- Upload to S3
- Create scouting CSVs
- Generate release summary
## Advantages Over Fragmented Skills
**Before** (fragmented):
- `paper-dynasty-cards` - Card generation only
- `paper-dynasty-gauntlet` - Gauntlet cleanup only
- Duplicated API client code
- Couldn't handle creative queries
- Limited cross-functional operations
**After** (unified):
- ✅ Single skill with comprehensive context
- ✅ Shared, reusable API client
- ✅ Structured workflows for common tasks
- ✅ Flexible ad-hoc query handling
- ✅ Better discoverability and maintainability
## Example Interactions
**Structured (uses workflow)**:
```
User: "Clean up gauntlet team SKB"
→ Follows gauntlet-cleanup workflow
```
**Ad-Hoc (uses API client directly)**:
```
User: "How many cards does team SKB have?"
→ api.get_team(abbrev='SKB')
→ api.list_cards(team_id=X)
→ Returns count
```
**Creative (combines API calls)**:
```
User: "Show me all teams with active gauntlet runs"
→ api.list_gauntlet_runs(active_only=True)
→ Formats and displays team list
```
## Migration Notes
This skill consolidates:
- `~/.claude/skills/paper-dynasty-cards/``workflows/card-generation.md`
- `~/.claude/skills/paper-dynasty-gauntlet/``workflows/gauntlet-cleanup.md`
Old skills can be removed after verifying the unified skill works correctly.
## See Also
- **Main Documentation**: `SKILL.md`
- **API Client**: `api_client.py`
- **Workflows**: `workflows/`
- **Scripts**: `scripts/`
- **Database API**: `/mnt/NV2/Development/paper-dynasty/database/`
- **Discord Bot**: `/mnt/NV2/Development/paper-dynasty/discord-app/`