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.zip

Installs 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.
173 chars · catalog description✓ has a “when” trigger
Intermediate

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

You give it
User requests related to Wednesday Draft League setup or management
You get back
A configured draft season, managed signups, finalized team rosters, or debug information

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)

RoleURL 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_player FK for each
  • New players need a Player record created first
  • The import_draft_signups management command can bulk-import from a CSV:
    python manage.py import_draft_signups <csv_path>
    
  • Use link_draft_players to 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

  1. Commissioner opens /draft/<session_pk>/commissioner/<token>/
  2. Advance to DRAW phase → captains draw positions
  3. Advance to ACTIVE → live draft begins
  4. Captains pick on their boards; commissioner can undo last pick or swap two picks
  5. 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 Week and MatchUp records 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>/ with pick1_id and pick2_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.

SkillInstallsUpdatedSafetyDifficulty
draft-setup (this skill)03moReviewIntermediate
add-vault-note14moNo flagsIntermediate
dashboard01moReviewBeginner
crm-cli03moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry