{
  "ok": true,
  "schema": "kelly-sector-lab-window-v1",
  "lensId": "weather-disaster",
  "service": "Weather and Disaster Lab",
  "shortName": "Weather Lab",
  "accent": "#5cc8ff",
  "domain": "weather risk, geography, hazards, and disaster signals",
  "positioning": "A professional KELLY lens for local and global hazard forecasts that can be checked against official reality.",
  "userPromise": "See live source posture, short-term risk checks, medium-term hazard watches, and long-term climate/disaster signal hypotheses.",
  "kellyEdge": "KELLY keeps location context, public source evidence, forecast confidence, reality closure, and replay proof separate so weather risk does not become vibes.",
  "profile": {
    "windowLabel": "Your weather & hazard view",
    "windowRole": "Live risk checks from NOAA, NWS, and public hazard feeds",
    "workflowTitle": "How KELLY tracks weather risk with proof",
    "pulseTitle": "Live source check",
    "askTitle": "Ask about weather or disaster risk",
    "questionLabel": "Your weather question",
    "evidenceLabel": "Live updates",
    "evidenceTitle": "Official alerts, forecasts, and proof-linked readings",
    "sourceTitle": "Official sources we watch",
    "outputTitle": "What you can see here",
    "objectTitle": "Technical objects",
    "receiptTitle": "Proof receipts",
    "stageLabels": [
      "read sources",
      "find your area",
      "forecast risk",
      "check reality"
    ],
    "operatorObjects": [
      "region",
      "hazard_type",
      "source_freshness",
      "closure_window"
    ],
    "receiptObjects": [
      "official_alert_receipt",
      "observation_receipt",
      "forecast_delta",
      "settlement_receipt"
    ],
    "askBoundary": "Education and forecasting only — not emergency, evacuation, medical, or safety authority. Always follow official alerts."
  },
  "canonicalPostgres": "Use canonical KELLY Neon/Postgres for hazard_observations, region_context, forecast_deltas, source_freshness, closure_windows, settlement, and calibration state.",
  "objectStorage": "Use R2/object storage for immutable forecast packets, alert snapshots, map/source bundles, and replay receipts.",
  "volumePolicy": "Optional local volume only for rebuildable map tile, geocoder, and model cache. It must never become canonical hazard memory.",
  "operatorQuestion": "What is the overall weather risk for my region over the next 24 hours?",
  "primaryProofTarget": "24-hour local hazard closure",
  "primaryHorizon": "Next 24 hours",
  "primarySignal": "NOAA/NWS alert, current observation, water/weather update, closure receipt",
  "pipeline": [
    "Read approved weather, water, fire, geography, and hazard sources with source freshness preserved.",
    "Separate observation, region, hazard type, forecast horizon, uncertainty, and official alert authority.",
    "Emit hazard watch cards, source freshness receipts, forecast deltas, and closure windows.",
    "Route settled official outcomes into replay, calibration, and memory-lineage eligibility without becoming emergency authority."
  ],
  "outputs": [
    "hazard_forecast_card",
    "hazard_watch_cards",
    "source_freshness_receipts",
    "regional_risk_context",
    "forecast_delta_receipts",
    "official_outcome_closure_candidates"
  ],
  "runtimeRoutes": [
    {
      "label": "Lens forecast showcase",
      "url": "https://www.causalea.com/api/lens/forecast-showcase?tags=weather,disaster,hazard&limit=6"
    },
    {
      "label": "Weather library summary",
      "url": "https://kelly30-production.up.railway.app/api/weather-disaster-library/summary"
    },
    {
      "label": "Brain HazardForecastCard",
      "url": "https://kelly30-production.up.railway.app/api/weather/hazard-forecast-card?template=weather_risk"
    },
    {
      "label": "Glass Lab live snapshot",
      "url": "https://www.causalea.com/api/glass-lab/live-snapshot"
    },
    {
      "label": "Public proof map",
      "url": "https://www.causalea.com/api/public-proof-map"
    }
  ],
  "sources": [
    "NOAA and National Weather Service",
    "NOAA water and hydrology APIs",
    "NASA hazard and earth observation feeds",
    "GeoNames location context",
    "Open-Meteo and public weather feeds"
  ],
  "proofPoints": [
    "Private user location can guide a personal view without writing Prime ground truth.",
    "Prime KELLY stays worldwide and source-governed.",
    "Forecasts must name source freshness and uncertainty.",
    "Reality closure checks official outcomes, not user preference."
  ],
  "humanAudit": {
    "plainPurpose": "This window shows what KELLY is doing in Weather Lab: what it is reading, what it thinks might matter, what proof exists, and what is still waiting.",
    "howToAudit": [
      "Read the answer in this lab first.",
      "Open the proof shelf or JSON packet for the evidence behind it.",
      "Check the route status and last-checked timestamp before trusting freshness.",
      "Look for the mind-changer: the fact that would make KELLY revise the answer.",
      "If evidence is waiting, treat the output as a question or watch item, not a settled answer."
    ],
    "evidenceStatus": "Live evidence appears only when KELLY exposes proof-linked sector output. Empty states are intentional waiting states, not filler.",
    "mindChanger": "New approved evidence, a falsifier, settlement, replay drift, calibration movement, or memory-lineage revision.",
    "writeBoundary": "This lab communicates with KELLY as an inspection window. It cannot write ground truth, memory, GraphState, provider state, or reality receipts."
  },
  "tracks": [
    {
      "id": "weather-disaster-preset-1",
      "title": "24-hour local hazard closure",
      "horizon": "Next 24 hours",
      "question": "What is the overall weather risk for my region over the next 24 hours?",
      "value": "Short-term proof that KELLY can track fast-changing reality from approved public feeds.",
      "signal": "NOAA/NWS alert, current observation, water/weather update, closure receipt",
      "artifact": "artifact pending until KELLY emits proof",
      "consumerTitle": "Today's weather near you",
      "consumerBlurb": "Rain, wind, and local risk for the next 24 hours — from NOAA and public feeds."
    },
    {
      "id": "weather-disaster-preset-2",
      "title": "Storm/flood watch",
      "horizon": "Next 2 weeks",
      "question": "Where is storm and flood risk strengthening over the next two weeks?",
      "value": "Medium-term proof that KELLY can connect geography, weather, hydrology, and source freshness.",
      "signal": "forecast shift, hydrology threshold, hazard source, replay trail",
      "artifact": "artifact pending until KELLY emits proof",
      "consumerTitle": "Storm & flood watch",
      "consumerBlurb": "Where heavy rain and flood risk may build over the next two weeks."
    },
    {
      "id": "weather-disaster-preset-3",
      "title": "Disaster pressure thesis",
      "horizon": "Next few months",
      "question": "Which regions show rising disaster pressure across weather, water, fire, and infrastructure signals?",
      "value": "Long-term proof that KELLY can remember recurring pressure and revise as reality changes.",
      "signal": "multi-source trend, contradiction checks, settlement and calibration",
      "artifact": "artifact pending until KELLY emits proof",
      "consumerTitle": "Long-range pressure",
      "consumerBlurb": "Regions where weather, water, and fire signals are trending worse over months."
    }
  ],
  "readOnly": true,
  "publicMutationAllowed": false,
  "publicUserWriteAllowed": false,
  "groundTruthWriteAllowed": false,
  "glassLabArtifactUrl": "https://glass-lab.up.railway.app?artifact=weather-disaster",
  "localAskEndpoint": "/api/lens-ask-kelly",
  "labWindowEndpoint": "/api/lab-window",
  "labWindowPulseEndpoint": "/api/lab-window/pulse",
  "artifactSpineEndpoint": "/api/lens-artifact-spine",
  "pulseEndpoint": "/api/lab-window/pulse",
  "generatedAt": "2026-07-08T05:10:05.523Z"
}