Maharashtra Civic Alerts

Codex Build House · Pune · Briefing

Maharashtra Civic Alerts

महाराष्ट्र नागरी सतर्कता

A bilingual public-information hub that shows official warnings by district, says how fresh each source is, and refuses to treat silence as safety.

36Districts indexed
5Official sources tracked
12Citizen-service directories
EN + MROriginal text, no AI rewrite
  1. 01 Problem vs today’s tools
  2. 02 What the hub returns
  3. 03 Source coverage matrix
  4. 04 Operating model
  5. 05 Place-resolution table
  6. 06 Resident information model
  7. 07 Public limits
  8. 08 Review path

Problem

Residents should not have to guess which feed is live

Gap analysis
Resident question Typical today Failure mode What this hub answers
Is this source live? Empty map or last screenshot Stale data looks like all-clear Per-source freshness and status
Where does it apply? City or village name on a poster Wrong district, false precision District alias, dual-candidate when needed
What should I do? Scattered agency pages Instructions rewritten or dropped Original CAP text, EN/MR labelled
Who issued it? Reposted WhatsApp card Lost attribution Source identity + official directory
Is the warning still on? Old graphic stays in chat Cancelled alert still believed Actual / Update / Cancel / expiry

Solution

One session returns status, place, bulletin and services

What a resident can finish in one visit
Step Input Output Honesty rule
1. Identify the site — Independent banner + NDMA SACHET link Not a government website
2. Read latest status — healthy / degraded / stale + source ages Partial coverage is expected
3. Find a place Pune, Sawantwadi, Navi Mumbai, Marunji District ID(s), precision = district-alias No invented village polygons
4. Read the bulletin District filter Active Actual records only 0 alerts ≠ all-clear
5. Open services Power, water, health, transport… Official portal + live vs directory label Directory is not a live incident feed

Coverage matrix

Five official sources, two intentionally disconnected

Production source model
Source Kind Runtime What is stored Resident meaning
SACHET / NDMA CAP Public warnings Connected CAP lifecycle + retained cancels Primary official bulletin
IMD Weather notices Connected Official text only No invented severity
INCOIS Ocean / quake Connected Arabian Sea relevant events Pacific quakes excluded
CWC FloodWatch Flood Disabled No adapter Use official directory
CPCB AQI Air quality Disabled No key / not enabled Concentration ≠ AQI warning

Operating model

Read-only relay: collect, retain, expire, never invent

  1. 01

    Cron every minute + heal-on-read if stale

  2. 02

    Bounded collectors, byte/time limits, lease

  3. 03

    CAP Actual / Update / Cancel / expiry

  4. 04

    D1 snapshot, token-owned write

  5. 05

    Public GET APIs + bilingual UI

Runtime constraints
Control Rule
Host Cloudflare Workers + D1. No Vercel. No public refresh POST.
Recovery Background ingest when enabled sources are older than 5 minutes, 60s cooldown.
Fixtures npm run demo only. Production rejects demo mutation routes.
Empty bulletin UI states it is not an all-clear. Call 112 in danger.

Place resolution

Typed names resolve to districts, not village polygons

Verified production lookups
Query Result Precision Why it matters
Pune Pune district Direct district match
Navi Mumbai Raigad and Thane district-alias Resident must pick one
Sawantwadi Sindhudurg district-alias Town ≠ verified ward
Marunji Pune district-alias Place maps to district only
Panaji No Maharashtra match — Goa is excluded on purpose

Information model

What the resident can actually know

Surfaces and data, not screenshots
Surface Fields shown Not shown
Latest status Overall mode, generation time, polling interval Guarantee that the area is safe
Source health ok/stale/disabled, last success, error class, record count Raw upstream bodies or keys
Bulletin Issuer, area, class, original instructions, expiry AI paraphrase, village polygons
Citizen services 12 categories, official URL, live vs directory Statewide live power/water/AQI feeds
Phone guide How to check device government-alert settings A button that sends a cell broadcast

Limits

Public “does / does not” so the demo cannot overclaim

Scope control
Does Does not
Relay official public feeds with attribution Speak as government or dispatch 112
Keep cancel/expiry so old warnings die Send carrier cell broadcast / WEA
Map places to 36 Maharashtra districts Claim complete village or ward coverage
Label CWC/CPCB as disconnected Invent flood or AQI alerts
Offer a labelled local fixture demo Seed production with test alerts
Preserve original EN/MR wording Rewrite emergency instructions with a model

Review path

Open these in the review

Judge sequence: identity banner → latest status → Navi Mumbai dual district → Marathi → source health → npm run demo only if live feeds are empty.

1 / 9