{
  "schema_version": "1",
  "interpretation": "data_only",
  "hub_commit": "ede75c00118e9808e5099da43c26f4619cc3bc37",
  "skill_id": "maniskill-panda-pick-cube",
  "name": "ManiSkill Panda PickCube Python recipe",
  "example_input": {
    "task": "PickCube-v1",
    "seed": 0,
    "robot": "panda",
    "controller": "pd_joint_pos",
    "obs_mode": "state",
    "sim_backend": "cpu",
    "render_backend": "none",
    "max_episode_steps": 1000
  },
  "environment": [
    {
      "runtime": "maniskill",
      "runtime_version": "3.0.0b22",
      "robot": "panda",
      "controller": "pd_joint_pos",
      "observation": "state",
      "os": "linux",
      "architecture": "x86_64",
      "python": "3.10",
      "status": "hub_verified"
    }
  ],
  "interface": {
    "version": "1",
    "kind": "task",
    "abstraction_level": 2,
    "execution_domain": "simulation",
    "language": "python",
    "input_transport": "cli_arguments",
    "output_transport": "json_stdout",
    "output_selector": "root",
    "conventions": {
      "linear_unit": "m",
      "angular_unit": "rad",
      "time_unit": "s",
      "coordinate_frame": "maniskill_world_xyz_z_up",
      "joint_order": "pinned_robot_model_order; pd_joint_pos controller",
      "quaternion_order": "not_exposed_by_this_adapter"
    },
    "input_schema": {
      "type": "object",
      "required": [
        "seed"
      ],
      "additionalProperties": false,
      "properties": {
        "seed": {
          "type": "integer",
          "minimum": 0,
          "maximum": 4294967295,
          "x-unit": "dimensionless",
          "description": "Simulation reset seed; task, robot, controller, state observation and 1000-step horizon are fixed by this recipe."
        }
      }
    },
    "output_schema": {
      "type": "object",
      "required": [
        "status"
      ],
      "additionalProperties": true,
      "properties": {
        "status": {
          "type": "string",
          "maxLength": 80
        }
      }
    },
    "argument_map": {
      "seed": "--seed"
    },
    "preconditions": [
      "Use the exact declared runtime/robot/environment combination.",
      "Ground-truth state and environment-generated targets; this adapter accepts a seed, not an arbitrary Cartesian goal.",
      "A nonzero exit or missing JSON is a process failure; never infer completion from preparation."
    ],
    "postconditions": [
      "PickCube-v1 env info.success is true after the upstream solver finishes, truncated is false, and 0 < elapsed_steps < max_episode_steps=1000; only then status is task_complete and exit is 0. The 1000-step motion-planning horizon is a Hub recipe condition, not the upstream default benchmark horizon. Success means cube at its goal and robot static; gripper release or placement on a support surface is not verified."
    ],
    "failure_codes": [
      "motion_plan_failed",
      "episode_truncated",
      "horizon_exceeded",
      "invalid_elapsed_steps",
      "task_objective_not_reached",
      "runtime_error",
      "process_failed_without_json"
    ],
    "composition": {
      "depends_on": [],
      "automatic_frame_conversion": false,
      "automatic_hardware_execution": false
    }
  },
  "source_commit": "33967b9e3ead1f841eec57cc9f31d0d8b8cf0907",
  "record_version": "1.1.0",
  "evidence": {
    "level": "task_complete",
    "verified_by": "Robot Skill Hub maintainer review of exact LLM-selected GitHub Actions execution artifacts",
    "date": "2026-10-18",
    "environment": {
      "os": "linux",
      "distribution": "Ubuntu 22.04",
      "architecture": "x86_64",
      "python": "3.10.22",
      "packages": {
        "mani_skill": "3.0.0b22",
        "torch": "2.5.1+cpu",
        "numpy": "1.26.4",
        "sapien": "3.0.0",
        "mplib": "0.1.1",
        "fast_kinematics": "0.2.2"
      },
      "robot": "panda",
      "controller": "pd_joint_pos",
      "observation": "state",
      "sim_backend": "cpu",
      "render_backend": "none",
      "vulkan_device": "Mesa 23.2.1 llvmpipe LLVM 15.0.7, PHYSICAL_DEVICE_TYPE_CPU",
      "physical_gpu_used": false,
      "max_episode_steps": 1000
    },
    "commands": [
      "python tools/run_runtime_verification.py --output \"$RUNNER_TEMP/runtime-artifacts\" --work-dir \"$RUNNER_TEMP/runtime-work\"",
      "/home/runner/work/_temp/runtime-work/maniskill-panda-pick-cube/.robot-skill-hub/environments/maniskill-panda-pick-cube/bin/python /home/runner/work/_temp/runtime-work/maniskill-panda-pick-cube/.robot-skill-hub/recipes/maniskill-panda-pick-cube/run.py --seed 0"
    ],
    "result": "PickCube-v1 seed 0 completed in the explicit Hub 1000-step motion-planning episode: success=true, terminated=true, truncated=false, elapsed_steps=74, exit=0 and no process timeout. One invocation was made for this task in the LLM-selected revalidation run. This verifies only the recorded CPU/state configuration and one seed, not the upstream default 50-step benchmark, hardware or camera modes. The cube was carried to the goal with a stationary arm; gripper release or support-surface placement is not required.",
    "artifacts": [
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/manifest.json",
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/maniskill-panda-pick-cube/report.json",
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/maniskill-panda-pick-cube/task.stdout.txt",
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/maniskill-panda-pick-cube/environment.json",
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/vulkan-summary.txt",
      "https://raw.githubusercontent.com/Superfast-Robotics/robot-skill-hub/07e53d9d7a0e1a6f169cab0065ce647c350cb652/evidence/runtime/llm-bounded-39045603320/orchestration.json",
      "https://github.com/Superfast-Robotics/robot-skill-hub/actions/runs/39045603320"
    ],
    "runtime_verification": "task_complete",
    "contributor_reported": null,
    "hub_verification": {
      "level": "task_complete",
      "runtime": "task_complete",
      "workflow_run_id": "39045603320",
      "verified_hub_commit": "3a1c17905e76bf58ed58fab17009aec3806e634a",
      "source_commit": "33967b9e3ead1f841eec57cc9f31d0d8b8cf0907",
      "adapter_sha256": "5cd3551820612b7331709cca8e4454df1894a56c90675fd5bfb78d747bc6e68f",
      "record_version": "1.1.0",
      "seed": 0,
      "max_episode_steps": 1000,
      "terminated": true,
      "truncated": false,
      "elapsed_steps": 74,
      "physical_gpu_used": false
    }
  },
  "record_url": "https://hub.superfastrobotics.com/skills/maniskill-panda-pick-cube/skill.json",
  "inspect_url": "https://api.superfastrobotics.com/v1/skills/maniskill-panda-pick-cube?hub_commit=ede75c00118e9808e5099da43c26f4619cc3bc37&record_version=1.1.0&include=experience",
  "execution_performed": false
}
