{
  "kind": "offline-authoring-plan-validation",
  "python": "3.12.14",
  "tests": {
    "run": 12,
    "failures": 0,
    "errors": 0,
    "skipped": 0,
    "passed": true
  },
  "fixtures": {
    "01-valid-release.json": {
      "valid": true,
      "errors": [],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 4,
          "at_chunk": 1,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "forward",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 3,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 6,
          "at_chunk": 4,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": true
        },
        {
          "step": 7,
          "at_chunk": 6,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 8,
          "at_chunk": 7,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "02-missing-image.json": {
      "valid": false,
      "errors": [
        {
          "code": "PREREQUISITES",
          "message": "start requires staged image and prompt.",
          "step": 1
        }
      ],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "03-wrong-direction.json": {
      "valid": false,
      "errors": [
        {
          "code": "ARGS",
          "message": "Arguments do not match the supported authoring format for set_move_lateral.",
          "step": 4
        }
      ],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 2,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "04-invalid-pose.json": {
      "valid": false,
      "errors": [
        {
          "code": "ARGS",
          "message": "Arguments do not match the supported authoring format for set_camera_pose.",
          "step": 4
        }
      ],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 2,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "05-release-recommendations.json": {
      "valid": true,
      "errors": [],
      "recommendations": [
        {
          "code": "EXPLICIT_RELEASE",
          "message": "Authoring recommendation: end with idle axes and an empty camera_pose."
        },
        {
          "code": "EXPLICIT_RESET",
          "message": "Authoring recommendation: finish with reset; a completed run can auto-restart."
        }
      ],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 4,
          "at_chunk": 1,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "forward",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 2,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "forward",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": true
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "06-reset-restage.json": {
      "valid": false,
      "errors": [
        {
          "code": "PREREQUISITES",
          "message": "start requires staged image and prompt.",
          "step": 5
        }
      ],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 4,
          "at_chunk": 1,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 2,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    },
    "07-paused-roundtrip.json": {
      "valid": true,
      "errors": [],
      "recommendations": [],
      "trace": [
        {
          "step": 0,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 1,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 2,
          "at_chunk": 0,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 3,
          "at_chunk": 0,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 4,
          "at_chunk": 1,
          "state": "PAUSED",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 5,
          "at_chunk": 2,
          "state": "GENERATING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        },
        {
          "step": 6,
          "at_chunk": 3,
          "state": "WAITING",
          "axes": {
            "move_longitudinal": "idle",
            "move_lateral": "idle",
            "look_horizontal": "idle",
            "look_vertical": "idle"
          },
          "pose_active": false
        }
      ],
      "scope": "Offline authored plan only; no server or video validation."
    }
  },
  "sha256": {
    "lint_plan.py": "5819827cf1cdc7b2b6a750465889d9dc0fba021a7ecaf4dafa05e8fbc5477bf7",
    "test_lint_plan.py": "406def6730d0cc62baef74ba5d82569b6528165902ce690adfcb4d332be5c75a",
    "build_report.py": "4559c50c716fea8c5f000832252f05ba7d9f65ac44e58fd88786f046b99dbc58",
    "fixtures/01-valid-release.json": "cfb10039213e50d257e2abc56201f60151aa7b44708a01332b37d447b38fda6c",
    "fixtures/02-missing-image.json": "e21cdc5a354b3b3638a3eed2c63c2ab822da4965b643c09e80e6cd03cca6b682",
    "fixtures/03-wrong-direction.json": "a589df634e8477144e036160ad531f1da9e64f428921874eb062a8092a05f542",
    "fixtures/04-invalid-pose.json": "9dc48a26855e8ed05e763336c54c5dc733827dee39825d2a65cd81b137f41fb2",
    "fixtures/05-release-recommendations.json": "1bcb56c890fed69476d6c2155d614f50d365ebd5455cc3c39f92d2f67398fc4c",
    "fixtures/06-reset-restage.json": "e1e189cddb151ce2c68234a1bbd17b78804347b5de9dbe38dec282b8d5a3d83a",
    "fixtures/07-paused-roundtrip.json": "b1eb21b94a6d0a3964bbd870eaff4ebeae032c34a2bafe611baf2abeb341e859",
    "fixtures/expected.json": "b3224093e143da292ad441044fcbcb4b8dbb697565b2e360a06e50260f2cef7a"
  },
  "limitations": [
    "No inference or API calls performed.",
    "No latency, image quality, camera accuracy or deterministic-video benchmark.",
    "at_chunk is an author-defined planning label, not a Reactor argument or observed server boundary.",
    "Image references are unchecked local labels, not uploaded Reactor FileRef values.",
    "Only the documented command subset in README is checked."
  ]
}
