Hazard Notifier Elira and Vance — A Two-AI Hazard Desk

2026 — ITDT LLC

Two AIs watch for hazardous events around the world and decide which ones are worth telling somebody about. One proposes, the other reviews, and what survives the review becomes a notification in the Hazard Notifier iOS app. It runs as a live stream, so the argument happens in public.

The point is lead time

Hazard Notifier has been reading feeds since 2013 and already ingests issued alerts on its own. Having an AI re-report those would add nothing at all.

The gap is everything that is not an issued alert yet — forecast discussion, outlook text, and ground-truth reports from people who saw something happen. That material is prose. It is written for humans, and no parser reads it.

On the desk's first live run it put a severe thunderstorm call on western New York, off a risk area, with nothing in force there. A formal watch discussion appeared for the same ground minutes later.

That lead time is the entire product. Everything below exists to make it trustworthy enough to act on.

Two AIs, with a chain of command

Elira Analyst. Runs the desk, proposes hazards, weighs the objection, and rules.
Vance Assistant. Helps her get it right, pushes back only when warranted, and does not decide.

Vance is an assistant, not a contrarian. Most cycles he agrees and adds something useful — context, a confirming detail, a check that nothing already covers it. He objects only when something is genuinely wrong: already covered, evidence that says less than she thinks, a severity the data does not support. Agreeing is the normal, correct outcome; hunting for an objection in order to look rigorous is not.

The review is not decorative. On that same first run, Vance caught a wind gust that sat below the notification threshold, and Elira downgraded her own call until it fell below the bar to send. The disagreement is the mechanism, and it is why there are two of them.

Once a hazard is settled, Vance looks ahead — scouting the same briefing for what is forming that nobody has called yet. That is deliberately not a proposal: it carries no event type and no severity, because Vance does not make calls.

Cloud or local, interchangeably

Both AIs are replaceable, and which model sits behind either role can change from one stream to the next. The roles and the protocol between them stay the same, so swapping the model underneath is a configuration change rather than a rewrite — which is the point, and the reason no particular model is named here.

The local option is not a toy: the wind-gust catch described above came from a locally run Vance, reasoning about a threshold and talking Elira down from her own proposal.

Memory, so it stops repeating itself

The desk once proposed the same storm in five consecutive cycles, each time as though it had never seen it before. Nothing carried across. The app's own duplicate check could not help, because it only knows what was published — it cannot know what the desk discussed and rejected, or what it settled just below the threshold to send.

So the desk keeps an episodic memory in FornixDB, the memory store built as a separate project here. It remembers the hazards it settled, the ones it refused, and what it has already talked about, and it reads that back at the start of each cycle. The dependency runs one way: the desk is simply a user of FornixDB, which knows nothing about hazards and was not changed to support any of this.

Staying out of the app's way

The desk's value is finding what nobody has covered, and "nobody" has to include Hazard Notifier itself. Before proposing anything, the desk reads what the app is already holding, so a viewer can see it working in a gap rather than on top of an alert people have already been sent. Re-proposing something already notified would send a second alert for the same hazard, which is how an alerting app teaches people to ignore it.

How severe is severe

Severity is Hazard Notifier's own 1–10 scale, and it is neither a confidence nor a probability. Low numbers are recorded but never sent. The middle of the scale is a real event and the floor for sending anything at all. Higher values progressively override a quiet-hours setting and then a user's own filters, which is a deliberate escalation ladder rather than a measure of how sure anyone is.

The AIs are told this explicitly, and every severity is clamped on the way out — a model once handed back 80, having read an "80 percent" probability as a severity.

Did it actually see anything first?

Every proposal is timestamped and positioned, so the question has an answer rather than an opinion. Each settled call is scored against the public alert record afterwards and lands in one of four buckets: something matching followed, and by how long; something matching was already live when the desk spoke, meaning it was behind rather than ahead; nothing agreed inside the window; or the call cannot be scored at all.

What that measures, and what it does not, is worth being blunt about. It measures agreement, which is a proxy for being right and not the same thing. The entire premise is finding hazards that alert readers would never produce — so a call nobody agreed with may be exactly the case this desk exists for, or it may be an invention, and the score cannot tell them apart. It reads as "nobody else agreed", never as "wrong".

Watching it happen

Each AI gets its own screen: one circle that breathes while that AI is speaking and goes still when it is not — amber for Elira, blue for Vance. Deliberately not a face. A person is hard to animate convincingly, and somebody glancing at the screen needs to know who is talking in under a second, which colour and motion do better than a portrait would. The map shows whatever they are working on.

The voices are for the people watching. Turn the audio off and not one verdict changes.

Sessions are periodic, not continuous.

Download Hazard Notifier on the App Store ▶ Live Stream Hazard Notifier → FornixDB →

Not an official source, and not affiliated with any weather or emergency agency. Some notifications can be wrong. In an emergency, follow your local authorities and your official weather or emergency service.