{
  "run_id": "sugarsweetrobotics--idl_parser-claude-haiku-5-5-1793171962179109724",
  "checker": {
    "claims": [
      {
        "claim": "Examples run from a source checkout with the checkout's idl_parser and print the parsed union types",
        "command": "python3 examples/union_example.py",
        "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",
        "expected": "prints unions in module shapes",
        "input": "examples/union_example.py",
        "kind": "claim",
        "outcome": "Real input produced the expected result: unions in module shapes",
        "returncode": 0,
        "source": "Run them with e.g. `python examples/union_example.py` (in a source checkout no install is needed).",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "example.py is the smallest example: it parses a module and an interface",
        "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)\n",
        "expected": "prints interface my_module::Calculator",
        "input": "examples/example.py",
        "kind": "claim",
        "outcome": "Real input produced the expected result: interface my_module::Calculator",
        "returncode": 0,
        "source": "| [`example.py`](examples/example.py) | the smallest example: a module and an interface |",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "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.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "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.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "python3",
        "examples/union_example.py"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "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]",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Run the smallest documented example from a source checkout",
        "command": "python3 examples/example.py",
        "deferred": false,
        "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)",
        "expected": "interface my_module::Calculator printed",
        "input": "examples/example.py",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md / examples/example.py",
        "verdict": "yes"
      },
      {
        "claim": "Run the struct example from the README examples table",
        "command": "python3 examples/struct_example.py",
        "deferred": false,
        "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')]",
        "expected": "structs listed for my_module",
        "input": "examples/struct_example.py",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md examples table (struct_example.py)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
