{
  "run_id": "RomanSlack--jev-drone-claude-haiku-5-5-1792790360316181719",
  "date": "2026-10-23T21:27:23.412564+00:00",
  "repo": "RomanSlack/jev-drone",
  "kind": "repo",
  "source": "https://github.com/RomanSlack/jev-drone",
  "commit": "974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 453.64704668393824,
  "total_s": 483.0963623523712,
  "steps": [
    "cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -200",
    "cd <guest-path> && sed -n 200,400p README.md; echo ----SETUP; cat setup.sh; echo ----ENV; cat .env.example; echo ----REQ; cat requirements.txt; echo ----GI; cat .gitignore; ls -la .coldpass docs site",
    "cd <guest-path> && (git init -q 2>&1; git remote add origin https://github.com/RomanSlack/jev-drone 2>&1; timeout 120 git fetch --depth 1 origin 974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a 2>&1; git reset --mixed FETCH_HEAD 2>&1) ; git log --oneline -1 2>&1; git status --short 2>&1 | head; echo ---; which git curl python3 ffmpeg; python3 -m venv --help >/dev/null 2>&1 && echo venv-ok || echo venv-missing; ls /usr/lib/x86_64-linux-gnu | grep -iE 'libGL|libEGL|osmesa' | head; cat /etc/os-release | head -2",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 900 ./setup.sh 2>&1 | tail -40; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && sudo -n apt-get update -qq 2>&1 | tail -3; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv 2>&1 | tail -3; echo \"apt exit=$?\"; rm -rf .venv && export NODE_USE_ENV_PROXY=1 && timeout 1200 ./setup.sh 2>&1 | tail -30; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && grep -n \"argparse\\|add_argument\\|TYPESAFE\\|getenv\\|environ\\|no.jev\\|import typesafe\\|from typesafe\" run.py tactics.py | head -60; ls mujoco_menagerie/skydio_x2 assets | head; ls -la .venv/bin | head -5",
    "cd <guest-path> && export MUJOCO_GL=egl && timeout 1500 .venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2 2>&1 | tail -40; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq libegl1 libgl1 libgl1-mesa-dri libosmesa6 libglfw3 2>&1 | tail -3; export MUJOCO_GL=egl && timeout 1500 .venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2 2>&1 | tail -40; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && export MUJOCO_GL=egl && env -u TYPESAFE_API_KEY -u JEV_API_KEY timeout 600 .venv/bin/python run.py --seconds 65 --seeds 1 2>&1 | tail -8; echo \"exit=${PIPESTATUS[0]}\"; echo ---; grep -nE \"cron|schedule|webhook|--once|--now|while |time.sleep\" run.py tactics.py replay.py flight.py hud.py | head -20; sed -n 105,125p tactics.py",
    "cd <guest-path> && export MUJOCO_GL=egl && env -u TYPESAFE_API_KEY -u JEV_API_KEY timeout 600 .venv/bin/python run.py --seconds 65 --seeds 1 > /tmp/cred_run.log 2>&1; echo \"exit=$?\"; grep -n \"RuntimeError\\|TYPESAFE\\|Error\" /tmp/cred_run.log | head -10; ls -la /tmp/cred_run.log",
    "cd <guest-path> && grep -n \"stops dead at station 2\\|then put your key in it\\|Jev engaged\\|ablation (free)\\|Clamping\" README.md | cat -A | cut -c1-200",
    "mkdir -p <guest-path> && cat > <guest-path> <<'EOF'\nimport json, os\nW = \"<guest-path>\"\nPY = W + \"/.venv/bin/python\"\nARGV = [PY, \"run.py\", \"--no-jev\", \"--fast\", \"--seconds\", \"65\", \"--seeds\", \"0\", \"1\", \"2\"]\nENV = {\"MUJOCO_GL\": \"egl\"}\nSRC_ABL = \"`.venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2   # ablation (free)`\"\nprobe = {\"kind\": \"cli\", \"argv\": ARGV, \"cwd\": W, \"env\": ENV,\n         \"expected_text\": '\"seed\": 0, \"jev\": false, \"collisions\": 3'}\nclaims = [\n {\"kind\": \"claim\",\n  \"claim\": \"The no-Jev ablation (free baseline) runs headless and seed 1 stays stuck near 18 m\",\n  \"source\": \"The baseline stops dead at station 2 every single time.\",\n  \"input\": \"run.py --no-jev --fast --seconds 65 --seeds 0 1 2\",\n  \"expected\": \"seed 1 max_x 18.4 m, not crossed; NOTE seed 0 reached 77.2 m and crossed, contradicting 'every single time'\",\n  \"probe_kind\": \"cli\", \"argv\": ARGV, \"env\": ENV, \"cwd\": W,\n  \"expected_text\": '\"max_x_m\": 18.4, \"crossed_barrier\": false'},\n]\nexamples = [\n {\"kind\": \"example\", \"claim\": \"Free no-Jev ablation command from the Run it section\",\n  \"source\": \"README.md Run it: \" + SRC_ABL,\n  \"input\": \"--no-jev --fast --seconds 65 --seeds 0 1 2\", \"expected\": \"one JSON metrics line per seed, exit 0\",\n  \"argv\": ARGV, \"cwd\": W, \"env\": ENV, \"expected_text\": '\"seed\": 1, \"jev\": false'},\n {\"kind\": \"example\", \"claim\": \"Jev-engaged flight from the Run it section\",\n  \"source\": \"README.md Run it: .venv/bin/python run.py --seconds 65 --seeds 1 # Jev engaged\",\n  \"reason\": \"Needs TYPESAFE_API_KEY (from .env.example). Not provided; the documented call fails with 'RuntimeError: set TYPESAFE_API_KEY (see .env.example)'. Not obtained or faked.\"},\n {\"kind\": \"example\", \"claim\": \"replay.py re-renders a recorded flight without API calls\",\n  \"source\": \"README.md Run it: replay.py course.mp4.tape.npy out.mp4\",\n  \"reason\": \"Needs course.mp4.tape.npy from a --video run; that run writes binary mp4 output and no fresh UTF-8 expected text is possible for it. Not run.\"},\n]\ncycles = {\"detected\": False,\n  \"reason\": \"Entry points inspected (run.py, tactics.py, replay.py, flight.py, hud.py): no cron, scheduler, webhook, --once/--now. run.py runs a finite episode loop per seed for --seconds, and tactics.py has an in-episode ~2.5 Hz judgment thread; these are control loops, not product cycles.\",\n  \"checks\": []}\ndef w(name, obj):\n    p = os.path.join(W, \".coldpass\", name)\n    with open(p, \"w\", encoding=\"utf-8\") as f: json.dump(obj, f, indent=2); f.write(\"\\n\")\nw(\"probe.json\", probe); w(\"claims.json\", claims); w(\"examples.json\", examples); w(\"cycles.json\", cycles)\nprint(\"written\")\nEOF\ncd <guest-path> && python3 -I <guest-path> && ls -la .coldpass && grep -c . .coldpass/claims.json",
    "cd <guest-path> && <env-var>=<guest-path> timeout 1500 python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo \"exit=${PIPESTATUS[0]}\"",
    "cd <guest-path> && cat > <guest-path> <<'EOF'\nimport json\nr = {\n \"outcome\": \"needs_credentials\",\n \"fault_owner\": \"prerequisite\",\n \"operation\": \"Run the jev-drone MuJoCo quadrotor obstacle-course simulation from the README 'Run it' section\",\n \"operation_scope\": \"Free no-Jev ablation (run.py --no-jev --fast, seeds 0 1 2) works end-to-end headless. The headline Jev-engaged flight needs a TypeSafe API key (TYPESAFE_API_KEY), which was not provided and was not obtained. Replay of a recorded flight was not run (needs a tape from a video run).\",\n \"steps\": [\n  \"git init; git remote add origin https://github.com/RomanSlack/jev-drone; git fetch --depth 1 origin 974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a; git reset --mixed FETCH_HEAD (HEAD now 974b473, clean tree)\",\n  \"./setup.sh (failed first: ensurepip missing; see deviations) then, after install, ./setup.sh exit 0 (venv, pip install -r requirements.txt, git clone mujoco_menagerie sparse skydio_x2, asset symlink)\",\n  \"export MUJOCO_GL=egl; .venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2  -> exit 0, three JSON metric lines\",\n  \"env -u TYPESAFE_API_KEY .venv/bin/python run.py --seconds 65 --seeds 1 (Jev engaged) -> RuntimeError: set TYPESAFE_API_KEY (see .env.example), exit 1\",\n  \"<env-var>=<guest-path> python3 -I <guest-path> --validate --replay -> valid true, no problems, replay PASS\"\n ],\n \"deviations\": [\n  \"setup.sh failed: python3 -m venv could not run ensurepip. Fixed by sudo apt-get install python3.12-venv (Python 3.12.3), then re-ran ./setup.sh unchanged; succeeded.\",\n  \"MUJOCO_GL=egl failed at import (OpenGL EGL platform None). Fixed by sudo apt-get install libegl1 libgl1 libgl1-mesa-dri libosmesa6 libglfw3 (system libraries, not product source). README does not list these.\",\n  \"Jev-engaged run not executed successfully: no TYPESAFE_API_KEY. Not faked; credentials_error recorded in examples.json.\",\n  \"README claim 'The baseline stops dead at station 2 every single time' was NOT reproduced for seed 0: --no-jev --fast seed 0 reached max_x 77.2 m and crossed_barrier true (seeds 1 and 2 stayed at ~18 m as claimed). The README table lists 17.7 m for baseline. Possible cause: --fast/sim-time settings or repo version; not investigated further.\",\n  \"git init and the pinned fetch were run as instructed; setup.sh itself does not need git metadata of the repo.\"\n ],\n \"stuck_step\": \"Jev-engaged flight: .venv/bin/python run.py --seconds 65 --seeds 1 (needs TYPESAFE_API_KEY)\",\n \"main_blocker\": \"No TypeSafe API key (TYPESAFE_API_KEY) available in the guest, so the Jev judgment layer cannot be exercised.\",\n \"plain_failure\": \"The drone simulation installs and flies the free no-AI baseline correctly. The part the README is mainly about, the AI-assisted flight, cannot run without a paid TypeSafe API key, which was not provided. Also, one README claim (baseline always stuck at the second station) did not hold for one of the three test seeds.\",\n \"suggested_fix\": \"Provide TYPESAFE_API_KEY (copy .env.example to .env and add a key) to run the Jev-engaged flight and its replay. Document apt packages python3.12-venv and Mesa EGL/OSMesa libraries in the README for headless setup. Re-check the baseline seed 0 result against the README table.\"\n}\njson.dump(r, open(\"<guest-path>\", \"w\", encoding=\"utf-8\"), indent=2)\nopen(\"<guest-path>\", \"a\").write(\"\\n\")\nprint(\"ok\")\nEOF\npython3 -I <guest-path> && python3 -I -c \"import json;json.load(open('<guest-path>'));print('valid json')\" && ls -la <guest-path> <guest-path> | head -30; pgrep -fa \"run.py|replay.py\" || echo \"no servers/background processes running\""
  ],
  "stuck_step": "Jev-engaged flight: .venv/bin/python run.py --seconds 65 --seeds 1 (needs TYPESAFE_API_KEY)",
  "error_excerpt": null,
  "what_it_did": "Run the jev-drone MuJoCo quadrotor obstacle-course simulation from the README 'Run it' section",
  "suggested_fix": null,
  "tokens_in": 346824,
  "tokens_out": 16245,
  "cost_usd": 0.02122929,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "<guest-path>",
          "run.py",
          "--no-jev",
          "--fast",
          "--seconds",
          "65",
          "--seeds",
          "0",
          "1",
          "2"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "{\"seed\": 0, \"jev\": false, \"collisions\": 3, \"target_visible_pct\": 60.1, \"mean_standoff_m\": 8.19, \"max_standoff_m\": 19.91, \"final_gap_m\": 3.95, \"distance_flown_m\": 75.7, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 20.5, \"max_x_m\": 77.2, \"crossed_barrier\": true, \"crashed_at_s\": null, \"flew_s\": 65.0}\n{\"seed\": 1, \"jev\": false, \"collisions\": 1, \"target_visible_pct\": 21.0, \"mean_standoff_m\": 28.57, \"max_standoff_m\": 64.24, \"final_gap_m\": 64.24, \"distance_flown_m\": 15.9, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 78.0, \"max_x_m\": 18.4, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}\n{\"seed\": 2, \"jev\": false, \"collisions\": 0, \"target_visible_pct\": 21.8, \"mean_standoff_m\": 28.49, \"max_standoff_m\": 63.87, \"final_gap_m\": 63.87, \"distance_flown_m\": 16.0, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 76.6, \"max_x_m\": 18.2, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 connection review, 82 known vulnerability, 1 outside write, 1 sensitive read.",
    "expected": "Reviewed as expected for a test run: a Python interpreter or package manager probed its own interpreter file under a system program folder.",
    "findings": [
      {
        "kind": "connection-review",
        "count": 1,
        "note": "Repository processes attempted these non-loopback connections; proxies can hide the final hostname.",
        "location_count": 1,
        "path": "140.82.114.3:443",
        "process_count": 3
      },
      {
        "kind": "known-vulnerability",
        "count": 82,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_count": 4
      },
      {
        "kind": "outside-write",
        "count": 1,
        "note": "Repository processes attempted these writes outside documented output/cache paths.",
        "location_count": 1,
        "path": "/dev/udmabuf",
        "process_count": 9
      },
      {
        "kind": "sensitive-read",
        "count": 1,
        "note": "A repository process attempted to read this sensitive path.",
        "location_count": 1,
        "file_kind": "saved web login",
        "process_count": 3
      }
    ],
    "context": [],
    "limitations": [
      "A short run cannot establish that code is safe.",
      "Connections show IP addresses; proxies can hide the final hostname.",
      "Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=RomanSlack--jev-drone-claude-haiku-5-5-1792790360316181719",
    "evidence_file": "/data/safety/RomanSlack--jev-drone-claude-haiku-5-5-1792790360316181719.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "linux",
  "reasoning": "low",
  "service_tier": null,
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "native_tool_calls": 14,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a",
    "url": "https://github.com/RomanSlack/jev-drone"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": "prerequisite",
    "status": "diagnosed",
    "reason": "No TypeSafe API key (TYPESAFE_API_KEY) available in the guest, so the Jev judgment layer cannot be exercised."
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 14,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": null,
  "evidence_strength": "readme_checked",
  "works": "yes",
  "install_s": null,
  "first_use_s": null,
  "mcp": "none",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "cli"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/RomanSlack/jev-drone",
  "cost_to_try": "free",
  "hardware": null,
  "what_failed": null,
  "local_or_hosted": "local",
  "cycle_checks": [
    {
      "kind": "cycle",
      "claim": "Scheduled or looping main behavior",
      "source": "repository entry points",
      "input": "source inspection",
      "expected": "identify the product trigger",
      "verdict": "yes",
      "outcome": "Entry points inspected (run.py, tactics.py, replay.py, flight.py, hud.py): no cron, scheduler, webhook, --once/--now. run.py runs a finite episode loop per seed for --seconds, and tactics.py has an in-episode ~2.5 Hz judgment thread; these are control loops, not product cycles.",
      "evidence": "Entry points inspected (run.py, tactics.py, replay.py, flight.py, hud.py): no cron, scheduler, webhook, --once/--now. run.py runs a finite episode loop per seed for --seconds, and tactics.py has an in-episode ~2.5 Hz judgment thread; these are control loops, not product cycles.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "The no-Jev ablation (free baseline) runs headless and seed 1 stays stuck near 18 m",
      "source": "The baseline stops dead at station 2 every single time.",
      "input": "run.py --no-jev --fast --seconds 65 --seeds 0 1 2",
      "expected": "seed 1 max_x 18.4 m, not crossed; NOTE seed 0 reached 77.2 m and crossed, contradicting 'every single time'",
      "command": "<guest-path> run.py --no-jev --fast --seconds 65 --seeds 0 1 2",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: \"max_x_m\": 18.4, \"crossed_barrier\": false",
      "evidence": "\"max_x_m\": 18.4, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}\n{\"seed\": 2, \"jev\": false, \"collisions\": 0, \"target_visible_pct\": 21.8, \"mean_standoff_m\": 28.49, \"max_standoff_m\": 63.87, \"final_gap_m\": 63.87, \"distance_flown_m\": 16.0, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 76.6, \"max_x_m\": 18.2, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Free no-Jev ablation command from the Run it section",
      "source": "README.md Run it: `.venv/bin/python run.py --no-jev --fast --seconds 65 --seeds 0 1 2   # ablation (free)`",
      "input": "--no-jev --fast --seconds 65 --seeds 0 1 2",
      "command": "<guest-path> run.py --no-jev --fast --seconds 65 --seeds 0 1 2",
      "evidence": "1, \"jev\": false, \"collisions\": 1, \"target_visible_pct\": 21.0, \"mean_standoff_m\": 28.57, \"max_standoff_m\": 64.24, \"final_gap_m\": 64.24, \"distance_flown_m\": 15.9, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 78.0, \"max_x_m\": 18.4, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}\n{\"seed\": 2, \"jev\": false, \"collisions\": 0, \"target_visible_pct\": 21.8, \"mean_standoff_m\": 28.49, \"max_standoff_m\": 63.87, \"final_gap_m\": 63.87, \"distance_flown_m\": 16.0, \"steps_jev_acted_pct\": 0.0, \"steps_reflex_pct\": 76.6, \"max_x_m\": 18.2, \"crossed_barrier\": false, \"crashed_at_s\": null, \"flew_s\": 65.0}",
      "deferred": false,
      "expected": "one JSON metrics line per seed, exit 0",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Jev-engaged flight from the Run it section",
      "source": "README.md Run it: .venv/bin/python run.py --seconds 65 --seeds 1 # Jev engaged",
      "input": "",
      "command": "",
      "evidence": "Needs TYPESAFE_API_KEY (from .env.example). Not provided; the documented call fails with 'RuntimeError: set TYPESAFE_API_KEY (see .env.example)'. Not obtained or faked.",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "Needs TYPESAFE_API_KEY (from .env.example). Not provided; the documented call fails with 'RuntimeError: set TYPESAFE_API_KEY (see .env.example)'. Not obtained or faked."
    },
    {
      "kind": "example",
      "claim": "replay.py re-renders a recorded flight without API calls",
      "source": "README.md Run it: replay.py course.mp4.tape.npy out.mp4",
      "input": "",
      "command": "",
      "evidence": "Needs course.mp4.tape.npy from a --video run; that run writes binary mp4 output and no fresh UTF-8 expected text is possible for it. Not run.",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "Needs course.mp4.tape.npy from a --video run; that run writes binary mp4 output and no fresh UTF-8 expected text is possible for it. Not run."
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-09-24T21:10:40Z",
    "commits_90d": 13,
    "merged_prs_90d": 2,
    "open_issues": 1,
    "open_prs": 0,
    "reply_share": 0.4,
    "reply_threads": 5,
    "median_reply_hours": 23.4,
    "last_release_at": null,
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 29 days ago; 13 commits and 2 merged PRs in 90 days; 1 open issues, 0 open PRs; 2 of 5 recent threads got a maintainer reply, median first reply 23.4h; no releases"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 29 days ago; 13 commits and 2 merged PRs in 90 days; 1 open issues, 0 open PRs; 2 of 5 recent threads got a maintainer reply, median first reply 23.4h; no releases",
  "maintained": "active",
  "maintained_note": "last commit 29 days ago; 1 open issues, 2 answered or closed",
  "last_commit_at": "2026-09-24T21:10:40Z",
  "last_release_at": null,
  "open_issues": 1,
  "answered_issues": 2,
  "platforms_claimed": [
    "linux"
  ],
  "topic": "agent-harness",
  "agent_interfaces": [
    {
      "interface": "cli",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": true
    }
  ],
  "agent_interfaces_note": "README metadata is a discovery hint, not pinned documentation proof. Observed interfaces were exercised in this run. An empty list means unknown.",
  "mcp_context": null,
  "tested_at": "2026-10-23T21:27:23.412564+00:00",
  "tested_commit": "974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.300 (Claude Code)",
    "model": "claude-haiku-5-5",
    "model_route": "claude-haiku-5-5",
    "reasoning": "low",
    "os": "linux",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "RomanSlack/jev-drone",
    "source": "https://github.com/RomanSlack/jev-drone",
    "commit": "974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a",
    "source_revision": null,
    "os": "linux",
    "architecture": null,
    "backend": "hyperv",
    "model": "claude-haiku-5-5",
    "model_version": "claude-haiku-5-5",
    "agent_execution": "native_agent",
    "agent_runtime": "claude-code",
    "agent_runtime_version": "2.1.300 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "974b47378c14c6dcf7d11f7c813fba0f5f4d8b6a",
      "url": "https://github.com/RomanSlack/jev-drone"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Run the jev-drone MuJoCo quadrotor obstacle-course simulation from the README 'Run it' section",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": null,
  "report_url": "/reports/RomanSlack--jev-drone-claude-haiku-5-5-1792790360316181719.json"
}
