{
  "run_id": "voodoomods--hypgraph-claude-haiku-5-5-1793158439260896154",
  "date": "2026-10-28T03:37:07.770714+00:00",
  "repo": "voodoomods/hypgraph",
  "kind": "mcp",
  "source": "https://github.com/voodoomods/hypgraph",
  "commit": "cb6b9745076a2ce216c1a7bbcdfdf60554ad4bcb",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-c03644542c69939a9374958136a8b3431f7456269d3fb4b3c433785f59cfd637",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 157.76918365500023,
  "total_s": 188.50979852676392,
  "steps": [
    "cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat README.md 2>/dev/null | head -150",
    "echo $CDP_URL; curl -s -m 10 -i $CDP_URL/json/version; echo; ls <guest-path>; ls /inputs 2>&1",
    "cd <guest-path> && sed -n 150,400p README.md | cut -c1-400",
    "cd <guest-path> && grep -n -i \"install\\|quick\\|pip \\|python\" README.md | cut -c1-300 | head -40; grep -n \"requires-python\" pyproject.toml; ls .coldpass dev src tests",
    "mkdir -p <guest-path> && cd <guest-path> && python3 -m venv <guest-path> && <guest-path> install -q --upgrade pip 2>&1 | tail -3; <guest-path> install \"<guest-path>\" 2>&1 | tail -5; <guest-path> --help 2>&1 | head -60",
    "mkdir -p <guest-path> && cd <guest-path> && <guest-path> demo 2>&1 | head -40; echo \"rc=${PIPESTATUS[0]}\"; ls -la <guest-path>",
    "cd <guest-path> && H=<guest-path>; $H --db research.hypgraph report 2>&1 | head -30; echo ---; $H bound 0 50 --exposure 1e6 2>&1; echo \"rc=$?\"; echo ---; $H --db research.hypgraph refusals 2>&1 | head -15",
    "cd <guest-path> && grep -n \"hypgraph bound\\|hypgraph demo  \\|no dependencies\\|pip install hypgraph\" README.md | cat -A | cut -c1-250; echo ---; grep -rn \"def bound\\|def _bound\\|\\\"bound\\\"\" src/hypgraph/*.py | head; echo ---; grep -rln -i \"cron\\|schedule\\|webhook\\|while True\\|--once\\|--now\" src | head",
    "cd <guest-path> && grep -n -i \"cron\\|schedule\\|webhook\\|while True\\|--once\\|--now\" src/hypgraph/server.py src/hypgraph/coord.py src/hypgraph/bundle.py | cut -c1-220 | head -20; echo ---; grep -n \"^def \\|^async def \" src/hypgraph/mcp.py | head -5; sed -n 440,460p src/hypgraph/mcp.py | cut -c1-200",
    "cd <guest-path> && sed -n 1,12p src/hypgraph/coord.py | cut -c1-200; sed -n 232,250p src/hypgraph/coord.py | cut -c1-200; grep -n \"coord\" src/hypgraph/cli.py | head -5",
    "cd <guest-path> && grep -n \"hypgraph report  \\|hypgraph refusals\" README.md | cat -A | cut -c1-200; cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"<guest-path>\",\"--db\",\"<guest-path>\",\"--as\",\"claude\",\"mcp\"],\"cwd\":\"<guest-path>\",\"tool\":\"bound\",\"arguments\":{\"k\":0,\"n\":50,\"exposure\":1000000},\"expected_text\":\"0 of 50\"}\nEOF\npython3 -I -c 'import json;print(json.load(open(\"<guest-path>\"))[\"tool\"])'",
    "cd <guest-path> && cat > .coldpass/claims.json <<'EOF'\n[{\"kind\":\"claim\",\"claim\":\"bound reports what 0 of 50 supports for a never claim\",\"source\":\"`hypgraph bound 0 50 --exposure 1e6` (or the MCP tool `bound`) answers\",\"input\":\"k=0 n=50 exposure=1e6\",\"expected\":\"rate 0% with 95% interval up to 5.8%\",\"probe_kind\":\"mcp\",\"argv\":[\"<guest-path>\",\"--db\",\"<guest-path>\",\"--as\",\"claude\",\"mcp\"],\"tool\":\"bound\",\"arguments\":{\"k\":0,\"n\":50,\"exposure\":1000000},\"expected_text\":\"0 of 50\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"hypgraph bound prints the 95% upper bound for 0 of 50\",\"source\":\"`hypgraph bound 0 50 --exposure 1e6` (or the MCP tool `bound`) answers\",\"input\":\"0 50 --exposure 1e6\",\"expected\":\"0 of 50 observed with interval up to 5.8%\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"bound\",\"0\",\"50\",\"--exposure\",\"1e6\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"0 of 50 observed: rate 0% (95% interval 0% to 5.8%)\"},\n{\"kind\":\"claim\",\"claim\":\"hypgraph report generates the facts from the record\",\"source\":\"hypgraph report      # the facts, generated from the record\",\"input\":\"research.hypgraph from demo\",\"expected\":\"a facts section listing claims and results\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"--db\",\"<guest-path>\",\"report\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"Facts from the research graph\"}]\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[{\"kind\":\"example\",\"claim\":\"demo builds a worked investigation, and refusals are logged\",\"source\":\"README.md Try it / Every refusal is also logged\",\"input\":\"research.hypgraph from hypgraph demo\",\"expected\":\"refusals listed per author\",\"argv\":[\"<guest-path>\",\"--db\",\"<guest-path>\",\"refusals\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"Overclaims caught\"}]\nEOF\n<env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60",
    "cd <guest-path> && cat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Inspected README.md and src/hypgraph entry points (cli.py commands, mcp.py tools, server.py, coord.py). No cron, scheduler, --once/--now, or polling loop is documented. The only while-True loops are the SSE stream in server.py (GET /api/graph/stream), a helper walking supersedes chains in coord.py, and a coord.py loop over replaced orders; none is a product trigger cycle.\",\"checks\":[]}\nEOF\ncat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":null,\"operation\":\"Install HypGraph from the pinned source and run its README quickstart: hypgraph demo, report, bound, refusals, and the MCP bound tool\",\"operation_scope\":\"Linux guest, Python 3.12.3 venv at <guest-path> (README requires Python >=3.10). Read-only operations on the demo graph; no external services, browser, or credentials used. CDP endpoint responded HTTP 200 but was not needed.\",\"steps\":[\"python3 -m venv <guest-path>\",\"pip install \\\"hypgraph[mcp]\\\" (from pinned checkout <guest-path>)\",\"hypgraph demo (built research.hypgraph in <guest-path>, exit 0)\",\"hypgraph --db research.hypgraph report\",\"hypgraph bound 0 50 --exposure 1e6\",\"hypgraph --db research.hypgraph refusals\",\"hypgraph --db research.hypgraph --as claude mcp, MCP tool bound(k=0,n=50,exposure=1000000)\"],\"deviations\":[\"README says pip install hypgraph (PyPI); installed the pinned local checkout with the [mcp] extra instead so the tested code is the pinned commit.\",\"hypgraph demo writes to the current directory, so it was run in <guest-path> rather than the checkout to keep the workspace clean.\",\"hypgraph serve (the web UI) was not started; the README quickstart lists it but it is an interactive long-running server and was not needed to exercise the product.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":null,\"suggested_fix\":\"None required for this run. No README-documented cycle or scheduler exists, so no cycle check was run.\"}\nEOF\npython3 -I -c 'import json;[json.load(open(\"<guest-path>\"+f)) for f in [\"report.json\",\"cycles.json\",\"examples.json\",\"claims.json\",\"probe.json\"]];print(\"json ok\")'; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -I -c 'import json,sys; d=json.load(sys.stdin); print(d[\"valid\"], d[\"problems\"], d[\"replay\"][\"status\"])' 2>&1 | tail -5"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Install HypGraph from the pinned source and run its README quickstart: hypgraph demo, report, bound, refusals, and the MCP bound tool",
  "suggested_fix": null,
  "tokens_in": 285273,
  "tokens_out": 10157,
  "cost_usd": 0.014579020000000002,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "<guest-path>",
          "--db",
          "<guest-path>",
          "--as",
          "claude",
          "mcp"
        ],
        "kind": "mcp",
        "serverInfo": {
          "name": "hypgraph",
          "version": "0.7.1",
          "websiteUrl": "https://hypgraph.com"
        },
        "tools": [
          "overview",
          "find",
          "show",
          "start_investigation",
          "add",
          "link",
          "revise",
          "withdraw",
          "retract_link",
          "review",
          "next_experiments",
          "work_queue",
          "claim_work",
          "register_run",
          "report",
          "verify",
          "bound",
          "check_report",
          "refusal_log",
          "briefing",
          "issue_work",
          "my_work",
          "check_work",
          "return_work",
          "accept_work",
          "rework",
          "cancel_work",
          "completion",
          "stage",
          "settle_work",
          "cancel_moot",
          "schema"
        ],
        "tool_schema_bytes": 21264,
        "tool_result": {
          "_meta": {
            "fastmcp": {
              "wrap_result": true
            }
          },
          "content": [
            {
              "text": "0 of 50 observed: rate 0% (95% interval 0% to 5.8%)\n'never' here means: at most 5.8% \u2014 1 in 20 \u2014 at 95% confidence\n  to bound it below 1 in 100: about 299 trials with none\n  to bound it below 1 in 1,000: about 2,995 trials with none\n  to bound it below 1 in 10,000: about 29,956 trials with none\nacross 1,000,000 uses: up to 58,155 not ruled out (95%)",
              "type": "text"
            }
          ],
          "isError": false,
          "structuredContent": {
            "result": "0 of 50 observed: rate 0% (95% interval 0% to 5.8%)\n'never' here means: at most 5.8% \u2014 1 in 20 \u2014 at 95% confidence\n  to bound it below 1 in 100: about 299 trials with none\n  to bound it below 1 in 1,000: about 2,995 trials with none\n  to bound it below 1 in 10,000: about 29,956 trials with none\nacross 1,000,000 uses: up to 58,155 not ruled out (95%)"
          }
        },
        "tool_result_checked": true,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "No problems traced to this repository code in these checks.",
    "expected": "Reviewed as expected for a test run: attempted writes that failed, so nothing was written.",
    "findings": [],
    "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=voodoomods--hypgraph-claude-haiku-5-5-1793158439260896154",
    "evidence_file": "/data/safety/voodoomods--hypgraph-claude-haiku-5-5-1793158439260896154.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": 13,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "cb6b9745076a2ce216c1a7bbcdfdf60554ad4bcb",
    "url": "https://github.com/voodoomods/hypgraph"
  },
  "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": 13,
  "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/voodoomods/hypgraph",
  "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/hypgraph entry points (cli.py commands, mcp.py tools, server.py, coord.py). No cron, scheduler, --once/--now, or polling loop is documented. The only while-True loops are the SSE stream in server.py (GET /api/graph/stream), a helper walking supersedes chains in coord.py, and a coord.py loop over replaced orders; none is a product trigger cycle.",
      "evidence": "Inspected README.md and src/hypgraph entry points (cli.py commands, mcp.py tools, server.py, coord.py). No cron, scheduler, --once/--now, or polling loop is documented. The only while-True loops are the SSE stream in server.py (GET /api/graph/stream), a helper walking supersedes chains in coord.py, and a coord.py loop over replaced orders; none is a product trigger cycle.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "bound reports what 0 of 50 supports for a never claim",
      "source": "`hypgraph bound 0 50 --exposure 1e6` (or the MCP tool `bound`) answers",
      "input": "{\"tool\": \"bound\", \"arguments\": {\"k\": 0, \"n\": 50, \"exposure\": 1000000}}",
      "expected": "rate 0% with 95% interval up to 5.8%",
      "command": "<guest-path> --db <guest-path> --as claude mcp tools/call {\"tool\": \"bound\", \"arguments\": {\"k\": 0, \"n\": 50, \"exposure\": 1000000}}",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: 0 of 50",
      "evidence": "\u20260 of 50 observed: rate 0% (95% interval 0% to 5.8%)\\n'never' here means: at most 5.8% \u2014 1 in 20 \u2014 at 95% confidence\\n  to bound it below 1 in 100: about 299 trials with none\\n  to bound it below 1 in 1,000: about 2,995 trials with none\\n  to bound it below 1 in 10,000: about 29,956 trials with none\\nacross 1,000,000 uses: up to 58,155 not ruled out (95%)\", \"type\": \"text\"}], \"isError\": false, \"structuredContent\": {\"result\": \"0 of 50 observed: rate 0% (95% interval 0% to 5.8%)\\n'never' here means: at most 5.8% \u2014 1 in 20 \u2014 at 95% confidence\\n  to bound it below 1 in 100: about 299 trials with non",
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "hypgraph bound prints the 95% upper bound for 0 of 50",
      "source": "`hypgraph bound 0 50 --exposure 1e6` (or the MCP tool `bound`) answers",
      "input": "0 50 --exposure 1e6",
      "expected": "0 of 50 observed with interval up to 5.8%",
      "command": "<guest-path> bound 0 50 --exposure 1e6",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: 0 of 50 observed: rate 0% (95% interval 0% to 5.8%)",
      "evidence": "0 of 50 observed: rate 0% (95% interval 0% to 5.8%)\n'never' here means: at most 5.8% \u2014 1 in 20 \u2014 at 95% confidence\n  to bound it below 1 in 100: about 299 trials with none\n  to bound it below 1 in 1,000: about 2,995 trials with none\n  to bound it below 1 in 10,000: about 29,956 trials with none\nacross 1,000,000 uses: up to 58,155 not ruled out (95%)\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "hypgraph report generates the facts from the record",
      "source": "hypgraph report      # the facts, generated from the record",
      "input": "research.hypgraph from demo",
      "expected": "a facts section listing claims and results",
      "command": "<guest-path> --db <guest-path> report",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Facts from the research graph",
      "evidence": "\u2026Facts from the research graph \u2014 INV1 How does cholera spread? Broad Street, 1854 (active)\n_Generated from the record at event 59; do not edit \u2014 regenerate it from the graph. Interpretation goes below this section._\n\n### Claims\n\n| claim | standing | review | verdicts | statement |\n|---|---|---|---|---|\n| CL1 v2 | active | checked | whitehead: objection (RV1, on v1); whitehead: resolved (RV2, on v1); whitehead: replicated (RV3, on v1); whitehead: checked (RV4, on v2) | The Golden Square outbreak was spread by water from the Broad Street pump: those who drank it died, while 5 of the 535 workhouse",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "demo builds a worked investigation, and refusals are logged",
      "source": "README.md Try it / Every refusal is also logged",
      "input": "research.hypgraph from hypgraph demo",
      "command": "<guest-path> --db <guest-path> refusals",
      "evidence": "EXCLUSION_WITHOUT_POWER \u00d71, EVIDENCE_MISSING \u00d71, SCOPE_MISSING \u00d71 |\n\n| rule | times |\n|---|---|\n| `EXCLUSION_WITHOUT_POWER` | 1 |\n| `EVIDENCE_MISSING` | 1 |\n| `SCOPE_MISSING` | 1 |\n| `ABSOLUTE_WITHOUT_COUNT` | 1 |\n\n### Latest\n\n- 1854-11-20T10:00 **you**: \u201cThe water-company comparison rules out the miasma theory.\u201d \u2014 EXCLUSION_WITHOUT_POWER \u2192 not fixed\n- 1854-09-08T10:00 **you**: \u201cRemoving the pump handle ended the epidemic.\u201d \u2014 EVIDENCE_MISSING, SCOPE_MISSING \u2192 not fixed\n- 1854-09-07T10:00 **you**: \u201cEvery death in the outbreak was near the Broad Street pump.\u201d \u2014 ABSOLUTE_WITHOUT_COUNT \u2192 not fixed",
      "deferred": false,
      "expected": "refusals listed per author",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-28T01:52:53Z",
    "commits_90d": 151,
    "merged_prs_90d": 28,
    "open_issues": 0,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": null,
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 0 days ago; 151 commits and 28 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 0 days ago; 151 commits and 28 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases",
  "maintained": "active",
  "maintained_note": "last commit 0 days ago",
  "last_commit_at": "2026-10-28T01:52:53Z",
  "last_release_at": null,
  "open_issues": null,
  "answered_issues": null,
  "platforms_claimed": [
    "windows"
  ],
  "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": 32,
    "schema_bytes": 21264,
    "tokens_approx": 5316,
    "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-28T03:37:07.770714+00:00",
  "tested_commit": "cb6b9745076a2ce216c1a7bbcdfdf60554ad4bcb",
  "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": "voodoomods/hypgraph",
    "source": "https://github.com/voodoomods/hypgraph",
    "commit": "cb6b9745076a2ce216c1a7bbcdfdf60554ad4bcb",
    "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": "cb6b9745076a2ce216c1a7bbcdfdf60554ad4bcb",
      "url": "https://github.com/voodoomods/hypgraph"
    },
    "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 HypGraph from the pinned source and run its README quickstart: hypgraph demo, report, bound, refusals, and the MCP bound tool",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "mcp",
    "test_version": "readme-c03644542c69939a9374958136a8b3431f7456269d3fb4b3c433785f59cfd637",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": "/transcripts/voodoomods--hypgraph-claude-haiku-5-5-1793158439260896154.txt",
  "report_url": "/reports/voodoomods--hypgraph-claude-haiku-5-5-1793158439260896154.json"
}
