{
  "hub_commit": "ede75c00118e9808e5099da43c26f4619cc3bc37",
  "case": {
    "id": "forward-kinematics-joint-order",
    "title": "Forward kinematics needs one angle per link",
    "resolution": "The ordered angle vector must match the ordered link-length vector. Preserve joint order rather than truncating or silently broadcasting a vector.",
    "mode": "input",
    "skill_id": "pythonrobotics-planar-fk",
    "bad_skill_id": "pythonrobotics-planar-fk",
    "runtime": "pythonrobotics",
    "source_commit": "cdd0cc888802b584c2d654ca85e3c5460973487d",
    "bad_input": {
      "link_lengths": [
        1,
        1,
        0.5
      ],
      "joint_angles": [
        0.1,
        0.3
      ]
    },
    "good_input": {
      "link_lengths": [
        1,
        1,
        0.5
      ],
      "joint_angles": [
        0.1,
        0.3,
        -0.2
      ]
    },
    "contracts_sha256": "883ba44659fb7f3f48f5ed48a23af970d1d5b48c470435151ed7a9f500aef338",
    "scope": "Authored reproduction; not autonomous agent discovery, general accuracy or hardware verification."
  },
  "evidence": {
    "id": "forward-kinematics-joint-order",
    "case_sha256": "d0c11d42b7e2fe70581adf43fcbc43d029dc57307d400b16ab0fa5b0b76611ac",
    "problem_reproduced": true,
    "valid_case_passed": true,
    "observed_problem": {
      "exit_code": 2,
      "reason_code": "invalid_input_or_environment"
    },
    "checks": {
      "forward_kinematics_agrees": true
    },
    "adapter_sha256": "b3f6bbd8b277582166650fd5b3c3da9eb5c1ce7d1b329eae0df571544e929f0e",
    "bad_adapter_sha256": "b3f6bbd8b277582166650fd5b3c3da9eb5c1ce7d1b329eae0df571544e929f0e",
    "source_commit": "cdd0cc888802b584c2d654ca85e3c5460973487d",
    "mode": "input"
  },
  "observed_at": "2026-10-20T04:15:40.176754+00:00",
  "maintainer_authored": true
}
