## Source implementation: Running, Ballard

- ✅ Added: **Fleet Feet Seattle-Ballard** — ICS (public Google Calendar export) — 14 upcoming events confirmed live via `ONLY_SOURCE` build — running specialty store at 5404 22nd Ave NW, Ballard; the store's `/events` page embeds Google Calendar event links whose base64 `eid` decodes to a public calendar id, exposing a standard `calendar.google.com/calendar/ical/.../public/basic.ics` feed with an indefinite weekly Tuesday group run plus dated brand demo-run overrides — `sources/external/fleet-feet-seattle-ballard.yaml`, `docs/source-candidates/fleet-feet-seattle-ballard.md`
- 🔧 Fix: while verifying this source, found that `parseExternalCalendarEvents` (`lib/tag_aggregator.ts`) didn't account for `RECURRENCE-ID` override VEVENTs when expanding an RRULE — a Google-Calendar-style "this occurrence is actually something else" override was emitted alongside the generic recurring instance it replaces, producing a duplicate event on the overridden date. Fixed the RRULE expansion to skip occurrences with a matching override and added a regression test.

## Source discovery: Music venues, outdoors, arts/galleries, trivia/nightlife

- ✅ Added: **The Admiral Pub** — recurring YAML (Tue/Wed/Thu trivia night, 7 PM, Admiral District, West Seattle) — `sources/recurring/admiral-pub-trivia.yaml`
- ❌ Not Viable: Washington St. Gallery, Gallery 321, Artistry Theater+Arts — all Squarespace results with matching names, but based in Somerville MA / Bloomington MN, not Seattle
- ❌ Not Viable: TASWIRA Gallery (Pioneer Square) — Shopify-powered site currently returns HTTP 402 "Unavailable Shop"; no events feed accessible
- 🔄 Status fix (re-checked, still empty): West Seattle Performing Arts — investigated a Google Calendar embed (`2f87cba5a6cc2fa62a993d34d314caa0c932e4ddf166175f57949dd7c1683768@group.calendar.google.com`), confirmed a working public ICS export, but the calendar contains internal class/rehearsal scheduling ("Ballet 1", "Chair Conditioning", "Rehearsals") rather than public-facing events — not a good fit for the calendar
- 🔍 Investigating: eXit SPACE (dance venue, Capitol Hill) — adp.php page returned no readable content; needs a different URL for their events/performance calendar
- 🔄 Status fix: Sonic Boom Records, Easy Street Records, North End Makers, Seattle Creates, Seattle Makers, Hopvine Pub, Populus Seattle, West Seattle Runner, Seattle Running Club, Seattle World's Vintage Fair, Fremont Fair — all already covered or previously evaluated, no action
- ❌ Not Viable: Clean Greens Farm & Market — seasonal produce stand with fixed weekday hours (Harborview Wed/Fri, Wallingford-area Walgreens Sat), not a dated-event calendar

## Source discovery: Fiber arts, dance, improv comedy, circus arts, sports bars — extended rotation

- ❌ Not Viable: Needlehook — WordPress/Tribe Events ICS confirmed working, but it's a Pacific-Northwest-wide fiber arts directory (Bellingham, Edmonds, Arlington, Mount Vernon, etc.); live `?ical=1` pull returned only 2 events, both in Bellingham — not Seattle-focused
- 🔄 Status fix: eXit SPACE — `exitspacedance.com` is behind Incapsula bot protection (`/_Incapsula_Resource` challenge script, empty body) even from this environment; not fetchable without a proxy, remains `🔍 Investigating`
- ❌ Not Viable (already covered): Unexpected Productions (confirmed organizer `unexpected-productions-improv-6607284485`, matches existing `sources/external/unexpected-productions.yaml`), Jet City Improv (matches existing `sources/jet_city_improv`)
- ❌ Not Viable: SANCA (School of Acrobatics and New Circus Arts) — real ICS/Tribe-REST feed, but every entry is an administrative date (enrollment windows, holiday closures) rather than a public performance; `/sanca-shows/` has no dated listings
- ❌ Not Viable: New Moon Movement Arts, Emerald City Trapeze, Ethereal Arts Northwest, Full Bloom Aerial, Versatile Arts — class-schedule studios (WordPress/Wix) with no discrete public-event feed
- ✅ Added: **Rough & Tumble Pub** (Ballard + Columbia City) — 4 recurring YAML files (one per distinctly-named weekly event) — Seattle's women's sports bar; `/events-schedules` is a static Squarespace page (no real events collection), but confirmed via the page's own text plus EverOut/Visit Ballard listings: Trivia Tuesday (Ballard, 7pm), Trivia Thursday (Columbia City, 7pm), Makers Mondays with Tea Cozy Yarn Shop (Ballard, 7pm), Girl Lunch (Ballard, Friday noon) — `sources/recurring/rough-tumble-trivia-tuesday-ballard.yaml`, `rough-tumble-trivia-thursday-columbia-city.yaml`, `rough-tumble-makers-mondays-ballard.yaml`, `rough-tumble-girl-lunch-ballard.yaml`, `docs/source-candidates/rough-and-tumble-pub.md`

