一键导入
byof-onboard
Use when onboarding an OSS repo via BYOF — containerize on Ubuntu or Isaac Lab, push to Nebius registry, and smoke on live Kubernetes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when onboarding an OSS repo via BYOF — containerize on Ubuntu or Isaac Lab, push to Nebius registry, and smoke on live Kubernetes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when ingesting, validating, curating, or querying production sensor data as a versioned dataset-of-record, or wiring the dataset-ingest-curate workflow.
Use when generating adversarial scenarios via RL, ranking mined failures of a policy-under-test, or wiring the adversarial-scenario-hardening workflow.
Use when navigating the Cosmos3 integration in NPA or locating upstream Cosmos3 framework files, defaults, scripts, configs, recipes, and docs.
Use when Cosmos3 setup, fetch, inference, CUDA, uv, Docker, Hugging Face, GitHub, NGC, or checkpoint staging fails in NPA or in an upstream Cosmos framework checkout.
Use when setting up Cosmos3 access through NPA, checking source or Hugging Face reachability, staging the public Cosmos3 framework and checkpoint cache, or deciding which NPA workflow to use before inference.
Use for Claude Code reviews that need robotics, simulation, GPU-routing, sim-to-real, or BDD100K pipeline domain context.
| name | byof-onboard |
| description | Use when onboarding an OSS repo via BYOF — containerize on Ubuntu or Isaac Lab, push to Nebius registry, and smoke on live Kubernetes. |
Canonical procedure for bring-your-own-fork onboarding. The NPA agent onboard_solution
intent and run_byof_repo.py both follow this skill — do not duplicate long command blocks
in chat replies; point operators here.
For registry/catalog admission of an OSS Physical AI solution, also load
skills/workflows/oss-solution-registry-onboard/SKILL.md. BYOF proves the repo
can be packaged and run; registry admission additionally requires reading
upstream docs, listing that solution's native capabilities (use upstream
names), encoding each accepted claim as a solution-smoke with a named JSON
artifact, and collecting live Nebius validation evidence. See
docs/workbench/oss-solution-catalog.md.
~/.npa/config.yaml — project alias, registry, kubernetes block (cluster_name, gpu_profile)~/.npa/credentials.yaml — Nebius IAM (registry push/pull)nebius CLI, sky (for GPU/container smokes)NPA_NEBIUS_PROFILE=agent-sa for registry write on shared VMssolution-smoke runner runs sky check kubernetes automatically before
submission; if debugging manually, run it with the resolved kubeconfig/context
before sky jobs launch.
Container/solution smokes use direct sky launch --down by default because
the managed-jobs controller can retain a stale enabled-infra cache for newly
synced Kubernetes contexts.Project resolution: npa.workflows.byof.live.resolve_byof_project() — never hardcode VM paths.
| Profile | Flag | Default base | Use when |
|---|---|---|---|
ubuntu | --base-profile ubuntu | ubuntu:22.04 | Generic OSS repos; containerize + registry smoke |
isaac-lab | --base-profile isaac-lab | NPA Isaac Lab image | LeIsaac RL, datagen, Isaac tasks |
| Custom | --base-image <ref> | (explicit) | Customer base images; overrides profile |
Override Ubuntu default: NPA_BYOF_UBUNTU_BASE_IMAGE or --base-image ubuntu:24.04.
Preferred CLI (Tier 0 of docs/architecture/oss-onboarding-ladder.md):
npa workbench byof run \
--repo-url <repo-url> \
--repo-ref <ref> \
--base-profile ubuntu \
--registry <resolved-from-config> \
--project <project-alias> \
--workload container-verify \
--run-id byof-<stamp> \
--cleanup
Equivalent script (same flags; used by older docs and shims):
npa/.venv/bin/python npa/scripts/run_byof_repo.py \
--repo-url <repo-url> \
--repo-ref <ref> \
--base-profile ubuntu \
--registry <resolved-from-config> \
--project <project-alias> \
--workload container-verify \
--run-id byof-<stamp> \
--cleanup
SDK: npa.sdk.workbench.byof.run(...) / plan_argv(...).
YAML toolRef: workbench.byof.repo → npa workbench byof run ....
Workloads:
| Workload | Base profile | SkyPilot YAML (rtxpro) |
|---|---|---|
container-verify | ubuntu or any | byof-container-smoke-rtxpro.yaml |
solution-smoke | ubuntu or custom | byof-container-smoke-rtxpro.yaml with --smoke-command, --solution-name, --capability-name, and --smoke-artifact-name |
rl-train | isaac-lab | isaac-lab-rl-train-rtxpro-smoke.yaml |
datagen | isaac-lab | byof-datagen-rtxpro-smoke.yaml |
Container layout: OSS repo cloned to /opt/byof + npa_source_metadata.json.
If the OSS repo installs or imports Hugging Face LeRobot, pin a workbench- supported version explicitly:
| Version | Install sketch | When |
|---|---|---|
0.5.1 (default) | pip install 'lerobot[pusht]==0.5.1' | Match current golden evals / GR00T N1.5 |
0.6.0 (additional) | pip install 'lerobot[training,evaluation,pusht]==0.6.0' | New VLAs, reward models, lerobot-rollout |
See skills/tools/lerobot/SKILL.md. Prefer the first-class
npa workbench lerobot --lerobot-version … path when the workload is policy
train/eval rather than wrapping LeRobot inside a BYOF image.
onboard_solution)workbench.byof.repo (already in catalog); draft byof workflow via chat or:
npa/.venv/bin/npa workbench workflow validate-spec npa/workflows/workbench/npa-workflows/byof.yaml --json
run_byof_repo.py with --base-profile ubuntu and --skip-run for build-only.--workload container-verify (Ubuntu) or --workload rl-train / datagen (Isaac).
For registry candidates that have documented upstream commands, use
--workload solution-smoke --build-command <install> --smoke-command <smoke>
with --solution-name, --capability-name, and
--smoke-artifact-name. The smoke must create the named artifact under
$NPA_SMOKE_OUTPUT_DIR; import-only checks are not enough.oss-solution-registry-onboard; do not claim
readiness from build-only or generic import checks.Agent must return grounded markdown with run_byof_repo.py, <repo-url>, and base-image guidance —
not raw GET /api/... paths.
| Tier | Repo | Profile | Workload |
|---|---|---|---|
| Ubuntu OSS smoke | https://github.com/githubtraining/hellogitworld.git master | ubuntu | container-verify |
| LeIsaac sim | https://github.com/LightwheelAI/leisaac.git main | isaac-lab | datagen or rl-train |
Override: NPA_BYOF_REPO_URL, NPA_BYOF_REPO_REF, NPA_BYOF_BASE_PROFILE.
export NPA_E2E_PROJECT=rtxpro
export NPA_BYOF_LIVE_PIPELINE=1
bash npa/scripts/verify_byof_onboarding_live.sh
Ubuntu OSS agent + build + deploy smoke:
export NPA_E2E_PROJECT=rtxpro
export NPA_BYOF_REPO_URL=https://github.com/githubtraining/hellogitworld.git
export NPA_BYOF_REPO_REF=master
export NPA_BYOF_BASE_PROFILE=ubuntu
export NPA_AGENT_LIVE=1
export NPA_BYOF_LIVE_CONTAINER=1
export NPA_BYOF_LIVE_GPU=1
npa/.venv/bin/python -m pytest npa/tests/e2e/test_byof_onboarding_live_e2e.py -q \
-k "live_agent_oss_repo_onboard or live_byof_ubuntu_oss" --timeout=7200
| Path | Role |
|---|---|
npa/scripts/run_byof_repo.py | Build/push + workload dispatch |
npa/workflows/byof/live.py | Project/kubeconfig/YAML resolution |
npa/workflows/workbench/npa-workflows/byof.yaml | Golden workflow spec |
npa/src/npa/cli/agent_chat.py | onboard_solution intent |
skills/tools/npa-agent/SKILL.md | Agent VM bootstrap + API reference |
Do not stop at a one-off image if the solution needs a repeatable pipeline or marketplace API:
npa.workflow spec (skills/workflows/author-npa-workflow) and register any new toolRef in catalog.py.docs/architecture/contributor-context.md.docs/workbench/container-packaging.md.Full ladder: docs/architecture/oss-onboarding-ladder.md.
npa workbench byof run / run_byof_repo.py time.python3 so container-verify / SkyPilot smokes can run metadata checks.sudo for the ubuntu user so SkyPilot's
apt/ssh runtime setup can succeed while the default runtime USER stays non-root./workspace directory for SkyPilot task
scratch paths used by byof-container-smoke-rtxpro.yaml.isaac-lab profile for sim workloads.FAILED_PRECHECKS when cluster capacity is tight; container tier is the gate for Ubuntu BYOF.npa-byof:<run-id> tags; they are outside golden_evals.yaml until Tier 2 promotion.