Phase 2.1: Additional Sports Stadiums - 3 plans created (MLS, WNBA, NWSL modules) - CBB deferred to future phase (350+ D1 teams) - 6 total tasks defined - Ready for execution Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
129 lines
5.4 KiB
Markdown
129 lines
5.4 KiB
Markdown
---
|
|
phase: 2.1-additional-sports-stadiums
|
|
plan: 02
|
|
type: execute
|
|
---
|
|
|
|
<objective>
|
|
Create WNBA sport module with complete hardcoded stadium data.
|
|
|
|
Purpose: Enable WNBA stadium data to flow through the canonicalization pipeline.
|
|
Output: wnba.py module with 13 arenas including capacity, year_opened, and coordinates.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
~/.claude/get-shit-done/workflows/execute-phase.md
|
|
~/.claude/get-shit-done/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.planning/PROJECT.md
|
|
@.planning/ROADMAP.md
|
|
@.planning/STATE.md
|
|
|
|
# Prior plan in this phase:
|
|
@.planning/phases/2.1-add-stadium-data-mls-wnba-nwsl-cbb/02.1-01-SUMMARY.md
|
|
|
|
# Pattern reference:
|
|
@Scripts/mlb.py
|
|
@Scripts/mls.py (created in 02.1-01)
|
|
|
|
# Current WNBA data:
|
|
@Scripts/scrape_schedules.py (WNBA_TEAMS dict at line 77)
|
|
|
|
# NBA arenas (many shared with WNBA):
|
|
@Scripts/nba.py
|
|
|
|
# Core module:
|
|
@Scripts/core.py
|
|
|
|
**Tech stack available:** Python 3, dataclasses, requests
|
|
**Established patterns:** Sport module structure from mlb.py, mls.py
|
|
**Key insight:** Many WNBA teams share arenas with NBA teams - can reference nba.py hardcoded data for coordinates/capacity
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Create wnba.py module with complete stadium data</name>
|
|
<files>Scripts/wnba.py</files>
|
|
<action>
|
|
Create wnba.py following the established pattern:
|
|
|
|
1. Module docstring and imports (try/except for core imports)
|
|
2. __all__ exports list
|
|
3. WNBA_TEAMS dict (copy from scrape_schedules.py, 13 teams)
|
|
4. get_wnba_team_abbrev() function
|
|
5. Hardcoded WNBA arenas dict with COMPLETE data:
|
|
|
|
WNBA Teams and Arenas (2025 season - 13 teams):
|
|
- ATL: Atlanta Dream → Gateway Center Arena (College Park, GA) - WNBA-specific, ~3,500 capacity, opened 2018
|
|
- CHI: Chicago Sky → Wintrust Arena (Chicago, IL) - WNBA-specific, ~10,387 capacity, opened 2017
|
|
- CON: Connecticut Sun → Mohegan Sun Arena (Uncasville, CT) - ~10,000 capacity, opened 2001
|
|
- DAL: Dallas Wings → College Park Center (Arlington, TX) - ~7,000 capacity, opened 2012
|
|
- GSV: Golden State Valkyries → Chase Center (San Francisco, CA) - shared with NBA Warriors, ~18,064, opened 2019
|
|
- IND: Indiana Fever → Gainbridge Fieldhouse (Indianapolis, IN) - shared with NBA Pacers, ~17,923, opened 1999
|
|
- LVA: Las Vegas Aces → Michelob Ultra Arena (Las Vegas, NV) - ~12,000 capacity, opened 2016
|
|
- LA: Los Angeles Sparks → Crypto.com Arena (Los Angeles, CA) - shared with NBA Lakers/Clippers, ~19,079, opened 1999
|
|
- MIN: Minnesota Lynx → Target Center (Minneapolis, MN) - shared with NBA Timberwolves, ~18,978, opened 1990
|
|
- NY: New York Liberty → Barclays Center (Brooklyn, NY) - shared with NBA Nets, ~17,732, opened 2012
|
|
- PHO: Phoenix Mercury → Footprint Center (Phoenix, AZ) - shared with NBA Suns, ~17,071, opened 1992
|
|
- SEA: Seattle Storm → Climate Pledge Arena (Seattle, WA) - shared with NHL Kraken, ~17,100, opened 1962 (renovated 2021)
|
|
- WAS: Washington Mystics → Entertainment & Sports Arena (Washington, DC) - WNBA-specific, ~4,200, opened 2018
|
|
|
|
6. scrape_wnba_stadiums_hardcoded() function returning list[Stadium]
|
|
7. scrape_wnba_stadiums() function with fallback sources
|
|
8. WNBA_STADIUM_SOURCES configuration
|
|
|
|
Note: Use WNBA-specific capacity where different from NBA configuration.
|
|
Cross-reference nba.py for shared arena coordinates.
|
|
</action>
|
|
<verify>python3 -c "from Scripts.wnba import WNBA_TEAMS, scrape_wnba_stadiums_hardcoded; s = scrape_wnba_stadiums_hardcoded(); print(f'{len(s)} arenas'); assert len(s) == 13; assert all(st.capacity > 0 for st in s); assert all(st.year_opened for st in s)"</verify>
|
|
<done>wnba.py exists with 13 teams, 13 arenas, all with non-zero capacity and year_opened values</done>
|
|
</task>
|
|
|
|
<task type="auto">
|
|
<name>Task 2: Integrate WNBA module with scrape_schedules.py</name>
|
|
<files>Scripts/scrape_schedules.py</files>
|
|
<action>
|
|
Update scrape_schedules.py to use the new wnba.py module:
|
|
|
|
1. Add import at top (with try/except pattern):
|
|
- from wnba import WNBA_TEAMS, get_wnba_team_abbrev, scrape_wnba_stadiums, WNBA_STADIUM_SOURCES
|
|
|
|
2. Remove inline WNBA_TEAMS dict (lines ~77-91) - now imported from wnba.py
|
|
|
|
3. Update get_team_abbrev() function to use get_wnba_team_abbrev() for WNBA
|
|
|
|
4. Update scrape_wnba_stadiums() stub function to use the new module's implementation
|
|
|
|
5. Verify WNBA games scraping still works
|
|
|
|
Do NOT remove the game scraping functions - those stay inline for now.
|
|
</action>
|
|
<verify>cd Scripts && python3 -c "from scrape_schedules import WNBA_TEAMS, get_team_abbrev; print(f'WNBA teams: {len(WNBA_TEAMS)}'); abbrev = get_team_abbrev('Las Vegas Aces', 'WNBA'); print(f'Aces abbrev: {abbrev}'); assert abbrev == 'LVA'"</verify>
|
|
<done>scrape_schedules.py imports WNBA_TEAMS from wnba.py, get_team_abbrev works for WNBA, inline WNBA_TEAMS removed</done>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
Before declaring plan complete:
|
|
- [ ] wnba.py exists with complete module structure
|
|
- [ ] All 13 WNBA arenas have capacity > 0 and year_opened values
|
|
- [ ] scrape_schedules.py imports from wnba.py successfully
|
|
- [ ] No import errors when running pipeline
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
|
|
- wnba.py module created following established pattern
|
|
- 13 WNBA arenas with complete data (capacity, year_opened, coordinates)
|
|
- scrape_schedules.py integration works
|
|
- Shared NBA arenas have correct coordinates
|
|
</success_criteria>
|
|
|
|
<output>
|
|
After completion, create `.planning/phases/2.1-add-stadium-data-mls-wnba-nwsl-cbb/02.1-02-SUMMARY.md`
|
|
</output>
|