## Source implementation: Breweries, Ballard

- ✅ Added: **Urban Family Brewing Co.** (Ballard taproom) — custom HTML ripper (`proxy: "browserbase"`) — 62 events confirmed in the live July 2026 month view (food-truck rotation, trivia, yoga, D&D, Sofar Sounds Show, World Cup viewing parties) — the taproom's Sugar Calendar Lite plugin server-renders the month grid with structured `data-eventid`/`data-calendarsinfo`/`<time datetime>` attributes per event cell, but a plain `fetch()` gets challenged with a SiteGround `sgcaptcha` JS-challenge redirect (HTTP 202), so this skips straight to the browserbase proxy rung per the JS-challenge exception — `sources/urban_family_brewing/`, `docs/source-candidates/urban-family-brewing.md`
- ❌ Not Viable (currently 0 events): Human People Beer (new Roosevelt taproom, opened June 2026) — Squarespace `events-stacked` collection confirmed but `upcoming: []`; re-check once programming starts
- 🔄 Status fix: Ounces Taproom & Beer Garden, Century Ballroom — already covered / evaluated (Century Ballroom's Sugar-Calendar-equivalent, MEC plugin, is dominated by paid class series rather than discrete public events; the two genuine public-dance listings found cross-link to other venues, not Century Ballroom itself)

## Source discovery: Community centers, University District, brewery/nightclub rotation

- ✅ Added: **University Heights Center** — Squarespace — 36 upcoming events confirmed live via `ONLY_SOURCE` build — community center in a historic school building at 5031 University Way NE, University District; hosts drop-in community programs (Thursdays at 10 conversation/book/memoir/stitchery groups, Online Zumba), Summer Park Pop-Ups, and theatre-alliance rehearsal/workshop events — `sources/university_heights_center/ripper.yaml`, `docs/source-candidates/university-heights-center.md`
- ❌ Not Viable (duplicate content): The Cloud Room (Capitol Hill coworking/event space) — real Squarespace `events` collection, but every listed event ("Summer Sounds at Chophouse Row", "Courtyard Keys", "Capitol Hill Art Walk") is identical to the already-covered `sources/chophouse_row` feed — same shared courtyard operator, different domain alias
- ❌ Not Viable: Center for Wooden Boats (`/events/` and `/events-1?format=json` both redirect to a single static event page or return an empty `folders` collection, not a real events collection), We Rise Wines / The Mill Wine Bar (`typeName: "page"`, `itemCount: 0`), Baila District (Squarespace confirmed but `/events`, `/calendar`, `/schedule` all redirect to individual pages or return `typeName: "page"` — dance classes run through a WellnessLiving widget, not a Squarespace events collection)
- ❌ Not Viable: Ice Box Arcade (Ballard pinball/arcade bar) — site is a Weebly/editmysite SPA; `/events` page ships with no server-rendered content, needs a headless browser
- ❌ Not Viable: Mox Boarding House, Meeples Games, PlaytestNW — all previously evaluated (Shopify with no event API, SiteGround captcha, Squarespace `typeName: page`)
- ❌ Not Viable: Georgetown Brewing Company — Shopify store; `/products.json` lists only beer/merch products, no event-type products or feed
- ❌ Not Viable: Vertical World, Bouldering Project (3 Seattle locations) — WordPress sites with no accessible Tribe Events ICS/REST API for events (404 on `/wp-json/tribe/events/v1/events`); Whim W'Him Seattle Contemporary Dance — WordPress, no Tribe Events REST route, calendar page covers class scheduling only, performance dates are unstructured prose
- 🔍 Investigating: Supernova (SoDo nightclub) — `supernovaseattle.com` returns 404 on all paths despite being referenced by current listings sites (do206, RA); may have gone offline or rebranded. Monkey Loft (SoDo nightclub) — no dedicated venue website found, only a Facebook page; no machine-readable calendar
- 🔄 Status fix: Easy Street Records, Elliott Bay Brewing, Rat City Roller Derby, Mockingbird Comedy — all previously evaluated (blocked/proxy status), no action; RailSpur, Actualize AiR, Seattle Creative Social — already added/reverted, no action

## Source discovery: Bookstores, craft markets, museums/lectures, drag/nightlife, run clubs

- ✅ Added: **Capitol Hill Running Club** — recurring YAML (every Tuesday + Thursday, 6:00 PM, Cal Anderson Park - Southern Entrance) — community-driven group run founded after the Capitol Hill Fleet Feet closure — `sources/recurring/capitol-hill-running-club.yaml`, `docs/source-candidates/capitol-hill-running-club.md`
- ❌ Not Viable (already covered): Elliott Bay Book Co., Third Place Books, Renegade Craft Fair, MOHAI, Unicorn Seattle, Dreamland Bar & Diner, Julia's on Broadway, Woodland Park Zoo, Pacific Science Center, Columbia City Night Market, Ballard Locks Summer Concerts, Downtown Summer Sounds (Downtown Seattle Association), Waterfront Park (Spotlight on the Waterfront/Pier 62), Volunteer Park Trust, Emerald City Comedy, Laughs Comedy, Club Comedy Seattle, Seattle Running Club, Flying Lion Brewing, Wing Luke Museum, NAAM, El Centro de la Raza
- ❌ Not Viable (currently 0 events): Poquitos (Copacabana Drag & Burlesque Brunch, monthly — Squarespace `upcoming: []` as of check date), Queer/Bar (Squarespace `upcoming: []`), Center for Wooden Boats (`/events/` redirects to a single static past event page, not a real collection)
- 🔍 Investigating: Filipino Community of Seattle — Wix site (JS-heavy, previously `notviable`), but Eventbrite organizer `56553753403` confirmed 1 live upcoming event ("Musikang Kalipay", Jul 3 2026); org doesn't post most events to Eventbrite (site's own calendar uses a different embedded widget), so volume is uncertain — needs another check once the current event passes to see if it's a recurring pattern or a one-off

