## Source discovery: uncouchme-batch vetting + community centers, art walks, new venues, nonprofits, car meets, sci-fi conventions

The previous PR (#1197) bulk-imported 134 placeholder candidate files
(`platform: Unknown`, `status: candidate`) from a comparison against
uncouchme.com, with no individual vetting. Today's run focused on
draining that backlog — quality-gating each one against the standard
checklist (Seattle-focus, public events page/feed, platform match,
not already covered, event volume, not a religious org) — plus a
smaller round of fresh searches in verticals not covered recently.

### Backlog vetting (134 files → all resolved)

- **56 → `candidate`** (real platform confirmed, still viable, not yet
  covered)
- **54 → `notviable`** (already covered by an existing source, not
  Seattle-focused, religious org, static/undated content, or dead
  link)
- **24 → `investigating`** (SiteGround `sgcaptcha` / Cloudflare JS
  challenges blocked every fetch attempt, or the dated schedule page
  couldn't be located — needs a different approach, not abandoned)

Notable duplicate catches (already covered elsewhere, flipped to
`notviable`): Taproot Theatre, Sunset Tavern, STG Presents, Seattle
Storm (`climate_pledge_arena`), The Crocodile (Live Nation),
Lumen Field Events, Mariners Promotions, Vera Project, Tractor Tavern,
Vice Seattle (`external/mohai.yaml`), Darrell's Tavern
(`seattle_showlists`), Emerald City Comedy, Fleet Feet Fun Runs, and
Pike Pine Social (fully composed of four already-implemented sources).

### Strongest new picks for a future implementation cycle

- 💡 **folkdance.page** — confirmed **live ICS feed**
  (`folkdance.page/index.ics?date=all&city=Seattle`) returning 333
  real `VEVENT`s. Highest-confidence pick in the batch.
- 💡 **King County Parks** — page embeds a live **Socrata Open Data
  JSON API** (`data.kingcounty.gov/resource/grxi-zqg2.json`) with
  clean structured events including lat/lng.
- 💡 **48 North SARC** — confirmed ICS/iCal + Google Calendar export,
  ~350 events/yr; scope spans WA/OR/BC so would need Puget Sound
  filtering.
- 💡 **Not Creepy Gathering** — confirmed Humanitix ticketing with
  per-event Google Calendar/ICS export links.
- 💡 **Saving Great Animals** — WordPress + The Events Calendar (Tribe
  Events) plugin, visible iCal export links.
- 💡 **Savoy Swing** — Squarespace, 20+ dated events, per-event
  `?format=ical` links confirmed live.
- 💡 **West Seattle Indivisible** — Squarespace, 50+ dated events
  (Jul–Sep 2026).
- 💡 **NW Dance** (nw-dance.net) — WordPress "Modern Events Calendar"
  plugin, real Aug–Nov 2026 events.
- 💡 **Sound Theatre Company** — uses OvationTix, the same platform as
  the existing `taproot` ripper; likely near config-only via the
  built-in `ovationtix` type once a `clientId` is found.
- 💡 **Trinity Nightclub** — links out to Eventbrite for its full
  listing; a follow-up should locate the organizer ID.

Full per-candidate notes (platform confirmation, event counts, caveats)
are in each file under `docs/source-candidates/`.

### Fresh searches (new verticals: community centers, art walks, new
venues, nonprofits/fundraisers, car meets, sci-fi conventions)

Most leads resolved to sources already covered — Seattle Center Festál
and all of the city's neighborhood art walks (Ballard, Belltown,
Georgetown, Pioneer Square, University District, West Seattle,
Capitol Hill, Fremont, etc.) already have dedicated recurring/ripper
sources; EverOut, AllEvents.in, Eventbrite category pages, Norwescon,
and Sakura-Con were all already tracked candidates.

Two genuinely new leads:

- ✅ **Candidate added: Rigs & Coffee at Tiki Motors** — monthly car
  meet (3rd Saturday, 10am–12pm) at 5201 1st Ave S, SoDo. No ICS/API,
  but the recurring pattern is confirmed via third-party car-meet
  directories; shaped like the already-implemented
  `sources/recurring/lake-washington-cars-and-coffee.yaml`.
- 💡 **Candidate added: GeekGirlCon** — annual convention at Seattle
  Convention Center (Oct 24–25, 2026), WordPress site with no
  discoverable ICS/API. Single annual 2-day event, so — like
  Sakura-Con — kept low-priority until a machine-readable source
  surfaces.

The Shop Clubs (SoDo car club) was investigated but skipped — its
event calendar is client-rendered and membership requirements were
unclear on a shallow fetch; not logged as a candidate per the "no
structured calendar found" convention.

### Dead sources

Ran `dead-sources.py` against production `build-errors.json` at the
start of the run. All 7 zero-event calendars and 1 external failure
it flagged (Frye Art Museum, Black Lodge, Good Society Beer, On the
Hiyu, Seattle Children's Museum, SeattleDances, Urban League Seattle,
West Seattle Blog) are already-`added`/`proxy` sources with existing
candidate files — a single build snapshot doesn't meet the 30-day
dead-source bar, so none were flagged `dead` this cycle.

No source was implemented this cycle — today's run was scoped to
draining the candidate-vetting backlog and discovering new leads, not
implementation.

## Source discovery: implementing an existing candidate (Seattle Swing Dance Club)

Scheduled implementation cycle — reviewed the outstanding `status:
candidate` / `status: investigating` queue in `docs/source-candidates/`
(~170 files) for the highest-confidence unimplemented lead rather than
running a fresh web-search rotation.

Every built-in-type candidate with previously-confirmed platform
detection (Squarespace/Eventbrite organizer pages: Poquitos Seattle,
Phinney Books, Wanderlust Nursery, Human People Beer, Reverie Ballroom,
Reconnect South Park, Uplift Climbing, Talarico's Pizzeria, NCNW Seattle
Section, Seattle CityClub, Urban Community Councils of Seattle, Clean
Greens Farm & Market, Innervisions Posters) still reports 0 upcoming
events on re-check — no change, left as `candidate`. SODO BIA remains
blocked by a SiteGround JS challenge (not stageable from this
environment). Madrona Neighborhood Association's `/events/` page turned
out to be unpopulated theme demo content (Lorem-ipsum "Karangasem,
Indonesia" filler), not real event data — real events live on ~10
individual static pages with no structured feed; left as `candidate`,
too high-effort for this cycle.

- ✅ Added: **Seattle Swing Dance Club** (Seattle WCS Calendar) —
  `styledcalendar` (built-in type, no new ripper code) — 11 upcoming
  events, 0 errors — PR pending. Re-investigated the "investigating"
  candidate and found the embedded widget's Styled Calendar API
  (`embed.styledcalendar.com/api/get-styled-calendar-events-data/`),
  which the repo's existing `styledcalendar` ripper (built for
  `couth_buzzard`) already speaks — just needed a `ripper.yaml` with the
  `styledCalendarId` pulled from the embed iframe. Majority of upcoming
  events are at Phinney Community Center (Seattle); a minority are
  out-of-town WCS conventions the community calendar also tracks.
- 🔄 Status fix: Seattle Swing Dance Club — `investigating` → `added`.
