draft-setup
Facilitates league draft management, team setup, and session advancement.
Install
mkdir -p .claude/skills/draft-setup && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18145" && unzip -o skill.zip -d .claude/skills/draft-setup && rm skill.zipInstalls to .claude/skills/draft-setup
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use this skill for any work related to the Wednesday Draft League: setting up a new draft season, running the draft, fixing draft state, or finalizing picks into real teams.Key capabilities
- →Create a new `DraftSession`
- →Open and close signups for a season
- →Link `SeasonSignup` records to `Player` records
- →Configure `num_teams` and `num_rounds` for a draft
- →Advance the draft through SETUP, DRAW, ACTIVE, PAUSED, COMPLETE states
- →Finalize draft picks into `Team` and `Roster` records
How it works
The skill manages the Wednesday Draft League workflow, from season creation and signup management to running the live draft and finalizing picks into team rosters. It uses a state machine to track draft progress.
Inputs & outputs
When to use draft-setup
- →Setup new league season
- →Run live draft sessions
- →Convert drafts to teams
About this skill
Wednesday Draft League Setup Skill
Use this skill for any work related to the Wednesday Draft League: setting up a new draft season, running the draft, fixing draft state, or finalizing picks into real teams.
How the draft works (big picture)
Players sign up publicly → commissioner creates a DraftSession → captains are drawn for position order → live snake draft via WebSocket boards → commissioner finalizes, which converts draft picks into real Team and Roster records.
State machine
SETUP → DRAW → ACTIVE ↔ PAUSED → COMPLETE
- SETUP: Commissioner configures teams/rounds; signups open/close here
- DRAW: Captains draw positions (randomized order assignment)
- ACTIVE: Live draft in progress; captains make picks on their boards
- PAUSED: Draft paused mid-session (break, dispute, etc.)
- COMPLETE: All picks made; ready for finalization
- Transitions are triggered via
draft/<session_pk>/advance/<commissioner_token>/
Key URLs (all require session PK)
| Role | URL pattern |
|---|---|
| Spectator (public) | /draft/<session_pk>/ |
| Commissioner | /draft/<session_pk>/commissioner/<commissioner_token>/ |
| Captain | /draft/<session_pk>/captain/<captain_token>/ |
| Captain portal | /draft/<session_pk>/captains/ |
| Signup form | /draft/signup/<season_pk>/ |
Pre-draft checklist (new season)
1. Create the Season
In Django admin: Leagues → Seasons → Add Season
- Set
year,season_type(3 = Wednesday Draft),is_current_season = True - Unmark the previous season's
is_current_season
2. Open signups
In Django admin: Draft → Draft Sessions → Add Draft Session
- Link to the new season
- Set
signups_open = True - Share the signup URL:
/draft/signup/<season_pk>/
3. Link signups to Player records
After signups close, match each SeasonSignup to an existing Player:
- Admin: Draft → Season Signups — set the
linked_playerFK for each - New players need a
Playerrecord created first - The
import_draft_signupsmanagement command can bulk-import from a CSV:python manage.py import_draft_signups <csv_path> - Use
link_draft_playersto auto-match by name:python manage.py link_draft_players
4. Configure the DraftSession
In admin: set num_teams, num_rounds, then add DraftRound objects for any rounds that should be randomized instead of snake (default is all snake).
5. Seed test data (local dev only)
python manage.py seed_draft_test
Creates fake signups, players, and a ready-to-draw session. Useful for testing the draft board without real data.
6. Run the draft
- Commissioner opens
/draft/<session_pk>/commissioner/<token>/ - Advance to DRAW phase → captains draw positions
- Advance to ACTIVE → live draft begins
- Captains pick on their boards; commissioner can
undolast pick orswaptwo picks - Auto-captain: if a captain's turn is skipped (they don't pick in time), the system can auto-draft them in — controlled in admin
7. Finalize the draft
After all picks are made, commissioner triggers Finalize at:
/draft/<session_pk>/finalize/<commissioner_token>/
This creates real Team and Roster records from the draft picks. Irreversible — only do this when all picks are confirmed correct.
8. Post-draft
- Verify teams in admin: Leagues → Teams — new teams for the season should appear
- Verify rosters: Leagues → Rosters
- Set up
WeekandMatchUprecords for the season schedule - Share captain access codes (goalie status URLs) via the captain URLs page:
/captain-urls/
Undo / fix mid-draft
- Undo last pick:
POST /draft/<session_pk>/undo/<commissioner_token>/ - Swap two picks:
POST /draft/<session_pk>/swap/<commissioner_token>/withpick1_idandpick2_id - Reset entire draft:
POST /draft/<session_pk>/reset/<commissioner_token>/— removes all picks and resets to SETUP; use only in emergencies
Debugging draft state
# Check current session state
python manage.py shell -c "
from leagues.models import DraftSession
s = DraftSession.objects.latest('created_at')
print(s.state, s.current_pick, s.num_teams, s.num_rounds)
print('Picks made:', s.picks.count())
print('Teams:', [(t.team_name, t.draft_position) for t in s.teams.all()])
"
Tests
Draft logic is tested in leagues/test_draft.py. Always run after any draft model/view changes:
python manage.py test leagues.test_draft --verbosity=2
When not to use it
- →When the user wants to finalize picks before all picks are confirmed correct
- →When the user wants to reverse a finalized draft
- →When the user wants to commit changes without explicit confirmation
Limitations
- →Finalizing the draft is irreversible
- →The skill is for the Wednesday Draft League only
- →The skill does not handle non-draft related league operations
How it compares
This skill provides a structured, step-by-step process for managing a specific draft league, including administrative tasks, state transitions, and irreversible finalization steps.
Compared to similar skills
draft-setup side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| draft-setup (this skill) | 0 | 3mo | Review | Intermediate |
| add-vault-note | 1 | 4mo | No flags | Intermediate |
| dashboard | 0 | 1mo | Review | Beginner |
| crm-cli | 0 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
add-vault-note
tradingstrategy-ai
Add a note to specific vault
dashboard
pedrogrande
Opens the TaskFlow Dashboard in your browser to view project progress, tasks, features, retros, and decisions.
crm-cli
dzhng
Manage contacts, companies, deals, and pipeline with crm.cli — a headless CLI-first CRM backed by SQLite with a virtual filesystem interface
cfo-log
MikeChongCan
|
taxonomy-management
DusanEngIt
Manage the skill taxonomy: add new skills, deprecate old ones, review and approve pending skill proposals from imports or employee free-text input, check for duplicates, and invalidate taxonomy cache. Use when HR needs to update taxonomy or clear a backlog of unreviewed skill proposals.
project-management
elhaddajiOtmane
Automated workflows for Git version control, database backups, semantic naming, and task tracking. Use this skill whenever the user asks to save progress, commit changes, or perform project management tasks.