## Source implementation: Arts, Pioneer Square (re-check)

- ✅ Added: **Actualize AiR** — Eventbrite (`organizerId: 87597942133`) — re-implemented after the 2026-07-01 revert (PR #804, 0 live CI events at the time); re-verified live via direct fetch of the organizer's Eventbrite page and one event page, confirming `"status":"live"` and 3 upcoming dated events (Figure Drawing Series July/August/September) tied to the same organizer ID — `sources/actualize_air/ripper.yaml`, `docs/source-candidates/actualize-air.md`

## Source implementation: Running, LGBTQ

- ✅ Added: **Seattle Frontrunners** — 3 recurring YAML files (Monday Mini-Runs 6:30 PM Cal Anderson Park, Wednesday Night Run/Walk 6:30 PM Volunteer Park/Asian Art Museum, Saturday Morning Run/Walk 9:15 AM Green Lake Community Center) — LGBTQ+ running/walking club, all weekly, "year-round" per the org's own runs-walks page; confirmed via each event's dedicated page — `sources/recurring/seattle-frontrunners-monday-mini-run.yaml`, `sources/recurring/seattle-frontrunners-wednesday-night-run.yaml`, `sources/recurring/seattle-frontrunners-saturday-morning-run.yaml`, `docs/source-candidates/seattle-frontrunners.md`
- 🔍 Investigating (left for a future pass): Seattle Frontrunners Tuesday Night Track (7 PM, Roosevelt HS track) — seasonal "March–Thanksgiving" per site copy but exact start/end dates unconfirmed; semi-monthly Trail Run and Gender Diverse Run/Walk — irregular cadence, not a simple weekly pattern

## Source implementation: Wellness, breweries, drag/nightlife, literary — extended rotation

- ✅ Added: **SOL Yoga Seattle** — Squarespace (`events-stacked` collection) — 1 confirmed live event via `ONLY_SOURCE` build (SOL Sound Bath, July 24); yoga studio at 200 Lake Washington Blvd, Leschi/Madison Valley, whose `past` array shows an active ~2-4-week cadence of special events (sound baths, "SOL Reset" workshops, artist-inspired themed classes) — `sources/sol_yoga_seattle/ripper.yaml`, `docs/source-candidates/sol-yoga-seattle.md`
- ❌ Not Viable (already covered): Impact! Foundation (`sources/external/impact-raves.yaml`), Ballard Brewed Coalition (`sources/ballard_brewed/`), Hugo House (`sources/external/hugo-house.yaml`), The Missing Piece (`sources/the_missing_piece/`)
- ❌ Not Viable: EastSide Arts Alliance — same-name Squarespace result is based in Oakland, CA, not Seattle
- ❌ Not Viable (currently 0 events / not real collections): New School Beer + Cider (`typeName: page`), Flip Phone Events Seattle (`typeName: page`), Raygun Lounge (no `/events` route, no Tribe REST API — appears to be a drop-in dive bar with no scheduled programming), Time Warp pinball bar (no Tribe REST API, no discernible events listing in page HTML)
- 🔄 Status fix (re-checked, still 0 events): Center on Contemporary Art (CoCA) Seattle, Reconnect South Park — both previously evaluated, no change

## Source implementation: Gardening/community, West Seattle

- ✅ Added: **West Seattle Nursery** — Squarespace (`events` collection) — 5 upcoming events confirmed live via `ONLY_SOURCE` build (July 4th early closing, an art walk, a container-gardening class, a King County Master Gardener clinic, and a bonsai class); garden center at 5275 California Avenue SW, Alaska Junction/West Seattle — `sources/west_seattle_nursery/ripper.yaml`, `docs/source-candidates/west-seattle-nursery.md`
- ❌ Not Viable (already covered): Center for Wooden Boats (re-confirmed — `/events/` redirects to a single static past-event page, no real collection), Reverie Ballroom (re-confirmed — `/events?format=json` returns an empty static page, not an events collection), Columbia City Night Market, Swing Dance SCT, Salsa Con Todo (covered via GO Latin Dance Seattle), Seattle Urban Native Nonprofits, Gray Sky Gallery, Gallery Mack, Dancing Til Dusk
- 🔍 Investigating: Filipino Community of Seattle — Eventbrite organizer `56553753403` confirmed 1 live upcoming event ("Musikang Kalipay", Jul 3 2026) but the org's primary calendar uses a non-Eventbrite widget, so long-term volume via Eventbrite is uncertain; left as `notviable` pending a recheck after the event passes

## Source implementation: Music/jazz venues

- ✅ Added: **Seattle JazzED** — Squarespace (`events` collection) — 4 upcoming events confirmed live via `ONLY_SOURCE` build (free public performances by student jazz ensembles at Amazon Van Vorst Plaza, South Lake Union, plus a Seafair Torchlight Parade appearance); `geo: null` (varying event locations, per-event geocoding) — `sources/seattle_jazzed/ripper.yaml`, `docs/source-candidates/seattle-jazzed.md`
- ❌ Not Viable (already covered): Jazz Alley (already tracked as `status: proxy`, awaiting outofband), Seattle Jazz Fellowship, Vermillion Art Gallery and Bar (covered via `seattle_showlists`), Chuck's Hop Shop (all 3 locations already covered)
- ❌ Not Viable (low volume / mixed-city): Sativa The Queen — touring drag performer's Squarespace booking calendar; only 2 of 4 upcoming appearances are in Seattle proper (others in Tacoma, Vashon Island) and Seattle dates are at already-covered venues (Chuck's Hop Shop Seward Park)

