Skip to content
Back to skills

Version Migration

ASecurity

"Plans safe LeRobot v1.6, v2.0, v2.1, and v3.0 dataset migrations

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
testingpythongogitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill version-migration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Version Migration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Version Migration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-version-migration/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-version-migration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "version-migration"
description: "Plans safe LeRobot v1.6, v2.0, v2.1, and v3.0 dataset migrations
  with version-matched environments, metadata-layout checks, local or Hub
  staging, video handling, and rollback controls."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# LeRobot version migration

Use this route when an existing LeRobot dataset must move between **v1.6 and
v2.0**, **v2.0 and v2.1**, or **v2.1 and v3.0**. It is a planning and
review route, not a runnable converter. The repository converters are
reference-only because they can rewrite local directories, delete metadata,
clone Git-LFS repositories, invoke `ffmpeg`, create tags, upload files, and
push to the Hugging Face Hub.

Do not use this route for converting raw HDF5, RLDS/TFDS, AgiBot, RoboMIND,
LIBERO, or RoboCasa data. Route those requests to the dataset-specific
sub-skill first, then return here only if the resulting LeRobot dataset needs a
version migration.

## Non-negotiable boundary

- Never run a migration against the only copy of a dataset. Use an immutable
  source snapshot and a separate destination or disposable test branch.
- Never infer the source version from a directory name or a tag alone. Read and
  cross-check `meta/info.json` (or the legacy `meta_data/info.json`) and inspect
  representative data, episode, task, stats, and video paths.
- A current LeRobot import is not proof that a historical converter is usable.
  Resolve the version-specific API imports and constants before touching data.
  The source evidence mixes `lerobot.common.datasets.*`,
  `lerobot.datasets.*`, and `lerobot.datasets.io_utils`; current LeRobot
  commonly exposes `LeRobotDataset` and `LeRobotDatasetMetadata` under
  `lerobot.datasets.lerobot_dataset`. Treat namespace mismatch as a stop gate.
- Keep `--push-to-hub`, deletion flags, tag creation, and any Git-LFS operation
  off until local validation passes and the operator explicitly approves
  publication.

## Route checklist

1. Record `source_version`, `target_version`, `repo_id` if any, local root(s),
   desired branch, whether videos exist, and the rollback location. Use the
   exact direction matrix in [version-matrix](references/version-matrix.md).
2. Confirm the source metadata schema and episode/task indices. Run the
   read-only static or synthetic checks in [metadata layouts](references/metadata-layouts.md)
   before installing or invoking a converter.
3. Select a version-pinned environment. Do not mix the current package with
   historical imports. Record Python, LeRobot revision, `datasets`,
   `jsonlines`, `pyarrow`, `safetensors`, and `ffmpeg` versions.
4. Choose one source mode:
   - **Local:** `--root` is an exact dataset root for v2.0/v2.1/v3.0 routes.
     For v1.6→v2.0, `--local-dir` is staging/cache space; the evidence
     converter still identifies the Hub dataset with `--repo-id`.
   - **Hub:** use a pinned revision or tag and download into a new staging
     root. Treat every upload, delete, tag, or branch operation as a separate
     approval step.
5. For v1.6→v2.0 only, choose exactly one task source: `--single-task`,
   `--tasks-col`, or `--tasks-path`. Check episode coverage and task text
   before starting. See [workflows](references/workflows.md).
6. Make a backup, record a manifest and checksums, and create a non-production
   test branch if Hub validation is required. Never let an existing `_old`,
   `_v30`, or destination directory be silently reused.
7. Perform a no-write plan review: expected metadata files, data/video path
   templates, stats representation, episode counts, frame counts, and tag
   changes. Do not use a hidden wrapper; the source converters are not bundled
   in this skill.
8. Execute only after approval in the pinned environment, preferably to a new
   local root. Keep Hub push and cleanup disabled for the first pass.
9. Validate the output as a dataset of the target version, reopen it with the
   target LeRobot API, compare counts/tasks/stats, and inspect video durations
   and timestamps. Then review the rollback copy before any publication.
10. Publish to a test branch first. Only after a consumer successfully reads
    that branch should the operator rename, tag, delete, or replace a
    production revision.

## Direction-specific dispatch

- **v1.6 ↔ v2.0:** this bundle provides v1.6→v2.0 planning only. There is no
  reverse converter in the assigned evidence. Expect task annotation,
  per-episode parquet splitting, stats serialization, and possible Hub/LFS
  video moves.
- **v2.0 ↔ v2.1:** this is primarily a stats and `codebase_version` migration;
  data files remain in the v2 layout. v2.0→v2.1 computes per-episode stats and
  checks their aggregate; v2.1→v2.0 writes aggregate `stats.json`.
- **v2.1 ↔ v3.0:** this is a physical layout migration. v2.1→v3.0
  consolidates parquet/video files and metadata; v3.0→v2.1 splits them back
  into per-episode files and uses `ffmpeg` for video segments.

Read the detailed [workflows](references/workflows.md),
[metadata layouts](references/metadata-layouts.md), and
[troubleshooting](references/troubleshooting.md) before making a run plan.

Files in this skill

  • SKILL.md5.1 KB
  • references/metadata-layouts.md5.8 KB
  • references/troubleshooting.md20.2 KB
  • references/version-matrix.md5.3 KB
  • references/workflows.md8.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…