Inspiration

Two CAL FIRE reports for the Gifford Fire on August 24, 2025 show the same San Luis Obispo County zone, SLC-222, under evacuation orders in the morning and warnings that evening. The forest closure notice remains. This historical example shows why a changed status deserves source review before planning assumptions change. The morning report and evening report are public; this example is separate from the simulated app walkthrough.

An inspection coordinator can review a post-wildfire plan and then receive a changed official notice. A summary alone does not show which tasks depend on that change, who checked its relevance, or whether the earlier decision still applies. I built FireAfter Sentinel to keep those connections visible for an analyst, a commander and a briefing viewer.

What it does

Sentinel connects cited source changes to inspection proposals and human decisions. An analyst compares earlier and later evidence, reviews claim support, applicability and conflicts, and prepares tasks using authored crew capabilities, durations and time windows. Deterministic code checks whether a complete feasible assignment exists. A commander then reviews the exact proposal and evidence before making a separate decision. A viewer can inspect history and prepare a redacted JSON or printable HTML briefing.

The central behavior is approval tied to its evidence: a decision retains its original revision and review basis, while changed inputs require a fresh check. If a committed response is lost, recovery looks up the original command receipt. It does not silently send another decision. A briefing preserves the relevant references and limitations; it does not authorize field dispatch.

How I built it

Next.js, React and TypeScript provide the workspace. Supabase Auth and PostgreSQL/PostGIS enforce roles, scope and revision checks. Workflow SDK coordinates admitted evidence jobs. Tavily Search/Extract retrieves bounded public-source material, and NVIDIA nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B through Nebius Token Factory produces structured source-local claims and comparisons.

I use Nano for bounded interpretation behind strict schema, exact citation and token-usage checks. Deterministic code owns constraints and approval eligibility; the model cannot approve a proposal. Token Factory supplies inference without my provisioning a GPU. I have not run a controlled comparison demonstrating that this variant is superior to other models.

A retained authenticated local SDK run completed real Tavily retrieval, Nemotron claims/comparison and database publication. Its incident remained unresolved and its proposal was rejected. That provider result is separate from the fictional approval walkthrough; it does not establish an approved operational plan.

Challenges and verification

The difficult cases were changed evidence, concurrent decisions, a lost response after commit, and recovery without duplicate writes. On the published source, focused tests passed 14 tokenizer cases and 103 unit/component cases. A clean consumer installation built the production app and verified its compiled artifacts. These are bounded technical results, not a field evaluation.

Local native Auth/database checks exercised all three roles. A keyboard-driven synthetic decision test deliberately lost the committed response, recovered the original receipt without another decision POST, and retained exactly one decision and receipt after restart. A separate database test rejected evidence that expired during a lock wait and accepted a still-valid control. Earlier failures remain in the evidence records.

Demonstration and media

The public 2-minute 51-second video is narrated in my own voice. It opens with actual historical CAL FIRE report excerpts, then shows source review, authored constraints, a separate commander decision and verified viewer briefing using explicitly synthetic records. A separate retained provider result follows. Local editing aligned the scenes with my narration, shortened pauses and normalized the audio; no synthetic voice or voice cloning is used. The historical reports are context, not the inputs processed in the app footage.

The gallery includes unaltered synthetic product captures and a separately labeled retained provider result. Historical screenshots retain their draft-state captions. The cover is AI-generated conceptual artwork, not a product screenshot. Codex assisted with implementation, debugging, test automation, documentation and demo preparation. Automated checks are not presented as practitioner feedback.

Existing foundation and new work

I built Sentinel on my existing FireAfter foundation in a separate repository and local database. Inherited maps, queues, source status, scoring, audit and recovery are credited to that foundation. Sentinel work began October 11, 2026 and adds evidence/claim lineage, applicability and conflict review, source-change resolution, constrained proposals, revision-bound decisions and verified briefing preparation. PROVENANCE.md distinguishes the contributions. Sentinel is MIT-licensed with retained third-party notices.

Public source: https://github.com/vijay-v-bhoyar/fireafter-sentinel

Exact published revision: https://github.com/vijay-v-bhoyar/fireafter-sentinel/tree/e306af607a500e19a412256d629e2b93d510aa26

The Windows/WSL source-based test-build, setup guide and integrity checker are available at https://github.com/vijay-v-bhoyar/fireafter-sentinel/releases/tag/prototype-docs-20261029. Its anonymous download and source hashes have been verified. This documentation refresh preserves the application code from edc73a5, the revision used for the retained exact-source synthetic workflow checks. It requires local setup and is not a hosted application. The release notes describe the staged checks and their limits.

What I learned and what remains

A useful model response still needs immutable evidence, explicit unknowns, human authority and recoverable decisions. The intended benefit is fewer missed evidence changes during review and handoff. I have not measured time saved, adoption or safety performance.

This entry is a limited local decision-support prototype. The synthetic three-role walkthrough and the separately retained real-provider run are the demonstrated scope. Practitioner validation, measured benefits, complete source applicability, an approved provider-backed briefing and SDK crash recovery after a provider response remain unqualified. Deployment and hosted database remain on hold. I do not claim operational dispatch, safety certification or beta readiness.

Built With

Share this project:

Updates

Submission history