## Source discovery: Gaming / Collectibles

- ✅ Added: Cardfest Northwest — Custom HTML (Framer + ontreasure.com) — PR #TBD

## Source discovery: FarmersMarkets / Outdoors / Arts / Annual Events

Dead source check: HTTP 403 from deployed site (known infrastructure issue, consistent with prior days). No dead sources confirmed.

### Searches conducted

1. **Outdoor events ICS** — Seattle Storm/Seahawks (already covered via Ticketmaster), Events12 (already `events12`), Visit Seattle (already covered).
2. **Comedy open mic ICS** — Emerald City Comedy Club (already `emerald_city_comedy`, PR #268). Seattle Comedy Underground (already `comedy_underground`). Club Comedy (already `club_comedy`).
3. **Film festival** — SIFF (already `siff`). No new ICS feeds found.
4. **New venues 2025/2026** — Emerald City Music (classical concerts; couldn't load calendar), Hidden Hall (still "launching soon").
5. **Arts ICS** — SeattleArtists.com calendar (couldn't determine ICS export). Abbey Arts/Fremont Abbey (Eventbrite organizer `11933347765` shows only 1 upcoming event — newsletter signup, not viable).
6. **Farmers markets** — Found **Queen Anne Farmers Market** (every Thursday, 3–7:30 PM, May–October) not yet in sources. Confirmed via qafm.org.
7. **Annual events (ideas.md)** — Seattle Street Food Festival (Aug 22–23, 2026 confirmed; year-to-year pattern unclear), Seattle Christmas Market (Nov 20–Dec 24 daily; recurring YAML over-generates for partial months), Seattle World's Vintage Fair (2nd Saturday of May; 2026 already passed).
8. **Vintage/antique markets** — Seattle World's Vintage Fair (annual, already passed May 9).

### Implementation

Implemented **Queen Anne Farmers Market** as new recurring source:
- Every Thursday 3:00–7:30 PM, May–October
- Location: W Crockett St & Queen Anne Ave N, Seattle (Queen Anne neighborhood)
- 2026 season: May 28–October 8
- Tags: FarmersMarket, QueenAnne

### Candidate file updates

| Candidate | Status | Notes |
|-----------|--------|-------|
| Queen Anne Farmers Market | New → `added` | `sources/recurring/queen-anne-farmers-market.yaml` |
| Seattle Street Food Festival | New → `candidate` | Aug 22–23 2026 confirmed; year-to-year pattern unclear |
| Seattle Christmas Market | New → `candidate` | Nov 20–Dec 24 daily; complex date range for recurring YAML |
| Seattle World's Vintage Fair | New → `candidate` | 2nd Saturday of May annual; 2026 passed |

- ✅ Added: Queen Anne Farmers Market — recurring YAML — PR #524
- ✅ Added: Northwest Folklife Festival — recurring YAML — PR #TBD
- 💡 Candidate: Seattle Street Food Festival — recurring YAML — https://206nightmarkets.com/street-food
- 💡 Candidate: Seattle Christmas Market — recurring YAML (complex) — https://seattlechristmasmarket.com/
- 💡 Candidate: Seattle World's Vintage Fair — recurring YAML — https://www.seattleworldsvintagefair.com/

## Source implementation: Northwest Folklife Festival

Implemented `sources/recurring/northwest-folklife-festival.yaml` for the annual free folk arts festival at Seattle Center over Memorial Day weekend (4 days: 4th Friday–Monday of May).

- **Date pattern**: `"4th Friday/Saturday/Sunday/Monday"` of May (months: [5]) — the 4th Friday of May is always 3 days before Memorial Day (last Monday of May). Verified mathematically across 2024–2028.
- **Geo**: Seattle Center (lat 47.6205, lng -122.3493, same as Bumbershoot)
- **Tags**: Music, Arts, Community, QueenAnne
- **Next occurrence in build window**: May 28–31, 2027 (within 12-month build window from June 2026)

## Source-from-event: community poster-board photo

A user submitted a photo of a community poster kiosk (~15 event posters). Ran
`event-lookup` against published production data for every legible poster.

**Already covered (no action):**
- Seattle Vice → The Triple Door (`triple-door`)
- Wallingford Kiddie Parade (Sat Jul 4) → Seafair Community Events
  (`external-seafair`, titled "Wallingford Parade")
- PrideFest / Bellevue Family 4th / civic Jul-4 events → surfaced generically
  via events12 / Seafair / Seattle Center aggregators

**Uncovered venue gaps (investigated, not implementable today):**

- 🔄 Status fix: **Cornish College of the Arts** — `notviable` → `candidate`.
  The old "Localist `groups` filter doesn't work" finding is corrected: the
  Localist **JSON API filters correctly with the numeric `group_id`**
  (`50276813607690`) — unfiltered SU instance = 43 upcoming/120d, Cornish-filtered
  = 1. Not implemented yet because the group currently has ~0 *listable*
  upcoming events (summer lull; public shows ticket via Cloudflare-blocked
  Ludus). Implement as a custom Localist `JSONRipper` once the academic-year
  calendar populates.
- 🔄 Correction (follow-up): **Seattle Symphony / Benaroya Hall** — the venue is
  **already partially covered**. A `benaroya_hall` Ticketmaster ripper
  (`sources/benaroya_hall/ripper.yaml`, both halls, `expectEmpty: true`) exists
  but is **empty** — it sits in production's `expectedEmptyCalendars` because the
  Symphony tickets via **Tessitura**, not Ticketmaster, so the Ticketmaster venue
  query returns ~0 events. The earlier "confirmed not covered anywhere" note was
  wrong; corrected in `seattle-symphony.md`.
  - **Viable feed found:** the calendar is a Sitecore JSS app backed by a
    **public Sitecore GraphQL endpoint** (no bot protection, client-embedded api
    key): `…/sitecore/api/graph/items/web?sc_apikey=382CF404-…`. Events live under
    `/sitecore/content/Shared Content/Events/YYYY/MM/<slug>` (template `Event
    Page`); performance dates are child `Performance` items with a `Date` field
    (ISO UTC, e.g. `20260920T010000Z`); venue resolves via a `Venue` GUID →
    `Global Settings/Locations`. Status bumped `investigating` → `candidate` with
    the full implementation recipe. Recommended: implement a GraphQL `JSONRipper`
    and retire/replace the empty Ticketmaster `benaroya_hall` source.
