npx skills add ...
npx skills add nvidia/simready-foundation --skill simready-foundation-conform-fet-000-standard
Use for repairing FET_000_STANDARD Core failures (default `0.2.0`; use `0.1.0` when a profile pins it): asset file naming, directory layout, relative and resolvable paths, SimReady metadata, and undefined prims.
npx skills add nvidia/simready-foundation --skill simready-foundation-conform-fet-000-standard
Use this workflow skill to bring an existing USD asset into conformance with the selected FET_000_STANDARD Core feature contract, then hand the repaired copy back to profile validation.
Default to FET_000_STANDARD@0.2.0 when the user asks for this feature without a version. Use 0.1.0 when the profile, validation report, or user explicitly pins it.
FET_000_STANDARD is the baseline Standard/OpenUSD Core feature. It verifies that an asset has portable file naming, directory layout, path handling, resolvable asset paths, and no unsafe undefined prims before higher-level visual, material, physics, robot, or runtime-specific features are applied. Version 0.1.0 includes NP.006 and the original root-layer-only SR.001. Version 0.2.0 omits both. Nested provenance is SR.003 on FET_033_STANDARD@0.3.0. USD/sidecar provenance union is SR.004 on FET_033_STANDARD@0.4.0.
This skill is not the final validator and should not silently mutate source assets. It stages a repaired USD-family asset under the requested output directory, applies deterministic fixes only where safe, and stops when a validation gate still fails or a manual decision is required.
Read the source-of-truth files named below before editing. Work on staged outputs where the skill requires them, and keep validation evidence with the result.
Before changing an asset, load the exact FET_000_STANDARD manifest selected by the profile. In this repo, start with the canonical version:
nv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/features/FET_000_STANDARD-0.2.0.json (latest)nv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/features/FET_000_STANDARD-0.1.0.json (preserved)nv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/features/FET_000_STANDARD.mdThis feature has no dependencies. Authoritative requirement lists:
| Version | Requirements |
|---|---|
0.1.0 | NP.002, NP.003, NP.004, NP.005, NP.006, NP.007, NP.008, SR.001, HI.010 |
0.2.0 | NP.002, NP.003, NP.004, NP.005, NP.007, NP.008, HI.010 |
If the selected profile names a newer FET_000_STANDARD version, use that manifest instead. Treat the JSON requirement list as authoritative when markdown and JSON disagree.
FET_000_STANDARD is the neutral Core feature and does not require physics
runtime variants. Runtime physics variant scaffolding (the RV.* Runtime
Variants requirements) lives in the separate runtime Core features
FET_000_PHYSX, FET_000_NEWTON, and FET_000_MUJOCO; repair those with their
own runtime-specific handling, not this Standard skill.
Because those runtime features layer runtime payloads on top of this neutral
base, keep the base runtime-agnostic: it carries only neutral
UsdPhysics/physics:* data and geometry (no Physx*/Newton*/Mjc*
schemas or physx*:/newton:*/mjc:* attributes), and it must not pin
physics:approximation to a runtime-specific value — never sdf on the base.
Leave physics:approximation unauthored on the neutral base so each runtime
payload can set its own value (a local base opinion outranks the payload arc in
LIVRPS and would leak into every runtime selection). See
nv_core/tiers/simready_foundation_tier_core/simready/foundation/tier_core/capabilities/core/runtime_variants/runtime-physics-isolation-matrix.md.
For per-requirement repair details, read references/fet-000-standard-requirements.md when a FET_000_STANDARD validation report or inspection identifies matching failures.
Collect these before editing:
| Input | Requirement |
|---|---|
usd_asset | Required .usd, .usda, .usdc, or unpacked USD-family asset to repair. |
output_root | Required or inferred folder for staged assets and reports. |
simready_profile | Profile being validated, such as Robotics-Prop, Robot-Body, or Robot-Gripper. |
profile_version | Profile version, if supplied by the user or validation command. |
validation_report | Preferred JSON or markdown report from the failing profile/feature validation gate. |
source_asset | Original CAD, DCC, URDF, MJCF, or conversion input path, used for provenance metadata. |
asset_name and asset_type | Use explicit user values when provided; otherwise infer conservative defaults from the asset path and profile. |
Use this checklist when changing the repository:
FET_000_STANDARD version failures and the requirement IDs listed in that manifest. Do not repair unrelated feature failures in this skill.output_root, using safe lowercase path components.NP.002, NP.003, NP.004, and NP.005.SR.001 and NP.006 only when the selected version is 0.1.0. If the only Core failure is metadata and the Physical AI Skill Hub commands are available, prefer apply-simready-foundation-metadata over hand-editing.NP.007 and NP.008.HI.010 only when the affected over can be safely resolved or removed.FET_000_STANDARD validation gate for the selected version.Example request:
Expected result summary:
Make automatic repairs only when the intended result is mechanical and portable:
asset_root/<intermediate>/<asset_file>.usd* when repairing NP.005.SR.001 (0.1.0 only), author SimReady_Metadata, asset_name, asset_type, source_file, and usd_date_generated directly in root-layer customLayerData.Block and report instead of guessing when:
When explicit values are unavailable, use conservative defaults:
| Field | Default |
|---|---|
asset_name | Safe stem of the staged USD asset or asset root folder. |
asset_type | robot for robot profiles, prop for prop profiles, otherwise asset. |
source_file | source_asset when supplied; otherwise the original input asset path. |
usd_date_generated | Current date in YYYY-MM-DD format at repair time. |
Author these fields at the top level of customLayerData and also include
the SimReady_Metadata key.
For a converted CAD asset that fails FET_000_STANDARD@0.1.0 only on metadata (SR.001 / NP.006), this command shape has been forward-tested:
Expected repair outputs:
<asset-name>/simready_usd/.customLayerData['SimReady_Metadata'].After rerunning profile validation, count this skill as successful when the selected FET_000_STANDARD version passes, even if the full profile still fails on non-Core features such as units, rigid bodies, multibody physics, or grasp vectors. Report those remaining feature failures as handoff work for their own skills.
Preserve reports under the staged output directory. If the Physical AI Skill Hub validation commands are available, the normal handoff is:
If those commands are not available, use the SimReady Foundations validator entrypoint configured in this checkout or inspect the relevant requirement validators directly. Always say which validation path was used.
assets/openai.yaml preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.references/ contains detailed requirement notes; load only the files needed for the active validation failure.Report:
| Field | Meaning |
|---|---|
input_usd_path | Original USD path. |
output_usd_path | Latest staged/repaired USD path. |
profile and profile_version | Validation target. |
requirements_repaired | Requirement IDs changed by this skill. |
requirements_blocked | Requirement IDs that need user or upstream data. |
validation_report | Path to the rerun validation report. |
next_step | Usually rerun the full selected profile validation. |
Keep the user-facing summary short: what was fixed, what still fails, and the first validation gate that blocks progress.
uv run --python 3.12 validate-simready-profile <staged-usd> \
--profile <profile> \
--profile-version <version> \
--report <output-root>/validation/fet-000-standard-after-repair.json