{
  "run_id": "hibou04-ops--antemortem-cli-claude-haiku-5-5-1793169396472211772",
  "date": "2026-10-28T06:49:15.243056+00:00",
  "repo": "hibou04-ops/antemortem-cli",
  "kind": "mcp",
  "source": "https://github.com/hibou04-ops/antemortem-cli",
  "commit": "b14752ddb4d42e79141d431b388411139fed2206",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-a0d0e27a4d0fd4c50903587087c25799260ee2578ee1953a6356df3e4fd02c35",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 612.9605964680013,
  "total_s": 758.770761013031,
  "steps": [
    "cd <guest-path> && ls -la && git status 2>&1 | head -3; python3 --version; cat README.md | head -c 6000",
    "cd <guest-path> && grep -n -i \"try it in 30\\|offline demo\\|demo\\|antemortem doctor\\|lint\\|--out\\|mcp\" README.md | head -80; ls .coldpass; cat pyproject.toml | head -40",
    "cd <guest-path> && sed -n 231,250p README.md; python3 -m venv <guest-path> && <guest-path> install -q --upgrade pip 2>&1 | tail -3; echo rc=$?",
    "cd <guest-path> && <guest-path> install -e \".[mcp]\" 2>&1 | tail -5; echo rc=$?; ls <guest-path> | grep antemortem",
    "cd <guest-path> && ls examples; PYTHONIOENCODING=utf-8 <guest-path> examples/demo_replay.py; echo rc=$?",
    "cd <guest-path> && <guest-path> lint examples/demo_antemortem.md --repo .; echo rc=$?; <guest-path> metrics examples/demo_antemortem.json --repo .; echo rc=$?",
    "cd <guest-path> && grep -n \"def \\|@mcp\\|WORKSPACE\" src/antemortem/mcp.py | head -60; sed -n 1,60p docs/MCP.md | cut -c1-300",
    "cd <guest-path> && F=$(<guest-path> -c \"import antemortem,os;print(os.path.dirname(antemortem.__file__))\" 2>/dev/null); echo $F; ls $F; grep -rn \"def lint\\|def scaffold\\|def run\" $F/*.py $F/mcp/*.py 2>/dev/null | head",
    "cd <guest-path> && sed -n 443,470p src/antemortem/mcp/server.py; grep -n \"ANTEMORTEM_WORKSPACE_ROOT\" src/antemortem/mcp/server.py | head -3",
    "cd <guest-path> && grep -rn -i \"cron\\|schedul\\|--once\\|--now\\|webhook\\|while True\" src/antemortem --include=*.py | head; ls /inputs 2>&1; ls <guest-path>; <guest-path> install -q pytest 2>&1 | tail -2; cd <guest-path> && timeout 900 <guest-path> -m pytest -q 2>&1 | tail -5; echo rc=$?",
    "cd <guest-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"<guest-path>\"],\"cwd\":\"<guest-path>\",\"tool\":\"lint\",\"arguments\":{\"document\":\"examples/demo_antemortem.md\",\"repo\":\".\"},\"expected_text\":\"\\\"ok\\\": true\"}\nEOF\ncat probe.json; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -40",
    "grep -n \"expected_text\\|tool_result\\|json.dumps\" <guest-path> | head -40",
    "cd <guest-path> && sed -n 143,200p src/antemortem/mcp/server.py | cut -c1-200",
    "mkdir -p <guest-path> && cd <guest-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"<guest-path>\"],\"cwd\":\"<guest-path>\",\"tool\":\"scaffold\",\"arguments\":{\"name\":\"probe-check\",\"output_dir\":\"<guest-path>\"},\"output_directory\":\"<guest-path>\",\"expected_text\":\"Fill in spec, traps, and files_to_read\"}\nEOF\ncd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -c 1500",
    "rm -rf <guest-path> && cd <guest-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"<guest-path>\"],\"cwd\":\"<guest-path>\",\"tool\":\"lint\",\"arguments\":{\"document\":\"examples/demo_antemortem.md\",\"repo\":\".\",\"strict_evidence\":true},\"expected_text\":\"Status\"}\nEOF\ncd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | grep -o 'tool_result.\\{0,400\\}' | head -2",
    "cd <guest-path> && grep -n -F -e '`lint` exits `0` if every citation checks out on disk, `1` if any is fabricated or stale.' -e 'requires the cited *text*, not just the line range, to be unchanged.' -e 'antemortem metrics examples/demo_antemortem.json --repo .' -e 'Zero LLM calls. Catches the model hallucinating its own evidence.' -e 'The MCP server exposes exactly these three tools' README.md | cut -c1-200",
    "cd <guest-path> && cat > claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"lint exits 0 when every citation checks out on disk\",\"source\":\"`lint` exits `0` if every citation checks out on disk, `1` if any is fabricated or stale.\",\"input\":\"examples/demo_antemortem.md\",\"expected\":\"PASS report for the demo artifact\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"lint\",\"examples/demo_antemortem.md\",\"--repo\",\".\"],\"expected_text\":\"PASS -- demo_antemortem.md validates clean\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"strict-evidence lint reports missing evidence hashes through the MCP lint tool\",\"source\":\"`--strict-evidence` on `lint` requires the cited *text*, not just the line range, to be unchanged.\",\"input\":\"examples/demo_antemortem.md with strict_evidence true\",\"expected\":\"violation naming missing evidence_hash\",\"probe_kind\":\"mcp\",\"argv\":[\"<guest-path>\"],\"tool\":\"lint\",\"arguments\":{\"document\":\"examples/demo_antemortem.md\",\"repo\":\".\",\"strict_evidence\":true},\"expected_text\":\"classification t1: missing evidence_hash\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"metrics reports the fabrication rate for the demo artifact\",\"source\":\"antemortem metrics examples/demo_antemortem.json --repo .\",\"input\":\"examples/demo_antemortem.json\",\"expected\":\"Fabrication rate of 0.0 percent of cited\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"metrics\",\"examples/demo_antemortem.json\",\"--repo\",\".\"],\"expected_text\":\"Fabrication rate: 0.0% of cited\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"documented offline demo replays a recon and prints the decision\",\"source\":\"README.md Try it in 30 seconds\",\"input\":\"examples/demo_replay.py\",\"expected\":\"PROCEED_WITH_GUARDS decision\",\"argv\":[\"<guest-path>\",\"examples/demo_replay.py\"],\"cwd\":\"<guest-path>\",\"env\":{\"PYTHONIOENCODING\":\"utf-8\"},\"expected_text\":\"PROCEED_WITH_GUARDS\"},\n{\"kind\":\"example\",\"claim\":\"documented offline test suite passes\",\"source\":\"README.md offline test suite (python -m pytest -q)\",\"input\":\"tests directory\",\"expected\":\"tests pass\",\"argv\":[\"<guest-path>\",\"-m\",\"pytest\",\"-q\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"passed\"}\n]\nEOF\ncat > cycles.json <<'EOF'\n{\"detected\":false,\"checks\":[],\"reason\":\"Inspected README.md and src/antemortem entrypoints (cli.py, mcp/server.py, commands/). No cron, loop, webhook, watch, --once or --now scheduler was found; antemortem is a one-shot CLI and MCP tool server.\"}\nEOF\nfor f in claims examples cycles probe; do <guest-path> -m json.tool $f.json >/dev/null && echo \"$f ok\"; done",
    "cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; wc -c <guest-path>; head -c 3000 <guest-path>",
    "cd <guest-path> && cat > probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"<guest-path>\"],\"cwd\":\"<guest-path>\",\"tool\":\"lint\",\"arguments\":{\"document\":\"examples/demo_antemortem.md\",\"repo\":\".\",\"strict_evidence\":true},\"expected_text\":\"classification t1: missing evidence_hash\"}\nEOF\ncd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo rc=$?; python3 -c \"\nimport json;d=json.load(open('<guest-path>'))\nprint('valid',d.get('valid')); print('problems',d.get('problems'))\nr=d.get('replay',{}); print('replay',r.get('status'), r.get('evidence_strength'))\nfor c in d.get('claims',[]): print('CLAIM',c.get('claim'),'|',c.get('verdict'),'|',c.get('outcome'))\n\" 2>&1 | cut -c1-600; ",
    "cd <guest-path> && python3 -c \"\nimport json;d=json.load(open('<guest-path>'))\nprint(list(d.keys()))\nfor k in ('claims','examples','cycles'):\n  v=d.get(k)\n  print(k, json.dumps(v)[:700] if v is not None else None)\n\" ; ls .coldpass",
    "cd <guest-path> && python3 -c \"\nimport json;d=json.load(open('.coldpass/observed.json'))\nprint(json.dumps(d)[:2500])\n\"",
    "cd <guest-path> && cat > report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":null,\"operation\":\"Install antemortem 0.12.0 from the README and run its offline demo, lint, metrics, and MCP lint tool on the bundled demo recon artifact\",\"operation_scope\":\"Offline only: no provider API key or network calls. Python 3.12.3 in a venv at <guest-path> (README requires 3.11+). Source is the workspace copy; the pinned commit was not fetched because the workspace was already present and is not a git repo.\",\"steps\":[\"python3 -m venv <guest-path>\",\"<guest-path> install -e \\\".[mcp]\\\"  (installed antemortem-0.12.0 and antemortem-mcp)\",\"PYTHONIOENCODING=utf-8 python examples/demo_replay.py  (run with venv python)\",\"antemortem lint examples/demo_antemortem.md --repo .  -> PASS\",\"antemortem metrics examples/demo_antemortem.json --repo .  -> Fabrication rate 0.0%\",\"antemortem-mcp stdio server, tools/call lint with strict_evidence=true -> ok:false with violations, returned as product output\",\"python -m pytest -q  (offline test suite, all passed)\"],\"deviations\":[\"MCP probe: the default lint call returns only ok/violations/checked with no quoted text, and the checker matches expected_text against escaped JSON, so I used strict_evidence=true, which returns specific violation strings. ok:false is the product's real result on this demo artifact (no evidence_hash), not a failure of the run.\",\"MCP scaffold was tried as a probe but rejected by the checker because output_directory must match an argv destination; MCP tool arguments cannot be marked, so I dropped it and removed the empty <guest-path> parent I had created.\",\"Checker path: /inputs/coldpass-preflight.py does not exist in the VM, so I used <guest-path> as the task's checker instruction allowed.\",\"Pin not applied: the workspace is not a git repository and was already populated, so I did not run the git fetch/reset steps.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":null,\"suggested_fix\":\"None required for the tested operations. Note that run and scaffold were not exercised: run needs a provider API key and scaffold needs an output directory the checker cannot mark.\"}\nEOF\n<guest-path> -m json.tool report.json >/dev/null && echo report ok; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | head -c 300; echo; ls <guest-path> 2>&1 | head -1"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Install antemortem 0.12.0 from the README and run its offline demo, lint, metrics, and MCP lint tool on the bundled demo recon artifact",
  "suggested_fix": null,
  "tokens_in": 615725,
  "tokens_out": 16498,
  "cost_usd": 0.022402359999999996,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "<guest-path>"
        ],
        "kind": "mcp",
        "serverInfo": {
          "name": "antemortem",
          "version": "1.30.0"
        },
        "tools": [
          "scaffold",
          "run",
          "lint"
        ],
        "tool_schema_bytes": 6026,
        "tool_result": {
          "content": [
            {
              "type": "text",
              "text": "{\n  \"ok\": false,\n  \"violations\": [\n    \"classification t1: missing evidence_hash\",\n    \"classification t1: cited range too large (44 lines; max 40)\",\n    \"classification t2: missing evidence_hash\",\n    \"classification t3: missing evidence_hash\",\n    \"new_trap t_new_1: missing evidence_hash\",\n    \"new_trap t_new_1: cited range too large (46 lines; max 40)\"\n  ],\n  \"checked\": 4\n}"
            }
          ],
          "isError": false
        },
        "tool_result_checked": true,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 90 known vulnerability.",
    "expected": "Reviewed as expected for a test run: attempted writes that failed, so nothing was written.",
    "findings": [
      {
        "kind": "known-vulnerability",
        "count": 90,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_count": 11
      }
    ],
    "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=hibou04-ops--antemortem-cli-claude-haiku-5-5-1793169396472211772",
    "evidence_file": "/data/safety/hibou04-ops--antemortem-cli-claude-haiku-5-5-1793169396472211772.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.310 (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": 22,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "b14752ddb4d42e79141d431b388411139fed2206",
    "url": "https://github.com/hibou04-ops/antemortem-cli"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 22,
  "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": "local",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "mcp"
  ],
  "license": "Apache-2.0",
  "repo_url": "https://github.com/hibou04-ops/antemortem-cli",
  "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": "Inspected README.md and src/antemortem entrypoints (cli.py, mcp/server.py, commands/). No cron, loop, webhook, watch, --once or --now scheduler was found; antemortem is a one-shot CLI and MCP tool server.",
      "evidence": "Inspected README.md and src/antemortem entrypoints (cli.py, mcp/server.py, commands/). No cron, loop, webhook, watch, --once or --now scheduler was found; antemortem is a one-shot CLI and MCP tool server.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "lint exits 0 when every citation checks out on disk",
      "source": "`lint` exits `0` if every citation checks out on disk, `1` if any is fabricated or stale.",
      "input": "examples/demo_antemortem.md",
      "expected": "PASS report for the demo artifact",
      "command": "<guest-path> lint examples/demo_antemortem.md --repo .",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: PASS -- demo_antemortem.md validates clean",
      "evidence": "PASS -- demo_antemortem.md validates clean (schema + classifications)\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "strict-evidence lint reports missing evidence hashes through the MCP lint tool",
      "source": "`--strict-evidence` on `lint` requires the cited *text*, not just the line range, to be unchanged.",
      "input": "{\"tool\": \"lint\", \"arguments\": {\"document\": \"examples/demo_antemortem.md\", \"repo\": \".\", \"strict_evidence\": true}}",
      "expected": "violation naming missing evidence_hash",
      "command": "<guest-path> tools/call {\"tool\": \"lint\", \"arguments\": {\"document\": \"examples/demo_antemortem.md\", \"repo\": \".\", \"strict_evidence\": true}}",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: classification t1: missing evidence_hash",
      "evidence": "\u2026classification t1: missing evidence_hash\\\",\\n    \\\"classification t1: cited range too large (44 lines; max 40)\\\",\\n    \\\"classification t2: missing evidence_hash\\\",\\n    \\\"classification t3: missing evidence_hash\\\",\\n    \\\"new_trap t_new_1: missing evidence_hash\\\",\\n    \\\"new_trap t_new_1: cited range too large (46 lines; max 40)\\\"\\n  ],\\n  \\\"checked\\\": 4\\n}\"}], \"isError\": false}",
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "metrics reports the fabrication rate for the demo artifact",
      "source": "antemortem metrics examples/demo_antemortem.json --repo .",
      "input": "examples/demo_antemortem.json",
      "expected": "Fabrication rate of 0.0 percent of cited",
      "command": "<guest-path> metrics examples/demo_antemortem.json --repo .",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Fabrication rate: 0.0% of cited",
      "evidence": "Fabrication rate: 0.0% of cited\n- classification t1 (GHOST): VERIFIED  [src/antemortem/cli.py:1-44]\n- classification t2 (REAL): VERIFIED  [src/antemortem/citations.py:15-25]\n- classification t3 (GHOST): VERIFIED  [src/antemortem/decision.py:30-35]\n- classification t4 (UNRESOLVED): UNRESOLVED (no citation)\n- new_trap t_new_1 (NEW): VERIFIED  [src/antemortem/schema.py:177-222]\nStatus: PASS\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "documented offline demo replays a recon and prints the decision",
      "source": "README.md Try it in 30 seconds",
      "input": "examples/demo_replay.py",
      "command": "<guest-path> examples/demo_replay.py",
      "evidence": "l line ranges in bounds\n  - UNRESOLVED: citation correctly null (t4)\n\n---- Decision gate (four-level enum) ----\nSAFE_TO_PROCEED       no REAL findings; lint and gate checks passed\nPROCEED_WITH_GUARDS   REAL findings exist, every one has remediation     <- THIS RUN\nNEEDS_MORE_EVIDENCE   too many UNRESOLVED relative to total findings\nDO_NOT_PROCEED        high-severity REAL without remediation, OR critic CONTRADICTED\n\n---- Install ----\npip install antemortem\nApache 2.0 - test count reproducible with pytest collection - Anthropic / OpenAI / Gemini / OpenAI-compatible\n\n[demo_replay] elapsed: 55.3s",
      "deferred": false,
      "expected": "PROCEED_WITH_GUARDS decision",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "documented offline test suite passes",
      "source": "README.md offline test suite (python -m pytest -q)",
      "input": "tests directory",
      "command": "<guest-path> -m pytest -q",
      "evidence": "................................. [ 13%]\n........................................................................ [ 26%]\n........................................................................ [ 39%]\n........................................................................ [ 52%]\n........................................................................ [ 66%]\n........................................................................ [ 79%]\n........................................................................ [ 92%]\n........................................                                 [100%]",
      "deferred": false,
      "expected": "tests pass",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-28T03:34:25Z",
    "commits_90d": 3,
    "merged_prs_90d": 2,
    "open_issues": 1,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": "2026-10-28T03:38:28Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 0 days ago; 3 commits and 2 merged PRs in 90 days; 1 open issues, 0 open PRs; latest release 2026-10-28"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 0 days ago; 3 commits and 2 merged PRs in 90 days; 1 open issues, 0 open PRs; latest release 2026-10-28",
  "maintained": "active",
  "maintained_note": "last commit 0 days ago; 1 open issues, 1 answered or closed",
  "last_commit_at": "2026-10-28T03:37:55Z",
  "last_release_at": "2026-10-28T03:38:28Z",
  "open_issues": 1,
  "answered_issues": 1,
  "platforms_claimed": [
    "linux"
  ],
  "topic": "mcp-server",
  "agent_interfaces": [
    {
      "interface": "mcp",
      "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": {
    "tool_count": 3,
    "schema_bytes": 6026,
    "tokens_approx": 1507,
    "estimate_method": "ceil(compact UTF-8 tools/list JSON bytes / 4)",
    "scope": "returned tools/list page only; excludes client framing and tool results"
  },
  "tested_at": "2026-10-28T06:49:15.243056+00:00",
  "tested_commit": "b14752ddb4d42e79141d431b388411139fed2206",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.310 (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": "hibou04-ops/antemortem-cli",
    "source": "https://github.com/hibou04-ops/antemortem-cli",
    "commit": "b14752ddb4d42e79141d431b388411139fed2206",
    "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.310 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "b14752ddb4d42e79141d431b388411139fed2206",
      "url": "https://github.com/hibou04-ops/antemortem-cli"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Install antemortem 0.12.0 from the README and run its offline demo, lint, metrics, and MCP lint tool on the bundled demo recon artifact",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "mcp",
    "test_version": "readme-a0d0e27a4d0fd4c50903587087c25799260ee2578ee1953a6356df3e4fd02c35",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": "/transcripts/hibou04-ops--antemortem-cli-claude-haiku-5-5-1793169396472211772.txt",
  "report_url": "/reports/hibou04-ops--antemortem-cli-claude-haiku-5-5-1793169396472211772.json"
}
