Skip to content

Add Missouri General Assembly XML bills#189

Draft
ThatXliner wants to merge 1 commit into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-legislature
Draft

Add Missouri General Assembly XML bills#189
ThatXliner wants to merge 1 commit into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-legislature

Conversation

@ThatXliner

Copy link
Copy Markdown
Collaborator

Summary

  • discover active Missouri regular and enabled special sessions from the official SessionSet.js descriptor
  • ingest changed House bills from BillList.XML plus the individual official bill XML exports
  • ingest SenateActList.XML only as explicitly labeled Senate-bills-with-House-actions coverage
  • preserve sponsors, actions, committees, proposed effective dates, votes, documents, official URLs, and source-version history in the existing shared Bill contract
  • enforce the official 30-minute polling floor with a durable CivicApiCache lease and cap official bill requests at concurrency 2
  • expose current Missouri rows through the shared content.stateBills API while retaining content.texasBills compatibility
  • keep Open States identity matching optional and avoid all schema/migration changes

Verification

  • pnpm --filter @acme/scraper test (31 tests)
  • pnpm --filter @acme/scraper build
  • pnpm --filter @acme/api test (18 tests)
  • pnpm --filter @acme/api typecheck
  • pnpm --filter @acme/api lint
  • pnpm --filter @acme/api format
  • pnpm --filter @acme/db typecheck
  • pnpm --filter @acme/db lint
  • pnpm --filter @acme/db format
  • CI=1 pnpm build
  • git diff --check

Closes #184

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
billion-nextjs Ready Ready Preview, Comment Jul 22, 2026 4:15pm

@ThatXliner

Copy link
Copy Markdown
Collaborator Author

Source inventory and app-presentation follow-up

Official sources added

This PR ingests current Missouri General Assembly data from official XML endpoints:

  • SessionSet.js for active regular/special sessions
  • House BillList.XML and individual bill XML exports
  • SenateActList.XML specifically for Senate bills with House actions

Stored fields include bill identity/caption, chamber/session, sponsors, subjects, committees, actions, proposed effective dates, votes, documents/URLs, and source-version history. It enforces the official 30-minute polling floor and concurrency two; Open States matching is optional.

Important scope: House coverage is strong, while the Senate feed is Senate bills with House actions, not a complete Senate inventory. The product must not imply otherwise.

App status and proposed presentation

The backend adds shared content.stateBills support, but Expo has no consumer. The existing “Local Bills” component represents municipal Legistar data and should remain separate.

  • Add Your State Legislature, resolved from the user's state.
  • Default to the current session and show bill number, chamber, session type, status/latest action, sponsor, and update time.
  • Detail should show caption/description, sponsors, subjects, committees, action timeline, votes, official documents, and source/fetched time.
  • Badge special sessions.
  • Label Senate-origin entries as “House-action feed” until complete Senate coverage exists.
  • Share state-legislation components with Texas while preserving source-specific coverage notes.
  • Distinguish no bills, coverage limitations, and stale collection in empty/error states.

The 30-minute lease protects upstream polling but does not initiate runs; production still needs a scheduler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant