{
  "current": {
    "recorded_at": "2026-10-12T04:42:56.174654+00:00",
    "model": "gemma3:4b",
    "workflow": "Mastra",
    "passed": 8,
    "total": 8,
    "cases": [
      {
        "amenity": "entrance",
        "note": "The east entrance has no steps and the gate is open. The path is clear, but there is no shade.",
        "expected": {
          "status": "usable",
          "step_free": "yes",
          "shade": "no"
        },
        "result": {
          "amenity": "entrance",
          "status": "usable",
          "step_free": "yes",
          "shade": "no",
          "summary": "East entrance has no steps and the gate is open. Path is clear with no shade.",
          "evidence": "The east entrance has no steps and the gate is open. The path is clear, but there is no shade.",
          "model": "gemma3:4b",
          "latency_ms": 97992,
          "source": "live",
          "inference": {
            "eval_count": 78,
            "prompt_eval_count": 483,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "The bench is broken and cannot be used.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "bench",
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Bench is broken and unusable.",
          "evidence": "The bench is broken and cannot be used.",
          "model": "gemma3:4b",
          "latency_ms": 6896,
          "source": "live",
          "inference": {
            "eval_count": 53,
            "prompt_eval_count": 469,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "I could not tell if the tap works.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "water",
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Tap status is uncertain.",
          "evidence": "I could not tell if the tap works.",
          "model": "gemma3:4b",
          "latency_ms": 7733,
          "source": "live",
          "inference": {
            "eval_count": 51,
            "prompt_eval_count": 469,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "entrance",
        "note": "The gate is open but there are three steps at the entrance.",
        "expected": {
          "status": "usable",
          "step_free": "no",
          "shade": "unknown"
        },
        "result": {
          "amenity": "entrance",
          "status": "usable",
          "step_free": "no",
          "shade": "unknown",
          "summary": "Open gate with three steps at the entrance.",
          "evidence": "The gate is open but there are three steps at the entrance.",
          "model": "gemma3:4b",
          "latency_ms": 8178,
          "source": "live",
          "inference": {
            "eval_count": 59,
            "prompt_eval_count": 473,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "I saw a bench.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "bench",
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "A bench was observed.",
          "evidence": "I saw a bench.",
          "model": "gemma3:4b",
          "latency_ms": 5879,
          "source": "live",
          "inference": {
            "eval_count": 47,
            "prompt_eval_count": 465,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "footpath",
        "note": "The footpath is blocked by rubble and cannot be passed.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "footpath",
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Footpath is blocked by rubble.",
          "evidence": "The footpath is blocked by rubble and cannot be passed.",
          "model": "gemma3:4b",
          "latency_ms": 6537,
          "source": "live",
          "inference": {
            "eval_count": 57,
            "prompt_eval_count": 472,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "The bench is usable and in the shade.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes"
        },
        "result": {
          "amenity": "bench",
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes",
          "summary": "Bench is usable and in the shade.",
          "evidence": "The bench is usable and in the shade.",
          "model": "gemma3:4b",
          "latency_ms": 6293,
          "source": "live",
          "inference": {
            "eval_count": 54,
            "prompt_eval_count": 469,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "The drinking water tap is working. I did not check the water quality.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "water",
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Drinking water tap is working.",
          "evidence": "The drinking water tap is working. I did not check the water quality.",
          "model": "gemma3:4b",
          "latency_ms": 7932,
          "source": "live",
          "inference": {
            "eval_count": 58,
            "prompt_eval_count": 475,
            "agent": "outside15-observer",
            "transport": "local Ollama OpenAI-compatible API"
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      }
    ]
  },
  "small": {
    "recorded_at": "2026-10-12T04:19:27.822509+00:00",
    "model": "gemma3:1b",
    "workflow": "Mastra",
    "passed": 3,
    "total": 8,
    "cases": [
      {
        "amenity": "entrance",
        "note": "The east entrance has no steps and the gate is open. The path is clear, but there is no shade.",
        "expected": {
          "status": "usable",
          "step_free": "yes",
          "shade": "no"
        },
        "result": {
          "amenity": "entrance",
          "status": "usable",
          "step_free": "no",
          "shade": "unknown",
          "summary": "East entrance with no steps, open gate, clear path, no shade.",
          "evidence": "The east entrance has no steps and the gate is open.",
          "model": "gemma3:1b",
          "latency_ms": 15046,
          "source": "live",
          "inference": {
            "eval_count": 64,
            "prompt_eval_count": 480,
            "total_duration_ns": 14991615500
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": false,
        "mismatches": {
          "step_free": {
            "expected": "yes",
            "actual": "no"
          },
          "shade": {
            "expected": "no",
            "actual": "unknown"
          }
        }
      },
      {
        "amenity": "bench",
        "note": "The bench is broken and cannot be used.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "bench",
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Bench is broken and unusable.",
          "evidence": "The bench is broken and cannot be used.",
          "model": "gemma3:1b",
          "latency_ms": 1406,
          "source": "live",
          "inference": {
            "eval_count": 53,
            "prompt_eval_count": 466,
            "total_duration_ns": 1383314900
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "I could not tell if the tap works.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "passed": false,
        "error": "Local AI failed validation after a bounded retry. Please edit your words or use manual entry."
      },
      {
        "amenity": "entrance",
        "note": "The gate is open but there are three steps at the entrance.",
        "expected": {
          "status": "usable",
          "step_free": "no",
          "shade": "unknown"
        },
        "passed": false,
        "error": "Local AI failed validation after a bounded retry. Please edit your words or use manual entry."
      },
      {
        "amenity": "bench",
        "note": "I saw a bench.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "passed": false,
        "error": "Local AI failed validation after a bounded retry. Please edit your words or use manual entry."
      },
      {
        "amenity": "footpath",
        "note": "The footpath is blocked by rubble and cannot be passed.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "passed": false,
        "error": "Local AI failed validation after a bounded retry. Please edit your words or use manual entry."
      },
      {
        "amenity": "bench",
        "note": "The bench is usable and in the shade.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes"
        },
        "result": {
          "amenity": "bench",
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes",
          "summary": "The bench is usable and in the shade.",
          "evidence": "The bench is usable and in the shade.",
          "model": "gemma3:1b",
          "latency_ms": 1562,
          "source": "live",
          "inference": {
            "eval_count": 55,
            "prompt_eval_count": 466,
            "total_duration_ns": 1538806900
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "The drinking water tap is working. I did not check the water quality.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "water",
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Drinking water tap is working.",
          "evidence": "The drinking water tap is working.",
          "model": "gemma3:1b",
          "latency_ms": 1391,
          "source": "live",
          "inference": {
            "eval_count": 50,
            "prompt_eval_count": 472,
            "total_duration_ns": 1371588900
          },
          "workflow": {
            "engine": "Mastra",
            "id": "outside15-observation",
            "attempts": 1,
            "human_review_required": true,
            "events": [
              {
                "stage": "extract-and-ground",
                "outcome": "validated"
              },
              {
                "stage": "prepare-human-review",
                "outcome": "ready"
              }
            ]
          }
        },
        "passed": true,
        "mismatches": {}
      }
    ]
  },
  "baseline": {
    "model": "llama3.2",
    "passed": 8,
    "total": 8,
    "cases": [
      {
        "amenity": "entrance",
        "note": "The east entrance has no steps and the gate is open. The path is clear, but there is no shade.",
        "expected": {
          "status": "usable",
          "step_free": "yes",
          "shade": "no"
        },
        "result": {
          "amenity": "entrance",
          "status": "usable",
          "step_free": "yes",
          "shade": "no",
          "summary": "East entrance with no steps, open gate, and clear path.",
          "evidence": "The east entrance has no steps and the gate is open. The path is clear, but there is no shade.",
          "model": "llama3.2",
          "latency_ms": 3547,
          "source": "live",
          "inference": {
            "eval_count": 74,
            "prompt_eval_count": 498,
            "total_duration_ns": 3514279900
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "The bench is broken and cannot be used.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "bench",
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Broken bench.",
          "evidence": "The bench is broken and cannot be used.",
          "model": "llama3.2",
          "latency_ms": 2594,
          "source": "live",
          "inference": {
            "eval_count": 50,
            "prompt_eval_count": 483,
            "total_duration_ns": 2590337000
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "I could not tell if the tap works.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "water",
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Uncertain water tap.",
          "evidence": "I could not tell if the tap works.",
          "model": "llama3.2",
          "latency_ms": 2672,
          "source": "live",
          "inference": {
            "eval_count": 52,
            "prompt_eval_count": 483,
            "total_duration_ns": 2672433000
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "entrance",
        "note": "The gate is open but there are three steps at the entrance.",
        "expected": {
          "status": "usable",
          "step_free": "no",
          "shade": "unknown"
        },
        "result": {
          "amenity": "entrance",
          "status": "usable",
          "step_free": "no",
          "shade": "unknown",
          "summary": "Open gate with three steps at the entrance.",
          "evidence": "The gate is open but there are three steps at the entrance.",
          "model": "llama3.2",
          "latency_ms": 3140,
          "source": "live",
          "inference": {
            "eval_count": 60,
            "prompt_eval_count": 488,
            "total_duration_ns": 3129225500
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "I saw a bench.",
        "expected": {
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "bench",
          "status": "uncertain",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Bench observed.",
          "evidence": "I saw a bench.",
          "model": "llama3.2",
          "latency_ms": 2438,
          "source": "live",
          "inference": {
            "eval_count": 47,
            "prompt_eval_count": 479,
            "total_duration_ns": 2441210600
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "footpath",
        "note": "The footpath is blocked by rubble and cannot be passed.",
        "expected": {
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "footpath",
          "status": "unusable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Footpath blocked by rubble.",
          "evidence": "The footpath is blocked by rubble and cannot be passed.",
          "model": "llama3.2",
          "latency_ms": 2984,
          "source": "live",
          "inference": {
            "eval_count": 57,
            "prompt_eval_count": 487,
            "total_duration_ns": 2982388400
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "bench",
        "note": "The bench is usable and in the shade.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes"
        },
        "result": {
          "amenity": "bench",
          "status": "usable",
          "step_free": "unknown",
          "shade": "yes",
          "summary": "Usable bench in the shade.",
          "evidence": "The bench is usable and in the shade.",
          "model": "llama3.2",
          "latency_ms": 2735,
          "source": "live",
          "inference": {
            "eval_count": 53,
            "prompt_eval_count": 483,
            "total_duration_ns": 2735180500
          }
        },
        "passed": true,
        "mismatches": {}
      },
      {
        "amenity": "water",
        "note": "The drinking water tap is working. I did not check the water quality.",
        "expected": {
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown"
        },
        "result": {
          "amenity": "water",
          "status": "usable",
          "step_free": "unknown",
          "shade": "unknown",
          "summary": "Working drinking water tap.",
          "evidence": "The drinking water tap is working. I did not check the water quality.",
          "model": "llama3.2",
          "latency_ms": 3000,
          "source": "live",
          "inference": {
            "eval_count": 57,
            "prompt_eval_count": 489,
            "total_duration_ns": 3004973100
          }
        },
        "passed": true,
        "mismatches": {}
      }
    ]
  },
  "recovery": {
    "recorded_at": "2026-10-12T04:43:35.566Z",
    "kind": "Controlled failure injection, followed by genuine local model inference",
    "injected_first_attempt": true,
    "first_attempt_is_not_a_real_model_output": true,
    "note": "The bench is broken and cannot be used.",
    "result": {
      "amenity": "bench",
      "status": "unusable",
      "step_free": "unknown",
      "shade": "unknown",
      "summary": "Bench is broken and unusable.",
      "evidence": "The bench is broken and cannot be used.",
      "model": "gemma3:4b",
      "latency_ms": 6323,
      "source": "live",
      "inference": {
        "eval_count": 53,
        "prompt_eval_count": 489,
        "agent": "outside15-observer",
        "transport": "local Ollama OpenAI-compatible API"
      },
      "workflow": {
        "engine": "Mastra",
        "id": "outside15-observation",
        "attempts": 2,
        "human_review_required": true,
        "events": [
          {
            "stage": "extract-and-ground",
            "outcome": "rejected"
          },
          {
            "stage": "extract-and-ground",
            "outcome": "validated"
          },
          {
            "stage": "prepare-human-review",
            "outcome": "ready"
          }
        ]
      }
    },
    "observations_saved_by_workflow": 0
  },
  "github_actions": {
    "implemented": true,
    "hosted_run_verified": false,
    "local_checks": "See artifacts/verification.md"
  }
}