Inspiration

Surviving a disaster is step one; surviving the administrative aftermath is step two. Displaced households face severe cognitive overload while organizing damaged property, tracking deadlines, and coordinating aid. Mend eliminates this clerical paralysis by letting browser agents structure chaotic facts into clear action plans, while keeping people firmly in charge of every consequential decision.

What it does

  • Conversational intake: Extracts verified incident facts, accessibility needs, and housing constraints from plain English descriptions.
  • Factual evidence ledger: Logs damage, communications, and deadlines without fabricating unconfirmed details.
  • Prioritized recovery plans: Stages 1–6 tasks categorized into now, next, and later, citing official Ready.gov, FEMA, and American Red Cross guidance.
  • Strict human review gate: The agent stages plans as pending_review and focuses the review form, but cannot self-approve; the user must manually confirm or request changes.
  • Safe communication drafting: Prepares copy-only message drafts for landlords or insurers without outbound network transports.
    • Activity audit: Records every state change, clearly distinguishing human actions from agent proposals.

How we built it

  • Application core: React 19, TypeScript, and Vite single-page application styled with WCAG AA design tokens and calm microcopy.
  • Shared command layer: Zustand store with versioned localStorage persistence. UI events and WebMCP tools route through the exact same validated command pipeline.
  • Runtime validation: Shared Zod schemas enforce string limits, strict enumerations, and grounded dates before mutations occur.
  • Native WebMCP integration: Registers five state-aware imperative tools via Chrome’s document.modelContext and one declarative review form (start_plan_review) omitting toolautosubmit.
  • Static deployment: Netlify static hosting with strict CSP, Permissions-Policy: tools=(self), and zero remote backend or PII storage.

Challenges we ran into

  • Enforcing authority boundaries: Ensuring an agent cannot bypass the human approval gate via tool calls or synthetic form submissions.
  • Preventing deadline hallucination: Implementing domain invariants that reject plan dates unless backed by a grounded case record.
  • Managing dynamic tool lifecycles: Using AbortController to cleanly tear down and re-register tools across empty, safety-paused, active, and pending-review states.

Accomplishments that we're proud of

  • Private by default: Completely local-first with zero accounts, cookies, analytics, or remote data retention.
  • Complete WebMCP collaboration loop: A functional two-way interaction using typed imperative tools, dynamic availability, and a declarative review form.
  • Calm, stress-informed design: Clear visual hierarchy, accessible 44px targets, and restrained language without high-anxiety alerts.
  • Deterministic invariants: Robust test suites proving that safety blocks cannot be bypassed and stale plan versions cannot be approved.

What we learned

  • Declarative WebMCP forms provide a reliable pattern for high-stakes workflows by staging actions and handing physical agency back to the human.
  • Dynamic tool registration dramatically reduces agent failures by exposing only tools valid for the current state machine.
  • A single, shared command pipeline prevents UI and agent state drift without duplicate business logic.

What's next for Mend - a local-first recovery workspace

  • Optional passwordless, end-to-end encrypted cloud backup via Supabase for displaced families switching devices.
  • Standardized, non-identifying PDF/CSV documentation exports formatted for FEMA and insurance adjusters.
  • Dynamic ingestion of local emergency declarations, municipal relief grants, and shelter capacity feeds.
  • Multi-phase tracking for long-term structural repairs, contractor bids, and assistance appeals.

Built With

Share this project:

Updates

Submission history