Goal
Add a current-cycle Kansas City Council scraper using the official Legistar portal and provider-neutral local-government contract from #181.
Official sources
Scope
- Limit discovery to the Council primary legislative body and current council/election cycle; no historical backfill.
- Ingest meetings, cancellations/amendments, locations, agenda/packet/minutes documents, videos, items, legislation references, actions, outcomes, and named votes.
- Prefer structured Legistar endpoints and stable Event/Item/Vote IDs.
- Persist into the shared meeting/document/agenda-item/vote tables and serve cached rows through the existing API.
Acceptance criteria
- Fixtures/tests cover Central Time/DST, regular/special/cancelled meetings, revisions, document replacement, actions, and votes.
- Shared retry/backoff, conservative concurrency, hashes/versions, idempotent upserts, env contract, and docs.
- Scraper/API/DB checks pass. No credentials required.
Goal
Add a current-cycle Kansas City Council scraper using the official Legistar portal and provider-neutral local-government contract from #181.
Official sources
Scope
Acceptance criteria