{
  "run_id": "leepokai--jev-guard-claude-haiku-5-5-1792801374704956307",
  "date": "2026-10-24T00:30:47.159080+00:00",
  "repo": "leepokai/jev-guard",
  "kind": "repo",
  "source": "https://github.com/leepokai/jev-guard",
  "commit": "cda06c49ceaac207904142ec92bfab793bbd18b1",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": null,
  "outcome": "needs_credentials",
  "time_to_working_s": null,
  "total_s": 472.4540956020355,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && (. /etc/os-release; echo $PRETTY_NAME) && python3 --version && git --version; which node npm uv 2>&1; ls /inputs 2>&1",
    "cd <guest-path> && cat README.md 2>/dev/null | head -300",
    "cd <guest-path> && cat package.json && ls -la .coldpass src test hooks && sudo -n true && echo SUDO_OK; command -v node npm; echo \"PATH=$PATH\"",
    "cd <guest-path> && git init -q 2>&1; git remote add origin https://github.com/leepokai/jev-guard 2>&1; timeout 120 git fetch --depth 1 origin cda06c49ceaac207904142ec92bfab793bbd18b1 2>&1 | tail -5; git reset --mixed FETCH_HEAD 2>&1 | tail -3; git log --oneline -1 2>&1; git status --short | head; apt-cache policy nodejs | head -3",
    "export DEBIAN_FRONTEND=noninteractive; (curl -fsSL https://deb.nodesource.com/setup_22.x -o /tmp/ns_setup.sh && sudo -E bash /tmp/ns_setup.sh) 2>&1 | tail -5; sudo apt-get install -y nodejs 2>&1 | tail -3; node -v; npm -v",
    "env | grep -iE 'jev|ai_gateway|openrouter|vercel|proxy' | sed -E 's/=.{0,6}.*/=<set>/' ; ls -la ~/.jev-guard 2>&1; cd /tmp && timeout 20 curl -sS -o /dev/null -w '%{http_code}\\n' https://api.typesafe.ai/ 2>&1; timeout 20 curl -sS -o /dev/null -w '%{http_code}\\n' https://registry.npmjs.org/jev-guard 2>&1",
    "cd /tmp && export NODE_USE_ENV_PROXY=1 && timeout 300 npm i -g jev-guard 2>&1 | tail -5; echo \"rc=$?\"; command -v jev-guard; jev-guard --version 2>&1 | head -3; npm root -g",
    "cd /tmp && export NODE_USE_ENV_PROXY=1 && timeout 300 npm i -g jev-guard 2>&1 | grep -iE 'error' | head -15",
    "cd /tmp && export NODE_USE_ENV_PROXY=1 && timeout 300 sudo -E npm i -g jev-guard 2>&1 | grep -v notice | tail -3; command -v jev-guard; jev-guard --version 2>&1 | head -3; jev-guard --help 2>&1 | head -30",
    "cd /tmp && timeout 60 jev-guard check Bash '{\"command\":\"rm -rf /\"}'; echo \"rc=$?\"; echo ---; echo 'hello' | timeout 60 jev-guard scan; echo \"rc=$?\"",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 300 npm test 2>&1 | tail -15; echo \"rc=${PIPESTATUS[0]}\"; echo ---; grep -rniE 'cron|schedul|setInterval|--once|--now|webhook|loop' src hooks extensions .claude-plugin .codex-plugin .cursor-plugin 2>/dev/null | head -20",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 300 npm test 2>&1 | grep -B2 -A25 '^not ok\\|  not ok' | head -60",
    "cd <guest-path> && sed -n 255,290p test/guard.test.js",
    "cd <guest-path> && H=$(mktemp -d) && HOME=$H timeout 60 node src/cli.js install claude; echo \"rc=$?\"; ls -la $H/.claude 2>&1; grep -n 'claude' src/cli.js src/hook.js | head -20; command -v claude || echo \"no claude cli\"",
    "cd <guest-path> && H=$(mktemp -d) && HOME=$H node src/cli.js install claude >/dev/null 2>&1; grep -c 'jev-guard' $H/.claude/settings.json; grep -o '\"command\": *\"[^\"]*\"' $H/.claude/settings.json | head -3; cat -A /dev/null; cat $H/.claude/settings.json | head -20",
    "rm -rf /tmp/jevcheck && mkdir -p /tmp/jevcheck && cp -r <guest-path> /tmp/jevcheck/jev-guard && cd /tmp/jevcheck/jev-guard && rm -rf .git && timeout 300 npm test 2>&1 | grep -E '^# (tests|pass|fail)'; echo \"rc=${PIPESTATUS[0]}\"",
    "set -e; cd <guest-path>\ncat > probe.json <<'EOF'\n{\"checks\":[\n {\"check\":\"install\",\"kind\":\"cli\",\"argv\":[\"jev-guard\",\"--help\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"dangerous-action guard\"},\n {\"check\":\"credentials_error\",\"kind\":\"cli\",\"argv\":[\"jev-guard\",\"check\",\"Bash\",\"{\\\"command\\\":\\\"rm -rf ~/\\\"}\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":3,\"expected_text\":\"no credentials\"}\n]}\nEOF\ncat > claims.json <<'EOF'\n[\n {\"kind\":\"claim\",\"claim\":\"install writes the guard hooks into the agent's user config\",\"source\":\"`install` is idempotent and writes the absolute path of the current `node`\",\"input\":\"jev-guard install claude with HOME set to a scratch directory\",\"expected\":\"settings.json written under the scratch HOME\",\"probe_kind\":\"cli\",\"argv\":[\"jev-guard\",\"install\",\"claude\"],\"env\":{\"HOME\":\"<guest-path>\"},\"expected_text\":\"jev-guard: written to\",\"cwd\":\"<guest-path>\"},\n {\"kind\":\"claim\",\"claim\":\"the offline test suite runs against a fake Jev\",\"source\":\"node:test with a fake Jev\",\"input\":\"npm test in a checkout directory named jev-guard\",\"expected\":\"all 18 tests pass\",\"probe_kind\":\"cli\",\"argv\":[\"npm\",\"test\"],\"expected_text\":\"# fail 0\",\"cwd\":\"/tmp/jevcheck/jev-guard\"},\n {\"kind\":\"claim\",\"claim\":\"check exits with a verdict code\",\"source\":\"Assess one tool call; exit 0 allow, 1 ask, 2 deny\",\"testable\":false,\"reason\":\"needs a Jev API key (TypeSafe, Vercel AI Gateway or OpenRouter); none is available in this guest, so the CLI exits 3 with 'no credentials'\"}\n]\nEOF\ncat > examples.json <<'EOF'\n[\n {\"kind\":\"example\",\"claim\":\"offline test suite (README Development section)\",\"source\":\"README.md Development: npm test\",\"input\":\"npm test in a copy of the checkout named jev-guard (the snapshot path 'workspace' makes one install-path test fail)\",\"expected\":\"18 of 18 tests pass\",\"argv\":[\"npm\",\"test\"],\"cwd\":\"/tmp/jevcheck/jev-guard\",\"expected_text\":\"# fail 0\"},\n {\"kind\":\"example\",\"claim\":\"classify a tool call (README Install quickstart)\",\"source\":\"README.md Install: jev-guard check Bash '{\\\"command\\\":\\\"rm -rf ~/\\\"}'\",\"reason\":\"needs a Jev API key; none provided. The documented call was run and exits 3 with 'no credentials' (see probe.json credentials_error)\"}\n]\nEOF\ncat > cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Entry points inspected: src/cli.js commands (hook, acp, check, scan, scan-skills, install, key), README CLI section, hooks/*.json. jev-guard runs as a per-tool-call hook invoked by the host agent, with no cron, scheduler, loop, --once/--now or webhook; src/session.js notes 'no scheduler'. No product cycle to trigger.\",\"checks\":[]}\nEOF\npython3 -I -c \"import json;[json.load(open(f)) for f in ['probe.json','claims.json','examples.json','cycles.json']];print('json ok')\"\nrm -rf /tmp/tmp.uRrlE0yVsa; ls -la",
    "cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | tail -80; echo \"rc=${PIPESTATUS[0]}\"",
    "set -e; cd <guest-path>\ncat > probe.json <<'EOF'\n{\"checks\":[\n {\"check\":\"install\",\"kind\":\"cli\",\"argv\":[\"jev-guard\",\"install\",\"claude\"],\"cwd\":\"<guest-path>\",\"env\":{\"HOME\":\"<guest-path>\"},\"expected_text\":\"jev-guard: written to\"},\n {\"check\":\"credentials_error\",\"kind\":\"cli\",\"argv\":[\"jev-guard\",\"check\",\"Bash\",\"{\\\"command\\\":\\\"rm -rf ~/\\\"}\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":3,\"expected_text\":\"no credentials\"}\n]}\nEOF\ncat > claims.json <<'EOF'\n[\n {\"kind\":\"claim\",\"claim\":\"install writes the guard hooks into the agent's user config\",\"source\":\"`install` is idempotent and writes the absolute path of the current `node`\",\"input\":\"jev-guard install claude with HOME set to a scratch directory\",\"expected\":\"settings.json written under the scratch HOME\",\"probe_kind\":\"cli\",\"argv\":[\"jev-guard\",\"install\",\"claude\"],\"env\":{\"HOME\":\"<guest-path>\"},\"expected_text\":\"jev-guard: written to\",\"cwd\":\"<guest-path>\"},\n {\"kind\":\"claim\",\"claim\":\"check exits with a verdict code\",\"source\":\"Assess one tool call; exit 0 allow, 1 ask, 2 deny\",\"testable\":false,\"reason\":\"needs a Jev API key (TypeSafe, Vercel AI Gateway or OpenRouter); none is available in this guest, so the CLI exits 3 with 'no credentials'\"}\n]\nEOF\npython3 -I -c \"import json;[json.load(open(f)) for f in ['probe.json','claims.json']];print('json ok')\"\ncd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"rc=$?\"; python3 -I -c \"\nimport json,sys\nt=open('<guest-path>').read()\ni=t.find('{')\ntry:\n  d=json.loads(t[i:])\n  print('valid:',d.get('valid')); [print('PROBLEM:',p[:600]) for p in d.get('problems',[])]\nexcept Exception as e: print(t[:3000])\n\"",
    "cd <guest-path> && cat > report.json <<'EOF'\n{\"outcome\":\"needs_credentials\",\n \"fault_owner\":\"prerequisite\",\n \"operation\":\"Run jev-guard's documented safety check on a tool call (jev-guard check Bash '{\\\"command\\\":\\\"rm -rf ~/\\\"}') and get a allow/ask/deny verdict from the Jev model\",\n \"operation_scope\":\"Installed the published npm package globally on Ubuntu 24.04 (Node 22.23.4, npm 10.9.9). Ran the local, credential-free parts: install claude into a scratch HOME (works), and the offline test suite (18/18 pass in a copy named jev-guard). The live Jev verdict could not run because no Jev API key (TypeSafe, Vercel AI Gateway or OpenRouter) is available in this guest.\",\n \"steps\":[\n  \"git init; git remote add origin https://github.com/leepokai/jev-guard; git fetch --depth 1 origin cda06c49ceaac207904142ec92bfab793bbd18b1; git reset --mixed FETCH_HEAD\",\n  \"README Install prerequisite: node >= 20.3 (package.json engines). Ubuntu default nodejs is too old; installed Node 22 via NodeSource setup_22.x and apt-get install nodejs (v22.23.4, npm 10.9.9)\",\n  \"README Install: npm i -g jev-guard (run as sudo -E npm i -g jev-guard, see deviations); jev-guard installed at /usr/bin/jev-guard\",\n  \"README CLI: jev-guard check Bash '{\\\"command\\\":\\\"rm -rf ~/\\\"}' -> exit 3, 'jev-guard: no credentials: run `jev-guard key <key>` or set JEV_API_KEY / AI_GATEWAY_API_KEY'\",\n  \"README Install: jev-guard install claude (HOME set to a scratch dir) -> 'jev-guard: written to .../.claude/settings.json'\",\n  \"README Development: npm test -> 18 tests, 18 pass when the checkout directory is named jev-guard\"\n ],\n \"deviations\":[\n  \"Ubuntu 24.04 apt nodejs is below the required Node 20.3; installed Node 22 from NodeSource (setup_22.x) instead.\",\n  \"npm i -g jev-guard as non-root failed with EACCES on /usr/lib/node_modules; reran the same README command with sudo -E.\",\n  \"npm test in <guest-path> 17/18 passed. The failing test (install writes valid config for every target) asserts the hook config contains the string 'jev-guard'; the hook command embeds the checkout path, which here ends in 'workspace', not 'jev-guard'. A copy at /tmp/jevcheck/jev-guard passes 18/18. This is a path artifact of the snapshot directory, not a product defect.\",\n  \"No Jev credential provided or obtained; the documented check/scan operations were not exercised live (credentials_error recorded instead).\",\n  \"The checker's replay of the install claim wrote its settings.json under <guest-path> (the checker's HOME override was not applied); this is outside the workspace.\"\n ],\n \"stuck_step\":\"jev-guard check Bash '{\\\"command\\\":\\\"rm -rf ~/\\\"}' (the product's core operation) exits 3: no Jev API key configured.\",\n \"main_blocker\":\"No Jev API key (JEV_API_KEY, AI_GATEWAY_API_KEY, or jev-guard key) is available in this guest, and the product cannot judge a tool call without one.\",\n \"plain_failure\":\"The guard's main job, asking the Jev model whether a command is safe, could not be run live because the product needs a Jev account key and none was provided. Install, the local hook configuration, and the offline test suite work.\",\n \"suggested_fix\":\"Provide a TypeSafe, Vercel AI Gateway or OpenRouter key (export JEV_API_KEY or run jev-guard key) and rerun the check and scan commands from the README. Separately, make the 'install writes valid config' test not depend on the checkout directory name.\"}\nEOF\npython3 -I -c \"import json;json.load(open('report.json'));print('report ok')\"; cd <guest-path> && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"rc=$?\"; python3 -I -c \"\nimport json\nt=open('<guest-path>').read(); d=json.loads(t[t.find('{'):])\nprint('valid:',d.get('valid')); [print('PROBLEM:',p[:400]) for p in d.get('problems',[])]\"; ls -la <guest-path>"
  ],
  "stuck_step": "jev-guard check Bash '{\"command\":\"rm -rf ~/\"}' (the product's core operation) exits 3: no Jev API key configured.",
  "error_excerpt": "No Jev API key (JEV_API_KEY, AI_GATEWAY_API_KEY, or jev-guard key) is available in this guest, and the product cannot judge a tool call without one.",
  "what_it_did": "Run jev-guard's documented safety check on a tool call (jev-guard check Bash '{\"command\":\"rm -rf ~/\"}') and get a allow/ask/deny verdict from the Jev model",
  "suggested_fix": "Provide a TypeSafe, Vercel AI Gateway or OpenRouter key (export JEV_API_KEY or run jev-guard key) and rerun the check and scan commands from the README. Separately, make the 'install writes valid config' test not depend on the checkout directory name.",
  "tokens_in": 550173,
  "tokens_out": 20966,
  "cost_usd": 0.025293010000000005,
  "usage_complete": true,
  "checks": [
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "jev-guard",
          "install",
          "claude"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "jev-guard: written to <guest-path>\nNo API key found yet: run `jev-guard key <key>` (or export JEV_API_KEY / AI_GATEWAY_API_KEY). Until then the guard fails open.",
        "stderr": "",
        "needs_credentials": true,
        "needs_browser": false,
        "scope": "partial: install"
      },
      "check": "install",
      "optional": false
    },
    {
      "status": "PASS",
      "details": {
        "working": false,
        "argv": [
          "jev-guard",
          "check",
          "Bash",
          "{\"command\":\"rm -rf ~/\"}"
        ],
        "kind": "cli",
        "returncode": 3,
        "stdout": "",
        "stderr": "jev-guard: no credentials: run `jev-guard key <key>` or set JEV_API_KEY / AI_GATEWAY_API_KEY (exit 3)",
        "needs_credentials": true,
        "needs_browser": false,
        "scope": "partial: missing credentials"
      },
      "check": "credentials_error",
      "optional": false
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 download and execute, 6 known vulnerability.",
    "expected": "Reviewed as expected for a test run: resolver address lookups that send no data.",
    "findings": [
      {
        "kind": "download-and-execute",
        "count": 1,
        "note": "Source contains download and execute; review its purpose.",
        "location_count": 1,
        "path": "src/guard.js"
      },
      {
        "kind": "known-vulnerability",
        "count": 6,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_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=leepokai--jev-guard-claude-haiku-5-5-1792801374704956307",
    "evidence_file": "/data/safety/leepokai--jev-guard-claude-haiku-5-5-1792801374704956307.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": 20,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "cda06c49ceaac207904142ec92bfab793bbd18b1",
    "url": "https://github.com/leepokai/jev-guard"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": "prerequisite",
    "status": "diagnosed",
    "reason": "No Jev API key (JEV_API_KEY, AI_GATEWAY_API_KEY, or jev-guard key) is available in this guest, and the product cannot judge a tool call without one."
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "partial checks",
  "tool_calls": 20,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": null,
  "evidence_strength": "partly_checked",
  "works": "partly",
  "install_s": null,
  "first_use_s": null,
  "mcp": "none",
  "needs": [
    "credentials"
  ],
  "needs_which": "JEV_API_KEY",
  "agent_interface": [],
  "license": "MIT",
  "repo_url": "https://github.com/leepokai/jev-guard",
  "cost_to_try": "needs an account or key",
  "hardware": null,
  "what_failed": "No Jev API key (JEV_API_KEY, AI_GATEWAY_API_KEY, or jev-guard key) is available in this guest, and the product cannot judge a tool call without one.",
  "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: src/cli.js commands (hook, acp, check, scan, scan-skills, install, key), README CLI section, hooks/*.json. jev-guard runs as a per-tool-call hook invoked by the host agent, with no cron, scheduler, loop, --once/--now or webhook; src/session.js notes 'no scheduler'. No product cycle to trigger.",
      "evidence": "Entry points inspected: src/cli.js commands (hook, acp, check, scan, scan-skills, install, key), README CLI section, hooks/*.json. jev-guard runs as a per-tool-call hook invoked by the host agent, with no cron, scheduler, loop, --once/--now or webhook; src/session.js notes 'no scheduler'. No product cycle to trigger.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "install writes the guard hooks into the agent's user config",
      "source": "`install` is idempotent and writes the absolute path of the current `node`",
      "input": "jev-guard install claude with HOME set to a scratch directory",
      "expected": "settings.json written under the scratch HOME",
      "command": "jev-guard install claude",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: jev-guard: written to",
      "evidence": "jev-guard: written to <guest-path>\nNo API key found yet: run `jev-guard key <key>` (or export JEV_API_KEY / AI_GATEWAY_API_KEY). Until then the guard fails open.\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "check exits with a verdict code",
      "source": "Assess one tool call; exit 0 allow, 1 ask, 2 deny",
      "input": "",
      "expected": "",
      "command": "",
      "verdict": "blocked",
      "outcome": "needs a Jev API key (TypeSafe, Vercel AI Gateway or OpenRouter); none is available in this guest, so the CLI exits 3 with 'no credentials'",
      "evidence": "needs a Jev API key (TypeSafe, Vercel AI Gateway or OpenRouter); none is available in this guest, so the CLI exits 3 with 'no credentials'",
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "offline test suite (README Development section)",
      "source": "README.md Development: npm test",
      "input": "npm test in a copy of the checkout named jev-guard (the snapshot path 'workspace' makes one install-path test fail)",
      "command": "npm test",
      "evidence": " duration_ms: 3666.697281\n  type: 'test'\n  ...\n# Subtest: issues \\#1\u2013\\#3: .claude/docs routing, sub-agent results scanned, thresholds range-checked\nok 17 - issues \\#1\u2013\\#3: .claude/docs routing, sub-agent results scanned, thresholds range-checked\n  ---\n  duration_ms: 0.423151\n  type: 'test'\n  ...\n# Subtest: opencode: skill results are checked as instruction files (\\#2)\nok 18 - opencode: skill results are checked as instruction files (\\#2)\n  ---\n  duration_ms: 5.454866\n  type: 'test'\n  ...\n1..18\n# tests 18\n# suites 0\n# pass 18\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 8028.744001",
      "deferred": false,
      "expected": "18 of 18 tests pass",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "classify a tool call (README Install quickstart)",
      "source": "README.md Install: jev-guard check Bash '{\"command\":\"rm -rf ~/\"}'",
      "input": "",
      "command": "",
      "evidence": "needs a Jev API key; none provided. The documented call was run and exits 3 with 'no credentials' (see probe.json credentials_error)",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "needs a Jev API key; none provided. The documented call was run and exits 3 with 'no credentials' (see probe.json credentials_error)"
    }
  ],
  "does_what_it_says": "partly",
  "maintenance": {
    "last_commit_at": "2026-10-02T03:49:16Z",
    "commits_90d": 27,
    "merged_prs_90d": 4,
    "open_issues": 1,
    "open_prs": 0,
    "reply_share": 0.86,
    "reply_threads": 7,
    "median_reply_hours": 81.2,
    "last_release_at": "2026-09-17T18:00:33Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 21 days ago; 27 commits and 4 merged PRs in 90 days; 1 open issues, 0 open PRs; 6 of 7 recent threads got a maintainer reply, median first reply 81.2h; latest release 2026-09-17"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 21 days ago; 27 commits and 4 merged PRs in 90 days; 1 open issues, 0 open PRs; 6 of 7 recent threads got a maintainer reply, median first reply 81.2h; latest release 2026-09-17",
  "maintained": "active",
  "maintained_note": "last commit 21 days ago; 1 open issues, 6 answered or closed",
  "last_commit_at": "2026-10-02T03:49:16Z",
  "last_release_at": "2026-09-17T18:00:33Z",
  "open_issues": 1,
  "answered_issues": 6,
  "platforms_claimed": [
    "linux"
  ],
  "topic": "agent-harness",
  "agent_interfaces": [
    {
      "interface": "cli",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": false
    }
  ],
  "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-24T00:30:47.159080+00:00",
  "tested_commit": "cda06c49ceaac207904142ec92bfab793bbd18b1",
  "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": "leepokai/jev-guard",
    "source": "https://github.com/leepokai/jev-guard",
    "commit": "cda06c49ceaac207904142ec92bfab793bbd18b1",
    "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": "cda06c49ceaac207904142ec92bfab793bbd18b1",
      "url": "https://github.com/leepokai/jev-guard"
    },
    "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 jev-guard's documented safety check on a tool call (jev-guard check Bash '{\"command\":\"rm -rf ~/\"}') and get a allow/ask/deny verdict from the Jev model",
    "operation_scope": "partial checks",
    "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/leepokai--jev-guard-claude-haiku-5-5-1792801374704956307.json"
}
