/SKILL.md
Use when asked to migrate IsaacLab projects to mjlab, compare IsaacLab and mjlab APIs, import meshes into mjlab tasks, or author new mjlab-native tasks/components directly from local or bundled mjlab docs and examples. This skillkit includes an IsaacLab Migration Skill and an mjlab Native Skill. Prefer mjlab public APIs, preserve behavior in migration mode, and avoid compatibility layers.
npx skillsauth add cmjang/mjlab-skillkit mjlab-skillkitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
migrate)
author)
Previously branded as
isaaclab-to-mjlab.
https://github.com/mujocolab/anymal_c_velocityhttps://github.com/mujocolab/mjlabhttps://github.com/isaac-sim/IsaacLabdocs/ in the target workspace as source of truth first (for example mjlab/docs and IsaacLab/docs).references/docs-interface-diff.md before implementation and follow the listed API differences.references/mjlab-api-pack.md for the quick API shortlist.references/mjlab-api-index.md to choose the exact mjlab API domain files you need.references/mjlab-authoring-workflow.md.references/mjlab-authoring-recipes.md and follow the matching minimal recipe instead of exploring broadly.references/mjlab-api-*.md and references/mjlab-mdp-builtins.md files instead of reading the whole API surface at once.mjlab/docs tree or crawl large raw upstream doc sets into context; read only the exact page/signature/example you still need after using the bundled references.mjlab/docs/source/... and mjlab/src/mjlab/... as preferred lookup targets only when a local mjlab/ checkout exists.mjlab/ checkout, use this skill's bundled references first:
references/mjlab-api-*.mdreferences/mjlab-mdp-builtins.mdreferences/mjlab-authoring-workflow.mdreferences/mjlab-authoring-recipes.md./mjlab.author mode just because the current workspace has no mjlab/ directory.migrate
author
If the user does not specify a mode, infer it from the request:
migrateauthorpreserve-layout:
mjlab-layout:
anymal_c_velocity style task package layout (for example src/<task_pkg>/...).mjlab.tasks entry points and register_mjlab_task(...) for registration.Do you want to keep the original project layout, or convert directly to mjlab layout?migrate or author.mjlab/ checkout if present -> bundled skill references -> online docs only if still blocked.references/mjlab-api-pack.md and lock target APIs.references/mjlab-api-index.md, then load only the relevant module references:
references/mjlab-api-envs.mdreferences/mjlab-api-scene.mdreferences/mjlab-api-sim.mdreferences/mjlab-api-entity.mdreferences/mjlab-api-actuator.mdreferences/mjlab-api-sensor.mdreferences/mjlab-api-managers.mdreferences/mjlab-mdp-builtins.mdreferences/mjlab-api-terrains.mdreferences/mjlab-api-rl.mdreferences/mjlab-api-viewer.mdreferences/mjlab-api-tasks.mdreferences/mjlab-mesh-import-guidelines.md.mjlab/ checkout if present, then from bundled references.preserve-layout or mjlab-layout.references/migration-rules.md and enforce all hard constraints.references/docs-interface-diff.md for API differences from local docs.references/official-migrating-from-isaaclab.md for boundary notes.references/migration-gotchas.md for the compressed high-value pitfalls list.references/complex-task-migration-playbook.md.references/tracking-case-study.md as a concrete example, not as the only migration pattern.__init__.py registration files and same-family tests).mjlab-layout, align project packaging/registration with anymal_c_velocity.references/mapping.md while replacing imports/fields/term APIs.references/patterns.md while implementing EnvCfg/SceneCfg/manager structures.references/mjlab-mesh-import-guidelines.md and explicitly separate visual mesh from collision representation.references/checklist.md validation before completion.references/mjlab-authoring-workflow.md.references/mjlab-authoring-recipes.md.EnvCfg or scenemjlab/ example if availablemjlab/ checkout existsmjlab/src/mjlab/tasks/velocity/mjlab/src/mjlab/tasks/tracking/mjlab.envs.mdp helpers before adding custom terms.register_mjlab_task(...).references/mjlab-authoring-recipes.md + references/mjlab-mdp-builtins.mdreferences/mjlab-authoring-recipes.md + references/mjlab-api-managers.mdreferences/mjlab-authoring-recipes.md + references/mjlab-api-sensor.mdreferences/mjlab-authoring-recipes.md + references/mjlab-mdp-builtins.mdreferences/mjlab-authoring-recipes.md + references/mjlab-api-tasks.md + references/mjlab-api-rl.mdreferences/mjlab-mesh-import-guidelines.md + references/mjlab-api-entity.mdreferences/mjlab-authoring-recipes.mdmujocolab/mjlab source code.dict[str, XxxTermCfg]), not manager @configclass.manager_terms_to_dictAttrDictobservation_terms_from_classhack_generator) unless forced field mapping is required.ui_extension_example.py, config/extension.toml, omni.* extension files).raise or assert if the source task has none, unless a minimal check is explicitly required by mjlab/target API semantics for correctness.try/except, no hasattr-style fallback branches, no silent degradations), unless a minimal guard is explicitly required by mjlab/target API semantics for correctness.mjlab.* modules and local task examples before inventing new helper layers.make_xxx_env_cfg() when a reusable base pattern is helpful.mjlab.envs.mdp helper functions/configs whenever they already express the needed behavior.migrate mode, prefer one-to-one migration, not refactor-oriented rewrite.author mode, prefer nearest mjlab-native example, not a framework-agnostic rewrite.references/mjlab-api-index.md first, then read only the matching reference file.mjlab-layout, prefer anymal_c_velocity packaging pattern: standalone task package + mjlab.tasks entry point + register_mjlab_task.preserve-layout, keep directory structure and only migrate API/config/registration wiring.field(default_factory=make_xxx) when dataclass config style is used.gym.register only when target project explicitly requires it).development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.