{
  "hub_commit": "ede75c00118e9808e5099da43c26f4619cc3bc37",
  "case": {
    "id": "planar-ik-reachability",
    "title": "Check planar IK target reachability before solving",
    "resolution": "A target outside the sum of link lengths is unreachable for this planar model. Check units, model and target; the corrected example selects a reachable target.",
    "mode": "input",
    "skill_id": "pythonrobotics-planar-ik",
    "bad_skill_id": "pythonrobotics-planar-ik",
    "runtime": "pythonrobotics",
    "source_commit": "cdd0cc888802b584c2d654ca85e3c5460973487d",
    "bad_input": {
      "link_lengths": [
        1,
        1,
        0.5
      ],
      "joint_angles": [
        0.1,
        0.3,
        -0.2
      ],
      "target_xy": [
        3.0,
        0.0
      ]
    },
    "good_input": {
      "link_lengths": [
        1,
        1,
        0.5
      ],
      "joint_angles": [
        0.1,
        0.3,
        -0.2
      ],
      "target_xy": [
        1.5,
        1.0
      ]
    },
    "contracts_sha256": "e85300c81cb4729cc880485cf0e8781b91d0d0feca9ed6b18c8067c5bdc70ee1",
    "scope": "Authored reproduction; not autonomous agent discovery, general accuracy or hardware verification."
  },
  "evidence": {
    "id": "planar-ik-reachability",
    "case_sha256": "d18640c39ce7251e992e28d8fac7f2c59451f0205ea5f88dc764f4d8fe59eb29",
    "problem_reproduced": true,
    "valid_case_passed": true,
    "observed_problem": {
      "exit_code": 2,
      "reason_code": "invalid_input_or_environment"
    },
    "checks": {
      "forward_kinematics_agrees": true,
      "target_residual_below_0_1_m": true
    },
    "adapter_sha256": "83cccd6ba3a1a52f435658434d4ff9108dfcf18d1d5f4ce482da64eea18d329b",
    "bad_adapter_sha256": "83cccd6ba3a1a52f435658434d4ff9108dfcf18d1d5f4ce482da64eea18d329b",
    "source_commit": "cdd0cc888802b584c2d654ca85e3c5460973487d",
    "mode": "input"
  },
  "observed_at": "2026-10-20T04:15:40.176754+00:00",
  "maintainer_authored": true
}
