← Back to Daily Builds

Daily build note · May 20, 2026

Data Center Docket

A civic intelligence product that tracks AI/data-center proposals through city councils, county commissions, planning boards, utility proceedings, zoning packets, public-comment deadlines...

Civic / Political Tracking Tools Runnable local MVP built Public demo coming soon

What shipped

A runnable local MVP for Data Center Docket, implemented directly in this build directory. The app is a civic operations dashboard that ingests seeded and manual source records, runs deterministic data-center/procedural detection, groups sources into project dossiers, and exposes deadline-aware inbox, detail, digest, settings, and export views.

Core files:

  • src/server.js: local HTTP server, API routes, static app serving, export routes.
  • src/seed.js: seeded jurisdictions and source records.
  • src/detection.js: deterministic term detection, confidence scoring, and issue tagging.
  • src/dossiers.js: source grouping, dossier creation, status assignment, timelines, uncertainty flags, recommended actions.
  • src/exports.js: CSV and Markdown export renderers.
  • src/storage.js: local JSON persistence and seed reset.
  • public/app.js, public/styles.css, public/index.html: dependency-free dashboard UI.
  • scripts/smoke.js: lightweight end-to-end verification.

Architecture

  • Used dependency-free Node.js instead of Express/Vite/SQLite so the sandbox runs immediately without package installation or network access.
  • Kept domain logic in separate modules so a future Express, SQLite, React, or adapter layer can replace the transport/UI without rewriting detection and dossier behavior.
  • Used local JSON persistence at data/docket-store.json for inspectable demo state.
  • Kept summaries deterministic and source-cited rather than adding live LLM calls.
  • Treated official, media, social, and user-supplied evidence separately in both data and UI.

Trimmed scope

  • No live scraping, PDF extraction, RSS ingestion, Legistar/Granicus/Novus adapter, or utility docket integration.
  • No user auth, teams, billing, real alert delivery, or email/Slack digest.
  • No real impact modeling for power, water, tax, emissions, jobs, or legal conclusions.
  • No external APIs or secrets.
  • No Claude, Anthropic, OpenRouter, or Claude API/CLI usage.

Suggested next steps

  1. Replace JSON persistence with SQLite and add migration scripts.
  2. Add adapter interfaces for Legistar, Granicus, Novus, RSS, and local PDF text extraction.
  3. Add source snapshot diffing to power stronger "what changed" timelines.
  4. Add evidence assertions so each summary sentence can link to specific source IDs.
  5. Add a Markdown/email digest renderer for weekly public sample reports.
  6. Add reviewed jurisdiction configs for Nashville, Memphis, TVA/utility proceedings, and Tennessee planning bodies.
  7. Add browser-level UI tests once Playwright or the Browser plugin workflow is part of the build environment.