## Social source discovery: r/SeattleEvents

Feed: 25 posts (2 new since last run)

- 💡 Candidate: KNKX Events — NPR PSD (Drupal / Custom HTML) — https://www.knkx.org/events (via [Reddit post](https://old.reddit.com/r/SeattleEvents/comments/1vkolx8/knkx_10th_anniversary_event_in_tacoma_811/)). The linked URL was the one-off "KNKX 10th Anniversary Event in Tacoma" event page, but KNKX maintains a recurring events calendar (`/events`) for Seattle + Tacoma — the real source. Analogous to KEXP (`sources/kexp/`). First surfacing of the events calendar; prior KNKX mentions (7/19, 7/25) were only for the jazz-venues content guide, which remains correctly skipped. Needs investigation into the NPR PSD events data source before implementation.

## Source discovery: music venues, arts & culture, comedy & nightlife, bookstores & libraries, festivals & seasonal, outdoors & running

Ran `dead-sources.py` first — 5 zero-event calendars (`external-on-the-hiyu`,
`external-seattle-childrens-museum`, `external-seattledances`,
`external-tilth-alliance`, `external-urban-league-seattle`) and 1 external
failure (`west-seattle-blog`, empty HTTP 200 body). All are existing
`status: added`/`proxy` sources already tracked in their own per-candidate
files or in `docs/discovery-log/dead-sources.md` from prior runs — none has
newly crossed the 30-consecutive-day or persistent-404/410 bar, so no new
`💀 Dead source` flags this cycle.

Rotated into verticals not covered by the last few runs (which focused on
food/drink, brewery, night markets, community centers, farmers markets, and
climbing gyms) — music, arts, comedy, books, festivals, and running/outdoors.
Nearly every lead resolved to sources already `added` or previously evaluated
(Nectar Lounge, Columbia City Theater, SeattleArtists.com, Gallery 110,
Seattle Art Fair, Emerald City Comedy Club, Laughs Comedy Club, Seattle City
of Literature, Seattle Book Club, Beacon Hill Festival, Seattle Center
Festál, Northwest Folklife, Skylark Cafe, Conor Byrne Pub, Future Primitive
Brewing, Admiral Pub, Beveridge Place Pub, Seattle Running Club, Northwest
Trail Runs, Seattle Parks Foundation, Woodland Park Zoo) — plus a sweep of
generic aggregator/reseller sites (EverOut, Do206, SeatGeek, Songkick,
Bandsintown, ConcertFix, RunGuides, Ahotu, GoTrail, Motera) that don't
qualify (no per-organizer feed; already excluded as showlist-style
aggregators). Two new leads:

- 💡 Candidate: Madrona Neighborhood Association — Custom HTML (WordPress, no calendar plugin) — https://madrona.us/ — 5 dated upcoming events found on `/events/` (summer concert series, monthly meeting, cleanup day, bake sale, winter market) plus the well-known annual Madrona Mayfair block party (mid-May, not currently posted). No ICS/API export found — would need a 🔴 Low custom scraper, same pattern as the already-covered Hillman City and Phinney neighborhood associations.
- 💡 Candidate: Talarico's Pizzeria (West Seattle) — Squarespace `/event` collection — https://www.talaricospizza.com/event — well-known 500+ week running Wednesday trivia night (per West Seattle Blog/EverOut) plus karaoke, but the site's own Squarespace Events collection is confirmed `itemCount: 0` via `?format=json` — empty at time of check per the "200 + 0 events" gate. Re-check next cycle; may end up better modeled as a `sources/recurring/` weekly-trivia entry like `the-dock-sport-bar-and-grill` if the collection stays empty.

No source implemented this cycle (out of scope for this run — candidate
tracking and dead-source check only, per this run's instructions).

## Source discovery: implement highest-confidence candidate

Ran the "implement a candidate" path against the existing candidate backlog rather than a fresh search (most open candidates currently show 0 upcoming events — see per-file `Re-checked` notes throughout `docs/source-candidates/`).

- ✅ Added: Saltstone Ceramics — custom JSON ripper (Shopify `/products.json`, `product_type: "retail-class"`) — 82 events (18 class/camp/workshop listings expanded to per-occurrence events) — PR pending. See `docs/source-candidates/saltstone-ceramics.md` for implementation notes and a discovered ICS `rrule`-mixing bug in the shared writer (worked around, not fixed, in this PR).
- 🔴 Rejected as unsafe to implement: Glitter and Gold Studio (Open Sapphire Mining Night) — confirmed the studio's stated "3rd Thursday (more or less)" pattern doesn't hold (real Aug 2026 date is the 2nd Thursday) — a recurring-YAML `schedule: "3rd Thursday"` would have generated the wrong date. Left as `candidate`.
- 🔴 Rechecked and still blocked: SODO BIA (`sodo-bia`) — ICS feed still returns an SGCaptcha JS challenge from this environment (re-confirmed today), same as 2026-08-05. Not staged for proxy testing this cycle in favor of the higher-confidence Saltstone Ceramics pick.
- 🔴 Rejected on data-quality grounds: DiscNW — live AJAX event list confirmed fetchable, but nearly every listed "event" is a season-long league registration window or application period (e.g. "Application for Eligibility Review - 2026 to 2027", "6/1/26 - 5/31/27"), not an attendable calendar event. Left as `candidate`, noting this concern for future re-evaluation.