## Source implementation: Community (extended rotation)

- ✅ Added: **Filipino Community of Seattle** — Eventbrite (`organizerId: 56553753403`) — re-verified via direct fetch: 1 live upcoming event ("FCS presents Iskwelahang Pilipino of Boston's 'Musikang Kalipay'", July 3, 2026); the org's own site (`filcommsea.org`) is a JS-heavy Wix Events widget with no server-rendered data, so Eventbrite is the only machine-readable route — `sources/filipino_community_seattle/ripper.yaml`, `docs/source-candidates/filipino-community-of-seattle.md`. Registered new "Rainier Valley" neighborhood tag in `city.config.ts` for the Filipino Community Center (5740 MLK Jr Way S).
- 🔍 Investigating (deep dive, extended rotation): DICE venues Kraken Bar & Lounge (Roosevelt) and The Funhouse (Eastlake) — both confirmed on DICE but `profile_has_events: false` (0 upcoming) as of today; Pottery Northwest — Squarespace confirmed but `/exhibitions` is a `portfolio-grid-basic` collection (no dated events), no real `/events` collection found; Seward Park Clay Studio — WordPress/Elementor static page with only 1 annual event (Holiday Show and Sale, Dec); The Clay Corner (Fremont) — Wix SPA, no server-rendered schedule despite a described weekly Friday Open House; Silent Disco NW and Secret Sunset Seattle (Eventbrite organizers) — both `"No upcoming events"` today despite EverOut listings from summer 2025
- ❌ Not Viable: Next Level Lounge (Fogo de Chão rooftop, downtown) — no dated public events page, private/group-dining bookings only; Kremwerk Complex, Belltown Yacht Club, Black Lodge, Vera Project, Nectar Lounge, Ohm Nightclub, Sunset Tavern, Easy Street Records, Tim's Tavern — all already covered (DICE or showlists)
- 🔄 Status fix: Center for Wooden Boats, Reverie Ballroom, Uplift Climbing, Human People Beer, Rat City Roller Derby — re-confirmed still not viable / 0 events, no change; Seattle Local Markets / Magnolia Flea Market / Fremont Evening Market, Punk Rock Flea Market (Shopify vendor-booth store, not an events feed, single annual Seattle date) — already covered or too low-confidence to implement

