[
  {
    "episode_id": "EP-1001",
    "site": "화성 2공장",
    "robot_id": "RB-A1",
    "task_label_raw": "커넥터 삽입",
    "operator": "김수집",
    "recorded_at": "2026-07-27T09:12:04",
    "duration_s": 18.4,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": "CAL-0727-A",
    "operator_note": null
  },
  {
    "episode_id": "EP-1002",
    "site": "화성 2공장",
    "robot_id": "RB-A1",
    "task_label_raw": "커넥터삽입",
    "operator": "김수집",
    "recorded_at": "2026-07-27T09:18:41",
    "duration_s": 16.9,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": "CAL-0727-A",
    "operator_note": null
  },
  {
    "episode_id": "EP-1003",
    "site": "화성 2공장",
    "robot_id": "RB-A1",
    "task_label_raw": "connector insert",
    "operator": "이현장",
    "recorded_at": "2026-07-27T10:02:15",
    "duration_s": 21.2,
    "success_flag": false,
    "abort_reason": "grip_slip",
    "calib_id": "CAL-0727-A",
    "operator_note": "세 번째 시도에서 미끄러졌습니다"
  },
  {
    "episode_id": "EP-1004",
    "site": "화성 2공장",
    "robot_id": "RB-A2",
    "task_label_raw": null,
    "operator": "이현장",
    "recorded_at": "2026-07-27T10:31:50",
    "duration_s": 12,
    "success_flag": null,
    "abort_reason": null,
    "calib_id": "CAL-0727-A",
    "operator_note": "라벨은 나중에 채우겠습니다"
  },
  {
    "episode_id": "EP-1005",
    "site": "화성 2공장",
    "robot_id": "RB-A2",
    "task_label_raw": "케이블 정렬",
    "operator": "박파트너",
    "recorded_at": "2026-07-27T11:05:09",
    "duration_s": 0.4,
    "success_flag": false,
    "abort_reason": "estop",
    "calib_id": "CAL-0727-A",
    "operator_note": null
  },
  {
    "episode_id": "EP-1006",
    "site": "화성 2공장",
    "robot_id": "RB-A2",
    "task_label_raw": "케이블 정렬",
    "operator": "박파트너",
    "recorded_at": "2026-07-27T11:40:22",
    "duration_s": 402,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": null,
    "operator_note": "쉬는 시간에 녹화를 안 껐던 것 같습니다"
  },
  {
    "episode_id": "EP-1007",
    "site": "화성 2공장",
    "robot_id": "RB-A1",
    "task_label_raw": "커넥터 삽입",
    "operator": "김수집",
    "recorded_at": "2026-07-27T13:20:33",
    "duration_s": 15.5,
    "success_flag": true,
    "abort_reason": "estop",
    "calib_id": "CAL-0727-A",
    "operator_note": null
  },
  {
    "episode_id": "EP-1008",
    "site": "평택 1공장",
    "robot_id": "RB-B1",
    "task_label_raw": "트레이 적재",
    "operator": "최수집",
    "recorded_at": "2026-07-25T14:01:12",
    "duration_s": 24.1,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": "CAL-0725-B",
    "operator_note": null
  },
  {
    "episode_id": "EP-1009",
    "site": "평택 1공장",
    "robot_id": "RB-B1",
    "task_label_raw": "트레이적재(신)",
    "operator": "최수집",
    "recorded_at": "2026-07-25T14:09:47",
    "duration_s": 24.8,
    "success_flag": false,
    "abort_reason": "misplace",
    "calib_id": "CAL-0725-B",
    "operator_note": "치구 위치를 오전에 바꿨습니다"
  },
  {
    "episode_id": "EP-1010",
    "site": "평택 1공장",
    "robot_id": "RB-B1",
    "task_label_raw": "트레이 적재",
    "operator": "최수집",
    "recorded_at": "2026-07-25T14:21:30",
    "duration_s": 23.5,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": "CAL-0725-B",
    "operator_note": null
  },
  {
    "episode_id": "EP-1011",
    "site": "평택 1공장",
    "robot_id": "RB-B2",
    "task_label_raw": "볼트 체결",
    "operator": null,
    "recorded_at": "2026-07-25T15:44:02",
    "duration_s": 19.7,
    "success_flag": true,
    "abort_reason": null,
    "calib_id": "CAL-0713-B",
    "operator_note": null
  },
  {
    "episode_id": "EP-1012",
    "site": "평택 1공장",
    "robot_id": "RB-B2",
    "task_label_raw": "볼트 체결",
    "operator": "최수집",
    "recorded_at": "2026-07-25T16:02:58",
    "duration_s": 20.3,
    "success_flag": null,
    "abort_reason": null,
    "calib_id": "CAL-0725-B",
    "operator_note": "체결까지는 됐는데 성공으로 볼지 애매합니다"
  }
]