Skip to content

Add disabled Missouri SOS election scraper - #188

Merged
ThatXliner merged 3 commits into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-sos-election
Jul 28, 2026
Merged

Add disabled Missouri SOS election scraper#188
ThatXliner merged 3 commits into
codex/nc-tx-scrapers-consolidatedfrom
codex/missouri-sos-election

Conversation

@ThatXliner

@ThatXliner ThatXliner commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Status

Intentionally disabled. The implementation, parser, and config live under
apps/scraper/src/scrapers/disabled. It is absent from the runnable scraper
registry, active environment contracts, setup documentation, and source-limit
registry, so all and direct CLI selection cannot run it.

Activation is deferred until election snapshot storage is provisioned in the
target database and the data is connected to a product surface.

Preserved implementation

  • current-2026 Missouri SOS candidate, withdrawal, ballot-measure, and result
    discovery
  • privacy-preserving parsing that excludes addresses/contact fields and
    voter-level data
  • deterministic fixtures and parser tests
  • API reader and source-contract work retained for later integration
  • revival steps documented in scrapers/disabled/README.md

Verification

  • pnpm --filter @acme/scraper typecheck
  • pnpm --filter @acme/scraper test — 31 tests passed
  • git diff --check

Preserves the implementation work for #186 without enabling unused ingestion.

@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 28, 2026 6:38am

@ThatXliner

Copy link
Copy Markdown
Collaborator Author

Source inventory and app-presentation follow-up

Official sources added

This PR adds current-2026 election ingestion from the Missouri Secretary of State:

  • dynamically discovered primary/general calendar
  • cumulative certified candidates in ballot order
  • certified withdrawals/removals
  • certified measures with official/fair language
  • fiscal statements and full-text/certificate links
  • ShowMO Votes discovery with an explicit unavailable state until active results appear

Candidate addresses/contact fields and voter-level data are deliberately excluded. Records retain official URLs, hashes, versions, timestamps, and citations. No schema change is added.

App status and proposed presentation

The Missouri reader exists, but Expo does not call it and currently blocks all non-California ballots.

  • Use Google Civic/address resolution for the election and ballot order, then merge Missouri SOS data only on a safe state/date/cycle/contest match.
  • Show candidates and measures in the existing ballot tabs while preserving official order.
  • Label “Official Missouri SOS,” source URL, fetched time, and certification.
  • Keep official/fair language and fiscal statements as separately labeled source text.
  • Clearly mark withdrawals and never expose discarded contact/address fields.
  • Until ShowMO Votes publishes results, show “Official results are not available yet”; afterward label unofficial/certified and reject stale-cycle results.
  • Fall back to Civic data when an official match is uncertain rather than guessing.

CLI registration does not provide continuous collection; deployment still needs a scheduled job.

@ThatXliner ThatXliner changed the title Add Missouri SOS current-cycle election ingestion Add disabled Missouri SOS election scraper Jul 28, 2026
@ThatXliner
ThatXliner marked this pull request as ready for review July 28, 2026 06:37
…d' into codex/missouri-sos-election

# Conflicts:
#	apps/scraper/src/scrapers/disabled/README.md
@ThatXliner
ThatXliner merged commit 424d7b0 into codex/nc-tx-scrapers-consolidated Jul 28, 2026
1 of 2 checks passed
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