## Source implementation: Center for Wooden Boats (re-check)

- ✅ Added: **Center for Wooden Boats** — custom `IRipper` — community boating museum/makerspace at 1010 Valley St, South Lake Union. Every prior check (2026-06-30, 2026-07-01, 2026-07-02) correctly found no real Squarespace events collection (`/events` 302s to a single static past-event page; `/events-1?format=json` is an unrelated `folders` collection). This pass instead scraped four standalone event pages linked from site nav directly: `/public-sail` (pipe-separated "`<year> Public Sail Dates:`" list, 6 Sundays/year of free volunteer-crewed boat rides), `/50th` and `/dinneronthedocksw/sugartime` (share a dated "details block" shape — 50th Anniversary Reunion, Sat Aug 22 2026, and Dinner on the Docks with Sugartime Trio, Thu Jul 23 2026), and `/wood-regatta` (dated heading + "Tentative Race Day Schedule" for the Norm Blanchard W.O.O.D. Regatta, Sat Sep 19 2026 — registration start time parsed from the schedule list rather than hardcoded). 6 events, 0 errors confirmed live via `ONLY_SOURCE=center-for-wooden-boats npm run generate-calendars` — `sources/center_for_wooden_boats/`, `docs/source-candidates/center-for-wooden-boats.md`. (First push tripped gitleaks on two Squarespace-embedded keys in the fixtures — redacted, history squashed clean.)
- ❌ Not Viable (re-confirmed, no change): Metier Brewing Co. (Cherry Street, Central District/first Black-owned brewery in WA) — real WordPress + The Events Calendar (Tribe) install with a working `?ical=1` export and `wp-json/tribe/events/v1/events` REST route, but both are degenerate: every page/date-range query returns the same single event ("Educators Happy Hour", Jan 11 2025) repeated hundreds of times with identical UIDs, no real upcoming data reachable. Matches the 2026-07-01 "broken REST API" note — the ICS export is equally broken, not just the REST route
- ❌ Not Viable: Gasworks Brewing (Wallingford/Lake Union taproom) — re-confirmed `/events`, `/calendar`, `/schedule`, `/events-calendar`, `/happenings`, `/whats-on` all 404 on the live Squarespace site; no events collection exists despite the site having weekly trivia/DJ nights described only in homepage prose
- ❌ Not Viable: Supernova (SoDo nightclub) — `supernovaseattle.com` now serves a Wix "page not found" error on every path (including the previously-referenced `/events-page`); site appears to have migrated off Wix or gone offline entirely
- ❌ Not Viable: Photographic Center Northwest (Pioneer Square) — WordPress site running the EventON calendar plugin (`wp-json/eventon/v1` namespace confirmed); the calendar page ships as an empty shell with events loaded via an authenticated AJAX call (`eventon/v1/data?evo-ajax=...` with a per-page-load nonce), no server-rendered event data or stable public endpoint to scrape; separately, PCNW's Eventbrite organizer (`20260105897`) has only 1 upcoming event — too low a confidence to guess at the AJAX shape
- ❌ Not Viable (already covered): Southgate Roller Rink, Skylark Cafe, Conor Byrne Pub, Sea Monster Lounge — all previously evaluated and already in `sources/recurring/` or `sources/`
- ❌ Not Viable (0 events / not real collections, re-confirmed): CWB Eventbrite organizer (`76942865063`) queried directly via the public `eventbrite.com/api/v3/organizers/<id>/events/?status=live` endpoint — `object_count: 0`

## Source implementation: Bookstores/galleries (extended rotation)

- ✅ Added: **Fantagraphics Bookstore & Gallery** — custom `IRipper` against the Tribe Events REST API (`blog.fantagraphics.com/wp-json/tribe/events/v1/events`) — Georgetown comics-publisher bookstore/gallery at 1201 S Vale St. The API is Fantagraphics' *national* book-tour calendar (Portland, LA, NYC, London, Edinburgh, ...), so the ripper filters to `venue.venue === "Fantagraphics Bookstore and Gallery"` before publishing, dropping every non-Seattle date. 1 confirmed live event ("Hot Off the Press Book Fair", July 11 2026), 0 errors, confirmed via `ONLY_SOURCE=fantagraphics-bookstore npm run generate-calendars`. Genuinely low cadence (~2 Seattle-venue events per 6 months historically) but a real, currently-working pipeline that will pick up future signings — `sources/fantagraphics/`, `docs/source-candidates/fantagraphics-bookstore-gallery.md`.
- ❌ Not Viable (already covered, false starts caught before implementing): Delridge Neighborhoods Development Association (`sources/dnda` — existing Eventbrite ripper), Hidden Hall (`sources/hidden_hall` — existing custom ripper), Ballard Art Walk (`sources/recurring/ballard-artwalk.yaml` — already a verified recurring entry), Substation, Tractor Tavern, The Crocodile, Chop Suey, Eastlake Community Council, Birds Connect Seattle / Seward Park Audubon
- ❌ Not Viable: Ballard Homestead — Eventbrite links on-site are all 2021-2022 dated (COVID-era), `/calendar` page has no 2025/2026 content — venue appears dormant; Picklewood / The Picklr Fremont (pickleball facilities — private court-booking platforms, no public events collection); The Mountaineers (403 even from this environment, not stageable); REI events (connection blocked); Path with Art (403 blocked); West Canal Yards (no dedicated events page; DreamPark attraction and Taste of the Sound festival are separately-operated, no single feed)
- ❌ Not Viable: West Seattle Tool Library, NE Seattle Tool Library (Seattle REconomy) — recurring open-lending hours, not discrete dated events (same category as the previously-rejected Clean Greens Farm & Market); Underdog Sports Leagues (LeagueLab-backed rec sports — real structured per-game schedule data exists, but every "event" is a private team-vs-team matchup, producing hundreds of near-duplicate low-spectator-value entries; judged not a good fit for a community events calendar)
- 🔍 Investigating: Annex Theatre (Squarespace `/events` redirects to a single current-show page; NeonCRM events portal is a JS SPA with no server-rendered data) — revisit if they adopt a real events collection

