What shipped
- A dependency-free local web dashboard that runs with
npm start. - Seeded watchlist with 8 pilot jurisdictions and 12 source records.
- Alert inbox with filters for jurisdiction, status, source type, issue, confidence, and deadline window.
- Radar item detail panel with source evidence, structured fields, timeline, resident questions, recommended actions, and uncertainty flags.
- Manual source intake that runs local deterministic detection.
- Weekly change brief view.
- Markdown, CSV, and JSON export helpers.
- Local smoke test at
npm run smoke.
Architecture
- Static HTML/CSS/ES modules plus a tiny Node static server, avoiding install friction and external credentials.
localStoragepersistence for demo state and resettable seed data.- Shared detection/export modules used by both the browser UI and smoke test.
- Deterministic keyword scanning instead of live LLM or scraping, matching the brief's conservative first-pass requirement.
- Source-linked claims and explicit unknown fields to avoid overstating uncertain facts.
Trimmed scope
- No Express API, SQLite, Vite, or React; the app is smaller and easier to inspect locally.
- No live agenda, bill, utility, RSS, or news adapters.
- No PDF extraction, auth, teams, billing, notifications, or email delivery.
- No model-backed summarization.
- Seed URLs are demo placeholders rather than verified live public records.
Limitations
- Keyword detection cannot reliably identify code names, shell companies, or indirect industrial references.
- Demo source records need replacement with verified source URLs before public use.
- Local browser storage is not multi-user and has no audit trail.
- Deadline sorting is only as good as source-provided dates.
- The UI generates resident questions and research prompts, not testimony or factual impact conclusions.
Verification
Run:
``bash npm run smoke ``
Expected result:
``text Smoke test passed: seed load, detection, filtering, detail model, manual source detection, and exports. ``
Suggested next steps
- Add a file-backed JSON store or SQLite layer for repeatable operator use.
- Replace demo URLs with verified source records from the stage-1 report.
- Add agenda/PDF intake for pasted text plus local file extraction.
- Add adapter interfaces for Legistar, Granicus, Novus, state bill trackers, and utility dockets.
- Add a reviewed weekly brief workflow with saved snapshots and source-change diffs.
- Add optional email digest rendering after source quality checks are in place.