{
  "run_id": "sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724",
  "date": "2026-10-28T07:20:59.398264+00:00",
  "repo": "sugarsweetrobotics/idl_parser",
  "kind": "repo",
  "source": "https://github.com/sugarsweetrobotics/idl_parser",
  "commit": "84ddf43391382521e765729858bf704e2c579215",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-a0d0e27a4d0fd4c50903587087c25799260ee2578ee1953a6356df3e4fd02c35",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 68.05507635600225,
  "total_s": 97.21910500526428,
  "steps": [
    "cd <guest-path> && ls -la && cat README.md | head -c 6000 && python3 --version",
    "cd <guest-path> && ls -la .coldpass examples && grep -n -i \"python\" pyproject.toml && ls <guest-path> /inputs 2>&1; python3 -m pip --version; git --version 2>&1 | head -1; cat examples/example.py | head -30",
    "cd <guest-path> && git init -q && git remote add origin https://github.com/sugarsweetrobotics/idl_parser && git fetch --depth 1 origin 84ddf43391382521e765729858bf704e2c579215 2>&1 | tail -3; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1; git status --short | head -20",
    "cd /tmp && sudo -n pip install idl_parser 2>&1 | tail -5; echo \"exit=$?\"; python3 -m pip show idl_parser 2>&1 | head -3",
    "sudo -n apt-get -o DPkg::Lock::Timeout=300 install -y python3-venv >/tmp/apt.log 2>&1; echo \"exit=$?\"; tail -2 /tmp/apt.log; python3 -m venv <guest-path> && <guest-path> install -q idl_parser 2>&1 | tail -3; echo \"pip_exit=$?\"; <guest-path> show idl_parser | head -2",
    "cd <guest-path> && cat examples/_path.py | head -20; echo ---; python3 examples/example.py; echo \"exit=$?\"; echo ---; python3 examples/union_example.py | head -20; echo \"exit=$?\"",
    "cd <guest-path> && sed -n 1,60p pyproject.toml | grep -n -A3 -i \"scripts\\|dependencies\"; ls idl_parser docs; ls .github/workflows && grep -n \"run:\" -A2 .github/workflows/*.yml | head -40",
    "cd <guest-path> && grep -rn -i \"cron\\|--once\\|webhook\\|schedule\\|while True\\|sched\" --include=*.py --include=*.md --include=*.toml --include=*.rst idl_parser README.md docs pyproject.toml | head; echo \"grep_exit=$?\"; python3 examples/struct_example.py | head -3; echo \"exit=$?\"; grep -n \"Run them with e.g.\" README.md; grep -n \"the smallest example\" README.md",
    "cd <guest-path> && cat > claims.json <<'EOF'\n[\n  {\"kind\":\"claim\",\"claim\":\"Examples run from a source checkout with the checkout's idl_parser and print the parsed union types\",\"source\":\"Run them with e.g. `python examples/union_example.py` (in a source checkout no install is needed).\",\"input\":\"examples/union_example.py\",\"expected\":\"prints unions in module shapes\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"examples/union_example.py\"],\"expected_text\":\"unions in module shapes\",\"cwd\":\"<guest-path>\"},\n  {\"kind\":\"claim\",\"claim\":\"example.py is the smallest example: it parses a module and an interface\",\"source\":\"| [`example.py`](examples/example.py) | the smallest example: a module and an interface |\",\"input\":\"examples/example.py\",\"expected\":\"prints interface my_module::Calculator\",\"probe_kind\":\"cli\",\"argv\":[\"python3\",\"examples/example.py\"],\"expected_text\":\"interface my_module::Calculator\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"python3\",\"examples/union_example.py\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"unions in module shapes\"}\nEOF\ncat > examples.json <<'EOF'\n[\n  {\"kind\":\"example\",\"claim\":\"Run the smallest documented example from a source checkout\",\"source\":\"README.md / examples/example.py\",\"input\":\"examples/example.py\",\"expected\":\"interface my_module::Calculator printed\",\"argv\":[\"python3\",\"examples/example.py\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"interface my_module::Calculator\"},\n  {\"kind\":\"example\",\"claim\":\"Run the struct example from the README examples table\",\"source\":\"README.md examples table (struct_example.py)\",\"input\":\"examples/struct_example.py\",\"expected\":\"structs listed for my_module\",\"argv\":[\"python3\",\"examples/struct_example.py\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"structs in my_module\"}\n]\nEOF\ncat > cycles.json <<'EOF'\n{\"detected\":false,\"checks\":[],\"reason\":\"Inspected README.md, pyproject.toml, docs/, examples/ and idl_parser/ sources. idl_parser is a parsing library with no cron, scheduler, loop-driven service, webhook, or --once/--now entry point; the only while True loops are parser iteration in enum.py, interface.py, struct.py, valuetype.py and definitions.py.\"}\nEOF\ncd .. && for f in .coldpass/*.json; do python3 -I -c 'import json,sys; json.load(open(sys.argv[1])); print(\"ok\", sys.argv[1])' \"$f\"; done",
    "cd <guest-path> && cat > report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":null,\"operation\":\"Parse OMG IDL files with idl_parser and print the parsed modules, interfaces, unions and structs via the README's documented example scripts\",\"operation_scope\":\"Python 3.12.3 on Ubuntu (WSL2). Run from the pinned source checkout (84ddf43391382521e765729858bf704e2c579215) with no install, per README. A PyPI install (idl_parser 0.6.1, in <guest-path>) was also done per the README 'How to install' step. No MCP server, HTTP service or browser is involved.\",\"steps\":[\"git init; git remote add origin https://github.com/sugarsweetrobotics/idl_parser; git fetch --depth 1 origin 84ddf43391382521e765729858bf704e2c579215; git reset --mixed FETCH_HEAD\",\"sudo -n pip install idl_parser (README 'How to install') -> blocked by PEP 668 externally-managed-environment error on Ubuntu 24.04\",\"sudo -n apt-get -o DPkg::Lock::Timeout=300 install -y python3-venv; python3 -m venv <guest-path>; <guest-path> install idl_parser\",\"python3 examples/example.py\",\"python3 examples/union_example.py\",\"python3 examples/struct_example.py\"],\"deviations\":[\"README 'sudo pip install idl_parser' failed under PEP 668 (externally-managed-environment) on the system Python; worked around by installing python3-venv via apt and installing into a venv at <guest-path>\",\"The venv install pulled idl_parser 0.6.1 from PyPI, which is not the pinned commit; the examples were run from the pinned checkout (examples/_path.py prefers the checkout package), so the checkout code is what was exercised.\",\"No CLI or MCP entry point exists, so probe and claims are cli runs of the README's documented example scripts instead of MCP tool calls.\",\"The sphinx docs build and unittest suite from CI were not run as evidence; they are not README commands.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":null,\"suggested_fix\":\"Make the README install step work on PEP 668 systems (e.g. document a venv or pipx install), and document that examples are run from a checkout.\"}\nEOF\npython3 -I -c 'import json; json.load(open(\"report.json\")); print(\"report ok\")'; cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Parse OMG IDL files with idl_parser and print the parsed modules, interfaces, unions and structs via the README's documented example scripts",
  "suggested_fix": null,
  "tokens_in": 160453,
  "tokens_out": 7306,
  "cost_usd": 0.009426209999999997,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "python3",
          "examples/union_example.py"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "unions in module shapes: ['Shape', 'Value', 'Reading', 'OptionalDouble']\n\nunion shapes::Shape switch (ShapeKind)\n  case CIRCLE -> radius: primitive double\n  case RECTANGLE -> rect: struct shapes::Rect (members: top_left, width, height)\n  case POLYGON -> vertices: typedef shapes::PointSeq = sequence of Point2D\n  case POINT -> point: struct shapes::Point2D (members: x, y)\n\nunion shapes::Value switch (long)\n  case -1, 0 -> error_message: primitive string\n  case 1 -> integer_value: primitive long long\n  case 2 -> matrix: array double [3][3]\n[excerpt truncated]",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "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=sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724",
    "evidence_file": "/data/safety/sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724.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": 10,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "84ddf43391382521e765729858bf704e2c579215",
    "url": "https://github.com/sugarsweetrobotics/idl_parser"
  },
  "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": 10,
  "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": "GPL-3.0",
  "repo_url": "https://github.com/sugarsweetrobotics/idl_parser",
  "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, pyproject.toml, docs/, examples/ and idl_parser/ sources. idl_parser is a parsing library with no cron, scheduler, loop-driven service, webhook, or --once/--now entry point; the only while True loops are parser iteration in enum.py, interface.py, struct.py, valuetype.py and definitions.py.",
      "evidence": "Inspected README.md, pyproject.toml, docs/, examples/ and idl_parser/ sources. idl_parser is a parsing library with no cron, scheduler, loop-driven service, webhook, or --once/--now entry point; the only while True loops are parser iteration in enum.py, interface.py, struct.py, valuetype.py and definitions.py.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Examples run from a source checkout with the checkout's idl_parser and print the parsed union types",
      "source": "Run them with e.g. `python examples/union_example.py` (in a source checkout no install is needed).",
      "input": "examples/union_example.py",
      "expected": "prints unions in module shapes",
      "command": "python3 examples/union_example.py",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: unions in module shapes",
      "evidence": "unions in module shapes: ['Shape', 'Value', 'Reading', 'OptionalDouble']\n\nunion shapes::Shape switch (ShapeKind)\n  case CIRCLE -> radius: primitive double\n  case RECTANGLE -> rect: struct shapes::Rect (members: top_left, width, height)\n  case POLYGON -> vertices: typedef shapes::PointSeq = sequence of Point2D\n  case POINT -> point: struct shapes::Point2D (members: x, y)\n\nunion shapes::Value switch (long)\n  case -1, 0 -> error_message: primitive string\n  case 1 -> integer_value: primitive long long\n  case 2 -> matrix: array double [3][3]\n  default -> raw_points: typedef shapes::PointSeq = seque",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "example.py is the smallest example: it parses a module and an interface",
      "source": "| [`example.py`](examples/example.py) | the smallest example: a module and an interface |",
      "input": "examples/example.py",
      "expected": "prints interface my_module::Calculator",
      "command": "python3 examples/example.py",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: interface my_module::Calculator",
      "evidence": "interface my_module::Calculator\n  long add(in long a, in long b)\n  void reset()\n  boolean divide(in double a, in double b, out double result)\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Run the smallest documented example from a source checkout",
      "source": "README.md / examples/example.py",
      "input": "examples/example.py",
      "command": "python3 examples/example.py",
      "evidence": "interface my_module::Calculator\n  long add(in long a, in long b)\n  void reset()\n  boolean divide(in double a, in double b, out double result)",
      "deferred": false,
      "expected": "interface my_module::Calculator printed",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Run the struct example from the README examples table",
      "source": "README.md examples table (struct_example.py)",
      "input": "examples/struct_example.py",
      "command": "python3 examples/struct_example.py",
      "evidence": "structs in my_module: ['Time', 'Pose', 'Odometry']\n\nstruct my_module::Time\n  sec          long\n  nsec         long\n\nstruct my_module::Pose\n  position     array double [3]\n  orientation  array double [4]\n\nstruct my_module::Odometry\n  stamp        struct my_module::Time\n  frame_id     string\n  pose         struct my_module::Pose\n  covariance   sequence of double\n\nOdometry.stamp members: [('sec', 'long'), ('nsec', 'long')]",
      "deferred": false,
      "expected": "structs listed for my_module",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-28T02:56:40Z",
    "commits_90d": 193,
    "merged_prs_90d": 85,
    "open_issues": 1,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": "2026-10-28T03:42:11Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 0 days ago; 193 commits and 85 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; 193 commits and 85 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; 0 open issues, 13 answered or closed",
  "last_commit_at": "2026-10-28T03:42:11Z",
  "last_release_at": "2026-10-28T03:42:11Z",
  "open_issues": 0,
  "answered_issues": 13,
  "platforms_claimed": [
    "linux"
  ],
  "topic": "other",
  "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-28T07:20:59.398264+00:00",
  "tested_commit": "84ddf43391382521e765729858bf704e2c579215",
  "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": "sugarsweetrobotics/idl_parser",
    "source": "https://github.com/sugarsweetrobotics/idl_parser",
    "commit": "84ddf43391382521e765729858bf704e2c579215",
    "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": "84ddf43391382521e765729858bf704e2c579215",
      "url": "https://github.com/sugarsweetrobotics/idl_parser"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Parse OMG IDL files with idl_parser and print the parsed modules, interfaces, unions and structs via the README's documented example scripts",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-a0d0e27a4d0fd4c50903587087c25799260ee2578ee1953a6356df3e4fd02c35",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": "/transcripts/sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724.txt",
  "report_url": "/reports/sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724.json"
}