## Source implementation: Science/education

- ✅ Added: **Seattle Astronomical Society** — custom `IRipper` against a Wix event-pages sitemap (`event-pages-sitemap.xml`) + per-page Schema.org `Event` JSON-LD, following the same pattern as the 8-Bit Brass Band ripper (PR #760). The club is regional (Puget-Sound-wide: Woodinville, Covington, Snoqualmie, Duvall, Bonney Lake, even a Goldendale dark-sky site), so the ripper requires an explicit `Seattle, WA` address and drops everything else, including the virtual/Zoom `APsig` meetup. That leaves three recurring Seattle event types: Board Meeting (open to the public, hybrid), Membership Meetup (Theodor Jacobsen Observatory, UW campus), and Lakewood Playground Star Party (Rainier Beach). 16 confirmed live future events, 0 errors, via `ONLY_SOURCE=seattle-astronomical-society npm run generate-calendars` — `sources/seattle_astronomical_society/`, `docs/source-candidates/seattle-astronomical-society.md`

## Source discovery: Food & drink, festivals/markets, comedy — extended rotation

- 💡 Candidate: **Ballard Comedy Takeout** — 🔥 High confidence, Eventbrite — weekly Thursday 8:30 PM open mic at Ballard Mandarin (5500 8th Ave NW, Ballard); verified via the public Eventbrite organizer events API (`organizerId: 121332375671`), 2 live upcoming dated events confirming the weekly cadence — `docs/source-candidates/ballard-comedy-takeout.md`
- ❌ Not Viable: We Heart Seattle — volunteer litter-cleanup nonprofit; "Calendar of Events" advertised on their subscribe page but the actual RSS feed (`weheartseattle.org/feed/`) is a WordPress blog/press-release feed, not dated public events
- ❌ Not Viable: GeekCraft Expo — geek-craft market touring multiple cities; Wix SPA with no server-rendered event data, and only one annual 3-day Seattle stop (Magnuson Park Hangar 30) — same category as the previously-rejected Punk Rock Flea Market
- ❌ Not Viable: Black Night Market — BIPOC-focused event producer (Juneteenth Night Market, Poetry After Dark, Soulful Festival); Squarespace confirmed but `/bnmeventschedule` is a static `typeName: page` with 0 items, no real events collection
- ❌ Not Viable: Ridgecrest Public House — genuine Squarespace food-truck/community events collection with per-event ICS export, but located in Shoreline, WA, not Seattle proper
- ❌ Not Viable (no scrapable feed, single annual date): Solstice Revelry (Pioneer Square/King Street Station Plaza, Seattle Office of Arts & Culture) — only listed via the city's Trumba `seattle.gov/event-calendar` widget, no dedicated site
- 🔄 Status fix: Beacon Hill Festival — already covered (`sources/recurring/beacon-hill-festival.yaml`, added 2026-05-25), no action
- ❌ Not Viable (already covered): Bite of Seattle, Seattle Center Festál, Seattle Christmas Market, Washington Brewers Festival (covered generically via `sources/seattle_center`), Reuben's Brews, Lucky Envelope Brewing, Washington Beer Blog, Seattle Beer Week, BBYC Ballard, South Lake Union Saturday Market
- ❌ Not Viable: Seattle karaoke bars (Rickshaw, Hula Hula, Ozzie's, Crescent Lounge, 4Bs Tavern, Rock Box) — nightly word-of-mouth schedules, no structured calendar/feed found for any; SeattleFoodTruck.com / Roaming Hunger / Street Food App — food truck locator aggregators (current locations), not dated event calendars
