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
  • 4 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.