Goal
Add a current-session St. Louis Board of Aldermen scraper using official city pages, normalized into the shared local-government contract from #181.
Official sources
Scope
- Discover only the active aldermanic session (currently 2026–2027); do not crawl archives.
- Ingest full-board/committee meetings, agenda/minutes/packet URLs, Board Bills, resolutions, sponsors, titles, actions/status, and videos.
- Preserve stable agendaViewID/session/bill identifiers and source citations.
- Normalize into shared meeting/document/agenda-item/vote tables; serve cached data only.
- Do not use AI/OCR when structured HTML is available.
Acceptance criteria
- Fixtures/tests cover active-session discovery, agenda-to-bill linking, revised documents, sponsors, and session boundaries.
- Retry/backoff, low concurrency, hashes/versioning, idempotent upserts, env contract, and docs.
- Scraper/API/DB checks pass. No credentials required.
Goal
Add a current-session St. Louis Board of Aldermen scraper using official city pages, normalized into the shared local-government contract from #181.
Official sources
Scope
Acceptance criteria