[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-simready-foundation-conform-fet-003-rigid-body-physics":3,"mdc-cdusv-key":34,"related-repo-nvidia-simready-foundation-conform-fet-003-rigid-body-physics":1500,"related-org-nvidia-simready-foundation-conform-fet-003-rigid-body-physics":1586},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"simready-foundation-conform-fet-003-rigid-body-physics","repair SimReady rigid-body physics","Use for repairing SimReady rigid-body and collider conformance for neutral or PhysX prop assets.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Simulation","simulation",{"name":18,"slug":19,"type":13},"Physics","physics",{"name":21,"slug":22,"type":13},"Debugging","debugging",52,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsimready-foundation","2026-07-14T05:34:10.577579","Apache-2.0",8,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"SimReady Foundation is a central repository for defining simulation content specifications based on various runtime use cases. ","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsimready-foundation\u002Ftree\u002FHEAD\u002Fskills\u002Fsimready-foundation-conform-fet-003-rigid-body-physics","---\nname: simready-foundation-conform-fet-003-rigid-body-physics\ndescription: \"Use for repairing SimReady rigid-body and collider conformance for neutral or PhysX prop assets.\"\nlicense: Apache-2.0\nmetadata:\n  author: \"Shaad Boochoon \u003Csboochoon@nvidia.com>\"\n  tags:\n    - simready\n    - conformance\n    - physics\n---\n\n\n# SimReady Conform FET-003 Rigid Body Physics\n\n## Purpose\nUse this workflow skill after FET000_CORE and FET001_BASE_NEUTRAL pass and the next profile validation gate is `FET003_BASE_NEUTRAL` or `FET003_BASE_PHYSX`. It brings a staged USD asset toward the SimReady rigid body physics contract while preserving visual hierarchy, physical scale, and source traceability.\n\nThis is an authoring and repair skill, not the final validator. Work on a staged copy under the requested output directory, rerun the same validation gate after each repair stage, and stop at the first remaining FET003 validation failure that needs user intent or upstream conversion data.\n\n## Prerequisites\n\nRead 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.\n\n## Source of Truth\n\nBefore changing an asset, load the exact FET003 manifest selected by the profile:\n\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_neutral-0.1.0-rigid_body_physics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_physx-0.1.0-rigid_body_physics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_physx-0.2.0-rigid_body_physics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003-rigid_body_physics.md`\n\nTreat the selected JSON manifest as authoritative for the required IDs. If the markdown, manifest, validator, or report disagree on a requirement ID, follow the validation report for the current gate and call out the mismatch in the stage summary.\n\nFor per-requirement repair details, read `references\u002Ffet003-requirements.md` when a FET003 validation report or inspection identifies matching failures.\n\n## Inputs\n\nCollect these before editing:\n\n| Input | Requirement |\n|---|---|\n| `usd_asset` | Required `.usd`, `.usda`, `.usdc`, or unpacked USD-family asset to repair. |\n| `output_root` | Required or inferred folder for staged assets and reports. |\n| `simready_profile` | Profile being validated, such as `prop-robotics-neutral`, `prop-robotics-physx`, or another profile that includes FET003. |\n| `profile_version` | Profile version, if supplied by the user or validation command. |\n| `validation_report` | Preferred JSON or markdown report from the failing profile or feature validation gate. |\n| `fet003_variant` | Selected feature ID and version, such as `FET003_BASE_NEUTRAL@0.1.0` or `FET003_BASE_PHYSX@0.2.0`. Infer from the profile when possible. |\n| `rigid_body_policy` | Whether the asset should behave as one rigid body, multiple independent bodies, or an articulated\u002Fmultibody asset. Default to one rigid body only when the profile and asset structure make that clear. |\n| `collider_strategy` | Explicit strategy for collision geometry: existing collider meshes, visual mesh reuse, simplified proxy geometry, primitive proxy, PhysX mesh merge, or block for user choice. |\n| `mass_source` | Explicit mass value, property report, source metadata, or user-approved default. Do not invent physical mass silently. |\n\n## Instructions\n\nUse this checklist when changing the repository:\n\n1. Confirm the input asset exists and that FET000_CORE and FET001_BASE_NEUTRAL are already passing on the same staged asset. If they still fail, hand back to `simready-foundation-conform-fet-000-core` or `simready-foundation-conform-fet-001-minimal` first.\n2. Parse the validation report and filter to FET003 failures. Do not repair later profile features such as FET004 multibody physics or FET005 grasp physics in this skill.\n3. Load the selected FET003 manifest version and the requirement repair map.\n4. Create a staged output folder under `output_root`; do not mutate the source unless the user explicitly asks for in-place repair.\n5. Inspect the stage before editing:\n   - default prim, root prim, root xform ops, stage units, and composed bounds\n   - existing `UsdPhysics.RigidBodyAPI`, `CollisionAPI`, `MeshCollisionAPI`, and `MassAPI`\n   - mesh and Gprim candidates for collision geometry\n   - instanceable prims, instance proxies, prototypes, nested rigid bodies, and skew or non-uniform scale\n   - invisible or physics-only geometry purpose values\n   - PhysX schemas and mesh-merge collections when a PhysX FET003 variant is selected\n6. Decide the rigid-body model before authoring:\n   - Use one rigid body on the asset root or another clear xformable body root for simple movable props.\n   - Use multiple rigid bodies only when the profile and asset structure clearly call for independent bodies.\n   - Stop and hand off to FET004-oriented work when the asset needs articulated joints or multibody semantics.\n7. Apply repairs in this order:\n   - Remove or relocate invalid rigid-body and collision APIs before adding new ones.\n   - Apply `UsdPhysics.RigidBodyAPI` only to valid `UsdGeomXformable` body roots.\n   - Apply `UsdPhysicsCollisionAPI` only to valid collider prims for the selected FET003 variant.\n   - Apply `UsdPhysicsMeshCollisionAPI` only where allowed by the selected neutral or PhysX rule.\n   - Author mass only from an explicit source or user-approved policy.\n   - Fix instancing, nesting, skew, and non-uniform collider scale issues.\n   - Mark invisible collision-only meshes with `purpose = \"guide\"`.\n8. Rerun the same profile validation gate, or the narrowest available FET003 validation gate.\n9. Summarize the stage as passed, failed, skipped, or blocked. Stop when FET003 passes or the next FET003 failure requires source geometry, property prediction, mass data, collider intent, or a different feature skill.\n\n## Examples\n\nExample request:\n\n```text\nRepair FET003 rigid body physics failures on a prop USD asset.\n```\n\nExpected result summary:\n\n```text\nstaged_asset: repaired copy or output directory\nvalidation: selected feature\u002Fprofile gate and report path\nremaining_failures: next failing requirement IDs, if any\n```\n\n## Repair Policy\n\nMake automatic repairs only when the intended result is mechanical and locally verifiable:\n\n- Add `UsdPhysics.RigidBodyAPI` to a single xformable asset root when the asset is clearly a one-piece movable rigid body.\n- Move `CollisionAPI` from an invalid Xform to a descendant Gprim only when that descendant is the clear collision representation.\n- Add `CollisionAPI` to existing dedicated collider geometry when naming, purpose, or hierarchy clearly identifies it as collision geometry.\n- Add `MeshCollisionAPI` to meshes only when mesh collision is the selected collider strategy and `CollisionAPI` is also present.\n- Set `purpose = \"guide\"` on invisible collision-only mesh geometry.\n- Remove `RigidBodyAPI`, `CollisionAPI`, or `MeshCollisionAPI` from invalid prims only when a valid replacement is authored in the same staged asset or the API is plainly accidental.\n- Preserve the asset's composed physical size after any transform or scale repair.\n\nBlock and report instead of guessing when:\n\n- The asset could be a static prop rather than a dynamic rigid body.\n- Multiple plausible rigid body roots exist.\n- Collision geometry must be generated from CAD\u002Fsource data and no accepted collider strategy is available.\n- Mass is missing and there is no explicit property source or user-approved default.\n- De-instancing or baking transforms would change shared composition semantics.\n- Nested rigid bodies likely indicate joints or articulation that belong to FET004.\n- PhysX mesh merge is required but PhysX schemas or collection APIs are unavailable in the local environment.\n\n## Variant Guidance\n\nFor `FET003_BASE_NEUTRAL`, prefer standard OpenUSD `UsdPhysics` schemas and avoid PhysX-only collider patterns. `CollisionAPI` belongs on `UsdGeomGprim` prims, and mesh-specific collision belongs on `UsdGeomMesh` prims that also have `CollisionAPI`.\n\nFor `FET003_BASE_PHYSX`, follow the selected manifest version. PhysX variants may allow `CollisionAPI` or `MeshCollisionAPI` on a mesh-merge Xform when `PhysxMeshMergeCollisionAPI` is applied and the `collisionmeshes` collection resolves to at least one Gprim. Do not use PhysX-only repairs for a neutral profile.\n\n## Validation Handoff\n\nPreserve reports under the staged output directory. If the Physical AI Skill Hub validation commands are available, use the same profile gate that exposed the failure:\n\n```bash\nuv run --python 3.12 validate-simready-profile \u003Cstaged-usd> \\\n  --profile \u003Cprofile> \\\n  --profile-version \u003Cversion> \\\n  --foundation-root \u003Csimready-foundation-root> \\\n  --foundation-spec-root \u003Csimready-foundation-root>\u002Fnv_core\u002Fsr_specs\u002Fdocs \\\n  --report \u003Coutput-root>\u002Fsimready-profile-after-fet003.json\n```\n\nCount this skill as successful when the selected FET003 variant passes, even if the full profile still fails on later features. Report those remaining failures as handoff work for their own skills.\n\n## Limitations\n\n- Do not silently mutate the source asset; work on the requested staged output.\n- Do not hide later profile failures after the selected feature gate passes or fails.\n- Do not invent geometry, metadata, or runtime behavior that conflicts with the asset intent.\n\n## Troubleshooting\n\n- Error: validation tooling is unavailable. Solution: run the narrowest available USD or static check and report the gap.\n- Error: a repair would change asset intent. Solution: stop and ask for direction or stage the smallest reversible edit.\n- Error: later profile gates still fail. Solution: report the next failing feature and hand off to the matching conformance skill.\n\n## Resources\n\n- `assets\u002Fopenai.yaml` preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.\n- `references\u002F` contains detailed requirement notes; load only the files needed for the active validation failure.\n\n## Summary Format\n\nReport:\n\n| Field | Meaning |\n|---|---|\n| `input_usd_path` | Original USD path. |\n| `output_usd_path` | Latest staged\u002Frepaired USD path. |\n| `profile` and `profile_version` | Validation target. |\n| `fet003_variant` | Selected FET003 feature ID and version. |\n| `rigid_body_roots` | Prims with `UsdPhysics.RigidBodyAPI` after repair. |\n| `collider_prims` | Prims with collision APIs after repair. |\n| `mass_source` | Source of authored mass values, or why mass repair was blocked. |\n| `requirements_repaired` | Requirement IDs changed by this skill. |\n| `requirements_blocked` | Requirement IDs that need user intent, property data, or upstream conversion. |\n| `validation_report` | Path to the rerun validation report. |\n| `next_step` | Usually the next failing profile feature or a blocked FET003 requirement. |\n\nKeep the user-facing summary short: what rigid-body data changed, which FET003 variant was validated, what still fails, and the first validation gate that blocks progress.\n",{"data":35,"body":41},{"name":4,"description":6,"license":26,"metadata":36},{"author":37,"tags":38},"Shaad Boochoon \u003Csboochoon@nvidia.com>",[39,40,19],"simready","conformance",{"type":42,"children":43},"root",[44,53,60,83,88,94,99,105,110,151,156,169,175,180,414,420,425,650,656,661,673,678,687,693,698,797,802,840,846,895,935,941,946,1174,1179,1185,1203,1209,1227,1233,1258,1264,1269,1489,1494],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"simready-conform-fet-003-rigid-body-physics",[50],{"type":51,"value":52},"text","SimReady Conform FET-003 Rigid Body Physics",{"type":45,"tag":54,"props":55,"children":57},"h2",{"id":56},"purpose",[58],{"type":51,"value":59},"Purpose",{"type":45,"tag":61,"props":62,"children":63},"p",{},[64,66,73,75,81],{"type":51,"value":65},"Use this workflow skill after FET000_CORE and FET001_BASE_NEUTRAL pass and the next profile validation gate is ",{"type":45,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":51,"value":72},"FET003_BASE_NEUTRAL",{"type":51,"value":74}," or ",{"type":45,"tag":67,"props":76,"children":78},{"className":77},[],[79],{"type":51,"value":80},"FET003_BASE_PHYSX",{"type":51,"value":82},". It brings a staged USD asset toward the SimReady rigid body physics contract while preserving visual hierarchy, physical scale, and source traceability.",{"type":45,"tag":61,"props":84,"children":85},{},[86],{"type":51,"value":87},"This is an authoring and repair skill, not the final validator. Work on a staged copy under the requested output directory, rerun the same validation gate after each repair stage, and stop at the first remaining FET003 validation failure that needs user intent or upstream conversion data.",{"type":45,"tag":54,"props":89,"children":91},{"id":90},"prerequisites",[92],{"type":51,"value":93},"Prerequisites",{"type":45,"tag":61,"props":95,"children":96},{},[97],{"type":51,"value":98},"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.",{"type":45,"tag":54,"props":100,"children":102},{"id":101},"source-of-truth",[103],{"type":51,"value":104},"Source of Truth",{"type":45,"tag":61,"props":106,"children":107},{},[108],{"type":51,"value":109},"Before changing an asset, load the exact FET003 manifest selected by the profile:",{"type":45,"tag":111,"props":112,"children":113},"ul",{},[114,124,133,142],{"type":45,"tag":115,"props":116,"children":117},"li",{},[118],{"type":45,"tag":67,"props":119,"children":121},{"className":120},[],[122],{"type":51,"value":123},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_neutral-0.1.0-rigid_body_physics.json",{"type":45,"tag":115,"props":125,"children":126},{},[127],{"type":45,"tag":67,"props":128,"children":130},{"className":129},[],[131],{"type":51,"value":132},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_physx-0.1.0-rigid_body_physics.json",{"type":45,"tag":115,"props":134,"children":135},{},[136],{"type":45,"tag":67,"props":137,"children":139},{"className":138},[],[140],{"type":51,"value":141},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003_base_physx-0.2.0-rigid_body_physics.json",{"type":45,"tag":115,"props":143,"children":144},{},[145],{"type":45,"tag":67,"props":146,"children":148},{"className":147},[],[149],{"type":51,"value":150},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_003-rigid_body_physics.md",{"type":45,"tag":61,"props":152,"children":153},{},[154],{"type":51,"value":155},"Treat the selected JSON manifest as authoritative for the required IDs. If the markdown, manifest, validator, or report disagree on a requirement ID, follow the validation report for the current gate and call out the mismatch in the stage summary.",{"type":45,"tag":61,"props":157,"children":158},{},[159,161,167],{"type":51,"value":160},"For per-requirement repair details, read ",{"type":45,"tag":67,"props":162,"children":164},{"className":163},[],[165],{"type":51,"value":166},"references\u002Ffet003-requirements.md",{"type":51,"value":168}," when a FET003 validation report or inspection identifies matching failures.",{"type":45,"tag":54,"props":170,"children":172},{"id":171},"inputs",[173],{"type":51,"value":174},"Inputs",{"type":45,"tag":61,"props":176,"children":177},{},[178],{"type":51,"value":179},"Collect these before editing:",{"type":45,"tag":181,"props":182,"children":183},"table",{},[184,203],{"type":45,"tag":185,"props":186,"children":187},"thead",{},[188],{"type":45,"tag":189,"props":190,"children":191},"tr",{},[192,198],{"type":45,"tag":193,"props":194,"children":195},"th",{},[196],{"type":51,"value":197},"Input",{"type":45,"tag":193,"props":199,"children":200},{},[201],{"type":51,"value":202},"Requirement",{"type":45,"tag":204,"props":205,"children":206},"tbody",{},[207,248,265,297,314,331,363,380,397],{"type":45,"tag":189,"props":208,"children":209},{},[210,220],{"type":45,"tag":211,"props":212,"children":213},"td",{},[214],{"type":45,"tag":67,"props":215,"children":217},{"className":216},[],[218],{"type":51,"value":219},"usd_asset",{"type":45,"tag":211,"props":221,"children":222},{},[223,225,231,233,239,240,246],{"type":51,"value":224},"Required ",{"type":45,"tag":67,"props":226,"children":228},{"className":227},[],[229],{"type":51,"value":230},".usd",{"type":51,"value":232},", ",{"type":45,"tag":67,"props":234,"children":236},{"className":235},[],[237],{"type":51,"value":238},".usda",{"type":51,"value":232},{"type":45,"tag":67,"props":241,"children":243},{"className":242},[],[244],{"type":51,"value":245},".usdc",{"type":51,"value":247},", or unpacked USD-family asset to repair.",{"type":45,"tag":189,"props":249,"children":250},{},[251,260],{"type":45,"tag":211,"props":252,"children":253},{},[254],{"type":45,"tag":67,"props":255,"children":257},{"className":256},[],[258],{"type":51,"value":259},"output_root",{"type":45,"tag":211,"props":261,"children":262},{},[263],{"type":51,"value":264},"Required or inferred folder for staged assets and reports.",{"type":45,"tag":189,"props":266,"children":267},{},[268,277],{"type":45,"tag":211,"props":269,"children":270},{},[271],{"type":45,"tag":67,"props":272,"children":274},{"className":273},[],[275],{"type":51,"value":276},"simready_profile",{"type":45,"tag":211,"props":278,"children":279},{},[280,282,288,289,295],{"type":51,"value":281},"Profile being validated, such as ",{"type":45,"tag":67,"props":283,"children":285},{"className":284},[],[286],{"type":51,"value":287},"prop-robotics-neutral",{"type":51,"value":232},{"type":45,"tag":67,"props":290,"children":292},{"className":291},[],[293],{"type":51,"value":294},"prop-robotics-physx",{"type":51,"value":296},", or another profile that includes FET003.",{"type":45,"tag":189,"props":298,"children":299},{},[300,309],{"type":45,"tag":211,"props":301,"children":302},{},[303],{"type":45,"tag":67,"props":304,"children":306},{"className":305},[],[307],{"type":51,"value":308},"profile_version",{"type":45,"tag":211,"props":310,"children":311},{},[312],{"type":51,"value":313},"Profile version, if supplied by the user or validation command.",{"type":45,"tag":189,"props":315,"children":316},{},[317,326],{"type":45,"tag":211,"props":318,"children":319},{},[320],{"type":45,"tag":67,"props":321,"children":323},{"className":322},[],[324],{"type":51,"value":325},"validation_report",{"type":45,"tag":211,"props":327,"children":328},{},[329],{"type":51,"value":330},"Preferred JSON or markdown report from the failing profile or feature validation gate.",{"type":45,"tag":189,"props":332,"children":333},{},[334,343],{"type":45,"tag":211,"props":335,"children":336},{},[337],{"type":45,"tag":67,"props":338,"children":340},{"className":339},[],[341],{"type":51,"value":342},"fet003_variant",{"type":45,"tag":211,"props":344,"children":345},{},[346,348,354,355,361],{"type":51,"value":347},"Selected feature ID and version, such as ",{"type":45,"tag":67,"props":349,"children":351},{"className":350},[],[352],{"type":51,"value":353},"FET003_BASE_NEUTRAL@0.1.0",{"type":51,"value":74},{"type":45,"tag":67,"props":356,"children":358},{"className":357},[],[359],{"type":51,"value":360},"FET003_BASE_PHYSX@0.2.0",{"type":51,"value":362},". Infer from the profile when possible.",{"type":45,"tag":189,"props":364,"children":365},{},[366,375],{"type":45,"tag":211,"props":367,"children":368},{},[369],{"type":45,"tag":67,"props":370,"children":372},{"className":371},[],[373],{"type":51,"value":374},"rigid_body_policy",{"type":45,"tag":211,"props":376,"children":377},{},[378],{"type":51,"value":379},"Whether the asset should behave as one rigid body, multiple independent bodies, or an articulated\u002Fmultibody asset. Default to one rigid body only when the profile and asset structure make that clear.",{"type":45,"tag":189,"props":381,"children":382},{},[383,392],{"type":45,"tag":211,"props":384,"children":385},{},[386],{"type":45,"tag":67,"props":387,"children":389},{"className":388},[],[390],{"type":51,"value":391},"collider_strategy",{"type":45,"tag":211,"props":393,"children":394},{},[395],{"type":51,"value":396},"Explicit strategy for collision geometry: existing collider meshes, visual mesh reuse, simplified proxy geometry, primitive proxy, PhysX mesh merge, or block for user choice.",{"type":45,"tag":189,"props":398,"children":399},{},[400,409],{"type":45,"tag":211,"props":401,"children":402},{},[403],{"type":45,"tag":67,"props":404,"children":406},{"className":405},[],[407],{"type":51,"value":408},"mass_source",{"type":45,"tag":211,"props":410,"children":411},{},[412],{"type":51,"value":413},"Explicit mass value, property report, source metadata, or user-approved default. Do not invent physical mass silently.",{"type":45,"tag":54,"props":415,"children":417},{"id":416},"instructions",[418],{"type":51,"value":419},"Instructions",{"type":45,"tag":61,"props":421,"children":422},{},[423],{"type":51,"value":424},"Use this checklist when changing the repository:",{"type":45,"tag":426,"props":427,"children":428},"ol",{},[429,449,454,459,471,537,560,640,645],{"type":45,"tag":115,"props":430,"children":431},{},[432,434,440,441,447],{"type":51,"value":433},"Confirm the input asset exists and that FET000_CORE and FET001_BASE_NEUTRAL are already passing on the same staged asset. If they still fail, hand back to ",{"type":45,"tag":67,"props":435,"children":437},{"className":436},[],[438],{"type":51,"value":439},"simready-foundation-conform-fet-000-core",{"type":51,"value":74},{"type":45,"tag":67,"props":442,"children":444},{"className":443},[],[445],{"type":51,"value":446},"simready-foundation-conform-fet-001-minimal",{"type":51,"value":448}," first.",{"type":45,"tag":115,"props":450,"children":451},{},[452],{"type":51,"value":453},"Parse the validation report and filter to FET003 failures. Do not repair later profile features such as FET004 multibody physics or FET005 grasp physics in this skill.",{"type":45,"tag":115,"props":455,"children":456},{},[457],{"type":51,"value":458},"Load the selected FET003 manifest version and the requirement repair map.",{"type":45,"tag":115,"props":460,"children":461},{},[462,464,469],{"type":51,"value":463},"Create a staged output folder under ",{"type":45,"tag":67,"props":465,"children":467},{"className":466},[],[468],{"type":51,"value":259},{"type":51,"value":470},"; do not mutate the source unless the user explicitly asks for in-place repair.",{"type":45,"tag":115,"props":472,"children":473},{},[474,476],{"type":51,"value":475},"Inspect the stage before editing:\n",{"type":45,"tag":111,"props":477,"children":478},{},[479,484,517,522,527,532],{"type":45,"tag":115,"props":480,"children":481},{},[482],{"type":51,"value":483},"default prim, root prim, root xform ops, stage units, and composed bounds",{"type":45,"tag":115,"props":485,"children":486},{},[487,489,495,496,502,503,509,511],{"type":51,"value":488},"existing ",{"type":45,"tag":67,"props":490,"children":492},{"className":491},[],[493],{"type":51,"value":494},"UsdPhysics.RigidBodyAPI",{"type":51,"value":232},{"type":45,"tag":67,"props":497,"children":499},{"className":498},[],[500],{"type":51,"value":501},"CollisionAPI",{"type":51,"value":232},{"type":45,"tag":67,"props":504,"children":506},{"className":505},[],[507],{"type":51,"value":508},"MeshCollisionAPI",{"type":51,"value":510},", and ",{"type":45,"tag":67,"props":512,"children":514},{"className":513},[],[515],{"type":51,"value":516},"MassAPI",{"type":45,"tag":115,"props":518,"children":519},{},[520],{"type":51,"value":521},"mesh and Gprim candidates for collision geometry",{"type":45,"tag":115,"props":523,"children":524},{},[525],{"type":51,"value":526},"instanceable prims, instance proxies, prototypes, nested rigid bodies, and skew or non-uniform scale",{"type":45,"tag":115,"props":528,"children":529},{},[530],{"type":51,"value":531},"invisible or physics-only geometry purpose values",{"type":45,"tag":115,"props":533,"children":534},{},[535],{"type":51,"value":536},"PhysX schemas and mesh-merge collections when a PhysX FET003 variant is selected",{"type":45,"tag":115,"props":538,"children":539},{},[540,542],{"type":51,"value":541},"Decide the rigid-body model before authoring:\n",{"type":45,"tag":111,"props":543,"children":544},{},[545,550,555],{"type":45,"tag":115,"props":546,"children":547},{},[548],{"type":51,"value":549},"Use one rigid body on the asset root or another clear xformable body root for simple movable props.",{"type":45,"tag":115,"props":551,"children":552},{},[553],{"type":51,"value":554},"Use multiple rigid bodies only when the profile and asset structure clearly call for independent bodies.",{"type":45,"tag":115,"props":556,"children":557},{},[558],{"type":51,"value":559},"Stop and hand off to FET004-oriented work when the asset needs articulated joints or multibody semantics.",{"type":45,"tag":115,"props":561,"children":562},{},[563,565],{"type":51,"value":564},"Apply repairs in this order:\n",{"type":45,"tag":111,"props":566,"children":567},{},[568,573,593,605,617,622,627],{"type":45,"tag":115,"props":569,"children":570},{},[571],{"type":51,"value":572},"Remove or relocate invalid rigid-body and collision APIs before adding new ones.",{"type":45,"tag":115,"props":574,"children":575},{},[576,578,583,585,591],{"type":51,"value":577},"Apply ",{"type":45,"tag":67,"props":579,"children":581},{"className":580},[],[582],{"type":51,"value":494},{"type":51,"value":584}," only to valid ",{"type":45,"tag":67,"props":586,"children":588},{"className":587},[],[589],{"type":51,"value":590},"UsdGeomXformable",{"type":51,"value":592}," body roots.",{"type":45,"tag":115,"props":594,"children":595},{},[596,597,603],{"type":51,"value":577},{"type":45,"tag":67,"props":598,"children":600},{"className":599},[],[601],{"type":51,"value":602},"UsdPhysicsCollisionAPI",{"type":51,"value":604}," only to valid collider prims for the selected FET003 variant.",{"type":45,"tag":115,"props":606,"children":607},{},[608,609,615],{"type":51,"value":577},{"type":45,"tag":67,"props":610,"children":612},{"className":611},[],[613],{"type":51,"value":614},"UsdPhysicsMeshCollisionAPI",{"type":51,"value":616}," only where allowed by the selected neutral or PhysX rule.",{"type":45,"tag":115,"props":618,"children":619},{},[620],{"type":51,"value":621},"Author mass only from an explicit source or user-approved policy.",{"type":45,"tag":115,"props":623,"children":624},{},[625],{"type":51,"value":626},"Fix instancing, nesting, skew, and non-uniform collider scale issues.",{"type":45,"tag":115,"props":628,"children":629},{},[630,632,638],{"type":51,"value":631},"Mark invisible collision-only meshes with ",{"type":45,"tag":67,"props":633,"children":635},{"className":634},[],[636],{"type":51,"value":637},"purpose = \"guide\"",{"type":51,"value":639},".",{"type":45,"tag":115,"props":641,"children":642},{},[643],{"type":51,"value":644},"Rerun the same profile validation gate, or the narrowest available FET003 validation gate.",{"type":45,"tag":115,"props":646,"children":647},{},[648],{"type":51,"value":649},"Summarize the stage as passed, failed, skipped, or blocked. Stop when FET003 passes or the next FET003 failure requires source geometry, property prediction, mass data, collider intent, or a different feature skill.",{"type":45,"tag":54,"props":651,"children":653},{"id":652},"examples",[654],{"type":51,"value":655},"Examples",{"type":45,"tag":61,"props":657,"children":658},{},[659],{"type":51,"value":660},"Example request:",{"type":45,"tag":662,"props":663,"children":668},"pre",{"className":664,"code":666,"language":51,"meta":667},[665],"language-text","Repair FET003 rigid body physics failures on a prop USD asset.\n","",[669],{"type":45,"tag":67,"props":670,"children":671},{"__ignoreMap":667},[672],{"type":51,"value":666},{"type":45,"tag":61,"props":674,"children":675},{},[676],{"type":51,"value":677},"Expected result summary:",{"type":45,"tag":662,"props":679,"children":682},{"className":680,"code":681,"language":51,"meta":667},[665],"staged_asset: repaired copy or output directory\nvalidation: selected feature\u002Fprofile gate and report path\nremaining_failures: next failing requirement IDs, if any\n",[683],{"type":45,"tag":67,"props":684,"children":685},{"__ignoreMap":667},[686],{"type":51,"value":681},{"type":45,"tag":54,"props":688,"children":690},{"id":689},"repair-policy",[691],{"type":51,"value":692},"Repair Policy",{"type":45,"tag":61,"props":694,"children":695},{},[696],{"type":51,"value":697},"Make automatic repairs only when the intended result is mechanical and locally verifiable:",{"type":45,"tag":111,"props":699,"children":700},{},[701,713,725,736,754,766,792],{"type":45,"tag":115,"props":702,"children":703},{},[704,706,711],{"type":51,"value":705},"Add ",{"type":45,"tag":67,"props":707,"children":709},{"className":708},[],[710],{"type":51,"value":494},{"type":51,"value":712}," to a single xformable asset root when the asset is clearly a one-piece movable rigid body.",{"type":45,"tag":115,"props":714,"children":715},{},[716,718,723],{"type":51,"value":717},"Move ",{"type":45,"tag":67,"props":719,"children":721},{"className":720},[],[722],{"type":51,"value":501},{"type":51,"value":724}," from an invalid Xform to a descendant Gprim only when that descendant is the clear collision representation.",{"type":45,"tag":115,"props":726,"children":727},{},[728,729,734],{"type":51,"value":705},{"type":45,"tag":67,"props":730,"children":732},{"className":731},[],[733],{"type":51,"value":501},{"type":51,"value":735}," to existing dedicated collider geometry when naming, purpose, or hierarchy clearly identifies it as collision geometry.",{"type":45,"tag":115,"props":737,"children":738},{},[739,740,745,747,752],{"type":51,"value":705},{"type":45,"tag":67,"props":741,"children":743},{"className":742},[],[744],{"type":51,"value":508},{"type":51,"value":746}," to meshes only when mesh collision is the selected collider strategy and ",{"type":45,"tag":67,"props":748,"children":750},{"className":749},[],[751],{"type":51,"value":501},{"type":51,"value":753}," is also present.",{"type":45,"tag":115,"props":755,"children":756},{},[757,759,764],{"type":51,"value":758},"Set ",{"type":45,"tag":67,"props":760,"children":762},{"className":761},[],[763],{"type":51,"value":637},{"type":51,"value":765}," on invisible collision-only mesh geometry.",{"type":45,"tag":115,"props":767,"children":768},{},[769,771,777,778,783,785,790],{"type":51,"value":770},"Remove ",{"type":45,"tag":67,"props":772,"children":774},{"className":773},[],[775],{"type":51,"value":776},"RigidBodyAPI",{"type":51,"value":232},{"type":45,"tag":67,"props":779,"children":781},{"className":780},[],[782],{"type":51,"value":501},{"type":51,"value":784},", or ",{"type":45,"tag":67,"props":786,"children":788},{"className":787},[],[789],{"type":51,"value":508},{"type":51,"value":791}," from invalid prims only when a valid replacement is authored in the same staged asset or the API is plainly accidental.",{"type":45,"tag":115,"props":793,"children":794},{},[795],{"type":51,"value":796},"Preserve the asset's composed physical size after any transform or scale repair.",{"type":45,"tag":61,"props":798,"children":799},{},[800],{"type":51,"value":801},"Block and report instead of guessing when:",{"type":45,"tag":111,"props":803,"children":804},{},[805,810,815,820,825,830,835],{"type":45,"tag":115,"props":806,"children":807},{},[808],{"type":51,"value":809},"The asset could be a static prop rather than a dynamic rigid body.",{"type":45,"tag":115,"props":811,"children":812},{},[813],{"type":51,"value":814},"Multiple plausible rigid body roots exist.",{"type":45,"tag":115,"props":816,"children":817},{},[818],{"type":51,"value":819},"Collision geometry must be generated from CAD\u002Fsource data and no accepted collider strategy is available.",{"type":45,"tag":115,"props":821,"children":822},{},[823],{"type":51,"value":824},"Mass is missing and there is no explicit property source or user-approved default.",{"type":45,"tag":115,"props":826,"children":827},{},[828],{"type":51,"value":829},"De-instancing or baking transforms would change shared composition semantics.",{"type":45,"tag":115,"props":831,"children":832},{},[833],{"type":51,"value":834},"Nested rigid bodies likely indicate joints or articulation that belong to FET004.",{"type":45,"tag":115,"props":836,"children":837},{},[838],{"type":51,"value":839},"PhysX mesh merge is required but PhysX schemas or collection APIs are unavailable in the local environment.",{"type":45,"tag":54,"props":841,"children":843},{"id":842},"variant-guidance",[844],{"type":51,"value":845},"Variant Guidance",{"type":45,"tag":61,"props":847,"children":848},{},[849,851,856,858,864,866,871,873,879,881,887,889,894],{"type":51,"value":850},"For ",{"type":45,"tag":67,"props":852,"children":854},{"className":853},[],[855],{"type":51,"value":72},{"type":51,"value":857},", prefer standard OpenUSD ",{"type":45,"tag":67,"props":859,"children":861},{"className":860},[],[862],{"type":51,"value":863},"UsdPhysics",{"type":51,"value":865}," schemas and avoid PhysX-only collider patterns. ",{"type":45,"tag":67,"props":867,"children":869},{"className":868},[],[870],{"type":51,"value":501},{"type":51,"value":872}," belongs on ",{"type":45,"tag":67,"props":874,"children":876},{"className":875},[],[877],{"type":51,"value":878},"UsdGeomGprim",{"type":51,"value":880}," prims, and mesh-specific collision belongs on ",{"type":45,"tag":67,"props":882,"children":884},{"className":883},[],[885],{"type":51,"value":886},"UsdGeomMesh",{"type":51,"value":888}," prims that also have ",{"type":45,"tag":67,"props":890,"children":892},{"className":891},[],[893],{"type":51,"value":501},{"type":51,"value":639},{"type":45,"tag":61,"props":896,"children":897},{},[898,899,904,906,911,912,917,919,925,927,933],{"type":51,"value":850},{"type":45,"tag":67,"props":900,"children":902},{"className":901},[],[903],{"type":51,"value":80},{"type":51,"value":905},", follow the selected manifest version. PhysX variants may allow ",{"type":45,"tag":67,"props":907,"children":909},{"className":908},[],[910],{"type":51,"value":501},{"type":51,"value":74},{"type":45,"tag":67,"props":913,"children":915},{"className":914},[],[916],{"type":51,"value":508},{"type":51,"value":918}," on a mesh-merge Xform when ",{"type":45,"tag":67,"props":920,"children":922},{"className":921},[],[923],{"type":51,"value":924},"PhysxMeshMergeCollisionAPI",{"type":51,"value":926}," is applied and the ",{"type":45,"tag":67,"props":928,"children":930},{"className":929},[],[931],{"type":51,"value":932},"collisionmeshes",{"type":51,"value":934}," collection resolves to at least one Gprim. Do not use PhysX-only repairs for a neutral profile.",{"type":45,"tag":54,"props":936,"children":938},{"id":937},"validation-handoff",[939],{"type":51,"value":940},"Validation Handoff",{"type":45,"tag":61,"props":942,"children":943},{},[944],{"type":51,"value":945},"Preserve reports under the staged output directory. If the Physical AI Skill Hub validation commands are available, use the same profile gate that exposed the failure:",{"type":45,"tag":662,"props":947,"children":951},{"className":948,"code":949,"language":950,"meta":667,"style":667},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run --python 3.12 validate-simready-profile \u003Cstaged-usd> \\\n  --profile \u003Cprofile> \\\n  --profile-version \u003Cversion> \\\n  --foundation-root \u003Csimready-foundation-root> \\\n  --foundation-spec-root \u003Csimready-foundation-root>\u002Fnv_core\u002Fsr_specs\u002Fdocs \\\n  --report \u003Coutput-root>\u002Fsimready-profile-after-fet003.json\n","bash",[952],{"type":45,"tag":67,"props":953,"children":954},{"__ignoreMap":667},[955,1016,1047,1078,1109,1143],{"type":45,"tag":956,"props":957,"children":960},"span",{"class":958,"line":959},"line",1,[961,967,973,978,984,989,995,1000,1006,1011],{"type":45,"tag":956,"props":962,"children":964},{"style":963},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[965],{"type":51,"value":966},"uv",{"type":45,"tag":956,"props":968,"children":970},{"style":969},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[971],{"type":51,"value":972}," run",{"type":45,"tag":956,"props":974,"children":975},{"style":969},[976],{"type":51,"value":977}," --python",{"type":45,"tag":956,"props":979,"children":981},{"style":980},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[982],{"type":51,"value":983}," 3.12",{"type":45,"tag":956,"props":985,"children":986},{"style":969},[987],{"type":51,"value":988}," validate-simready-profile",{"type":45,"tag":956,"props":990,"children":992},{"style":991},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[993],{"type":51,"value":994}," \u003C",{"type":45,"tag":956,"props":996,"children":997},{"style":969},[998],{"type":51,"value":999},"staged-us",{"type":45,"tag":956,"props":1001,"children":1003},{"style":1002},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1004],{"type":51,"value":1005},"d",{"type":45,"tag":956,"props":1007,"children":1008},{"style":991},[1009],{"type":51,"value":1010},">",{"type":45,"tag":956,"props":1012,"children":1013},{"style":1002},[1014],{"type":51,"value":1015}," \\\n",{"type":45,"tag":956,"props":1017,"children":1019},{"class":958,"line":1018},2,[1020,1025,1029,1034,1039,1043],{"type":45,"tag":956,"props":1021,"children":1022},{"style":969},[1023],{"type":51,"value":1024},"  --profile",{"type":45,"tag":956,"props":1026,"children":1027},{"style":991},[1028],{"type":51,"value":994},{"type":45,"tag":956,"props":1030,"children":1031},{"style":969},[1032],{"type":51,"value":1033},"profil",{"type":45,"tag":956,"props":1035,"children":1036},{"style":1002},[1037],{"type":51,"value":1038},"e",{"type":45,"tag":956,"props":1040,"children":1041},{"style":991},[1042],{"type":51,"value":1010},{"type":45,"tag":956,"props":1044,"children":1045},{"style":1002},[1046],{"type":51,"value":1015},{"type":45,"tag":956,"props":1048,"children":1050},{"class":958,"line":1049},3,[1051,1056,1060,1065,1070,1074],{"type":45,"tag":956,"props":1052,"children":1053},{"style":969},[1054],{"type":51,"value":1055},"  --profile-version",{"type":45,"tag":956,"props":1057,"children":1058},{"style":991},[1059],{"type":51,"value":994},{"type":45,"tag":956,"props":1061,"children":1062},{"style":969},[1063],{"type":51,"value":1064},"versio",{"type":45,"tag":956,"props":1066,"children":1067},{"style":1002},[1068],{"type":51,"value":1069},"n",{"type":45,"tag":956,"props":1071,"children":1072},{"style":991},[1073],{"type":51,"value":1010},{"type":45,"tag":956,"props":1075,"children":1076},{"style":1002},[1077],{"type":51,"value":1015},{"type":45,"tag":956,"props":1079,"children":1081},{"class":958,"line":1080},4,[1082,1087,1091,1096,1101,1105],{"type":45,"tag":956,"props":1083,"children":1084},{"style":969},[1085],{"type":51,"value":1086},"  --foundation-root",{"type":45,"tag":956,"props":1088,"children":1089},{"style":991},[1090],{"type":51,"value":994},{"type":45,"tag":956,"props":1092,"children":1093},{"style":969},[1094],{"type":51,"value":1095},"simready-foundation-roo",{"type":45,"tag":956,"props":1097,"children":1098},{"style":1002},[1099],{"type":51,"value":1100},"t",{"type":45,"tag":956,"props":1102,"children":1103},{"style":991},[1104],{"type":51,"value":1010},{"type":45,"tag":956,"props":1106,"children":1107},{"style":1002},[1108],{"type":51,"value":1015},{"type":45,"tag":956,"props":1110,"children":1112},{"class":958,"line":1111},5,[1113,1118,1122,1126,1130,1134,1139],{"type":45,"tag":956,"props":1114,"children":1115},{"style":969},[1116],{"type":51,"value":1117},"  --foundation-spec-root",{"type":45,"tag":956,"props":1119,"children":1120},{"style":991},[1121],{"type":51,"value":994},{"type":45,"tag":956,"props":1123,"children":1124},{"style":969},[1125],{"type":51,"value":1095},{"type":45,"tag":956,"props":1127,"children":1128},{"style":1002},[1129],{"type":51,"value":1100},{"type":45,"tag":956,"props":1131,"children":1132},{"style":991},[1133],{"type":51,"value":1010},{"type":45,"tag":956,"props":1135,"children":1136},{"style":969},[1137],{"type":51,"value":1138},"\u002Fnv_core\u002Fsr_specs\u002Fdocs",{"type":45,"tag":956,"props":1140,"children":1141},{"style":1002},[1142],{"type":51,"value":1015},{"type":45,"tag":956,"props":1144,"children":1146},{"class":958,"line":1145},6,[1147,1152,1156,1161,1165,1169],{"type":45,"tag":956,"props":1148,"children":1149},{"style":969},[1150],{"type":51,"value":1151},"  --report",{"type":45,"tag":956,"props":1153,"children":1154},{"style":991},[1155],{"type":51,"value":994},{"type":45,"tag":956,"props":1157,"children":1158},{"style":969},[1159],{"type":51,"value":1160},"output-roo",{"type":45,"tag":956,"props":1162,"children":1163},{"style":1002},[1164],{"type":51,"value":1100},{"type":45,"tag":956,"props":1166,"children":1167},{"style":991},[1168],{"type":51,"value":1010},{"type":45,"tag":956,"props":1170,"children":1171},{"style":969},[1172],{"type":51,"value":1173},"\u002Fsimready-profile-after-fet003.json\n",{"type":45,"tag":61,"props":1175,"children":1176},{},[1177],{"type":51,"value":1178},"Count this skill as successful when the selected FET003 variant passes, even if the full profile still fails on later features. Report those remaining failures as handoff work for their own skills.",{"type":45,"tag":54,"props":1180,"children":1182},{"id":1181},"limitations",[1183],{"type":51,"value":1184},"Limitations",{"type":45,"tag":111,"props":1186,"children":1187},{},[1188,1193,1198],{"type":45,"tag":115,"props":1189,"children":1190},{},[1191],{"type":51,"value":1192},"Do not silently mutate the source asset; work on the requested staged output.",{"type":45,"tag":115,"props":1194,"children":1195},{},[1196],{"type":51,"value":1197},"Do not hide later profile failures after the selected feature gate passes or fails.",{"type":45,"tag":115,"props":1199,"children":1200},{},[1201],{"type":51,"value":1202},"Do not invent geometry, metadata, or runtime behavior that conflicts with the asset intent.",{"type":45,"tag":54,"props":1204,"children":1206},{"id":1205},"troubleshooting",[1207],{"type":51,"value":1208},"Troubleshooting",{"type":45,"tag":111,"props":1210,"children":1211},{},[1212,1217,1222],{"type":45,"tag":115,"props":1213,"children":1214},{},[1215],{"type":51,"value":1216},"Error: validation tooling is unavailable. Solution: run the narrowest available USD or static check and report the gap.",{"type":45,"tag":115,"props":1218,"children":1219},{},[1220],{"type":51,"value":1221},"Error: a repair would change asset intent. Solution: stop and ask for direction or stage the smallest reversible edit.",{"type":45,"tag":115,"props":1223,"children":1224},{},[1225],{"type":51,"value":1226},"Error: later profile gates still fail. Solution: report the next failing feature and hand off to the matching conformance skill.",{"type":45,"tag":54,"props":1228,"children":1230},{"id":1229},"resources",[1231],{"type":51,"value":1232},"Resources",{"type":45,"tag":111,"props":1234,"children":1235},{},[1236,1247],{"type":45,"tag":115,"props":1237,"children":1238},{},[1239,1245],{"type":45,"tag":67,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":51,"value":1244},"assets\u002Fopenai.yaml",{"type":51,"value":1246}," preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.",{"type":45,"tag":115,"props":1248,"children":1249},{},[1250,1256],{"type":45,"tag":67,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":51,"value":1255},"references\u002F",{"type":51,"value":1257}," contains detailed requirement notes; load only the files needed for the active validation failure.",{"type":45,"tag":54,"props":1259,"children":1261},{"id":1260},"summary-format",[1262],{"type":51,"value":1263},"Summary Format",{"type":45,"tag":61,"props":1265,"children":1266},{},[1267],{"type":51,"value":1268},"Report:",{"type":45,"tag":181,"props":1270,"children":1271},{},[1272,1288],{"type":45,"tag":185,"props":1273,"children":1274},{},[1275],{"type":45,"tag":189,"props":1276,"children":1277},{},[1278,1283],{"type":45,"tag":193,"props":1279,"children":1280},{},[1281],{"type":51,"value":1282},"Field",{"type":45,"tag":193,"props":1284,"children":1285},{},[1286],{"type":51,"value":1287},"Meaning",{"type":45,"tag":204,"props":1289,"children":1290},{},[1291,1308,1325,1349,1365,1389,1406,1422,1439,1456,1472],{"type":45,"tag":189,"props":1292,"children":1293},{},[1294,1303],{"type":45,"tag":211,"props":1295,"children":1296},{},[1297],{"type":45,"tag":67,"props":1298,"children":1300},{"className":1299},[],[1301],{"type":51,"value":1302},"input_usd_path",{"type":45,"tag":211,"props":1304,"children":1305},{},[1306],{"type":51,"value":1307},"Original USD path.",{"type":45,"tag":189,"props":1309,"children":1310},{},[1311,1320],{"type":45,"tag":211,"props":1312,"children":1313},{},[1314],{"type":45,"tag":67,"props":1315,"children":1317},{"className":1316},[],[1318],{"type":51,"value":1319},"output_usd_path",{"type":45,"tag":211,"props":1321,"children":1322},{},[1323],{"type":51,"value":1324},"Latest staged\u002Frepaired USD path.",{"type":45,"tag":189,"props":1326,"children":1327},{},[1328,1344],{"type":45,"tag":211,"props":1329,"children":1330},{},[1331,1337,1339],{"type":45,"tag":67,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":51,"value":1336},"profile",{"type":51,"value":1338}," and ",{"type":45,"tag":67,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":51,"value":308},{"type":45,"tag":211,"props":1345,"children":1346},{},[1347],{"type":51,"value":1348},"Validation target.",{"type":45,"tag":189,"props":1350,"children":1351},{},[1352,1360],{"type":45,"tag":211,"props":1353,"children":1354},{},[1355],{"type":45,"tag":67,"props":1356,"children":1358},{"className":1357},[],[1359],{"type":51,"value":342},{"type":45,"tag":211,"props":1361,"children":1362},{},[1363],{"type":51,"value":1364},"Selected FET003 feature ID and version.",{"type":45,"tag":189,"props":1366,"children":1367},{},[1368,1377],{"type":45,"tag":211,"props":1369,"children":1370},{},[1371],{"type":45,"tag":67,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":51,"value":1376},"rigid_body_roots",{"type":45,"tag":211,"props":1378,"children":1379},{},[1380,1382,1387],{"type":51,"value":1381},"Prims with ",{"type":45,"tag":67,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":51,"value":494},{"type":51,"value":1388}," after repair.",{"type":45,"tag":189,"props":1390,"children":1391},{},[1392,1401],{"type":45,"tag":211,"props":1393,"children":1394},{},[1395],{"type":45,"tag":67,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":51,"value":1400},"collider_prims",{"type":45,"tag":211,"props":1402,"children":1403},{},[1404],{"type":51,"value":1405},"Prims with collision APIs after repair.",{"type":45,"tag":189,"props":1407,"children":1408},{},[1409,1417],{"type":45,"tag":211,"props":1410,"children":1411},{},[1412],{"type":45,"tag":67,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":51,"value":408},{"type":45,"tag":211,"props":1418,"children":1419},{},[1420],{"type":51,"value":1421},"Source of authored mass values, or why mass repair was blocked.",{"type":45,"tag":189,"props":1423,"children":1424},{},[1425,1434],{"type":45,"tag":211,"props":1426,"children":1427},{},[1428],{"type":45,"tag":67,"props":1429,"children":1431},{"className":1430},[],[1432],{"type":51,"value":1433},"requirements_repaired",{"type":45,"tag":211,"props":1435,"children":1436},{},[1437],{"type":51,"value":1438},"Requirement IDs changed by this skill.",{"type":45,"tag":189,"props":1440,"children":1441},{},[1442,1451],{"type":45,"tag":211,"props":1443,"children":1444},{},[1445],{"type":45,"tag":67,"props":1446,"children":1448},{"className":1447},[],[1449],{"type":51,"value":1450},"requirements_blocked",{"type":45,"tag":211,"props":1452,"children":1453},{},[1454],{"type":51,"value":1455},"Requirement IDs that need user intent, property data, or upstream conversion.",{"type":45,"tag":189,"props":1457,"children":1458},{},[1459,1467],{"type":45,"tag":211,"props":1460,"children":1461},{},[1462],{"type":45,"tag":67,"props":1463,"children":1465},{"className":1464},[],[1466],{"type":51,"value":325},{"type":45,"tag":211,"props":1468,"children":1469},{},[1470],{"type":51,"value":1471},"Path to the rerun validation report.",{"type":45,"tag":189,"props":1473,"children":1474},{},[1475,1484],{"type":45,"tag":211,"props":1476,"children":1477},{},[1478],{"type":45,"tag":67,"props":1479,"children":1481},{"className":1480},[],[1482],{"type":51,"value":1483},"next_step",{"type":45,"tag":211,"props":1485,"children":1486},{},[1487],{"type":51,"value":1488},"Usually the next failing profile feature or a blocked FET003 requirement.",{"type":45,"tag":61,"props":1490,"children":1491},{},[1492],{"type":51,"value":1493},"Keep the user-facing summary short: what rigid-body data changed, which FET003 variant was validated, what still fails, and the first validation gate that blocks progress.",{"type":45,"tag":1495,"props":1496,"children":1497},"style",{},[1498],{"type":51,"value":1499},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1501,"total":1585},[1502,1514,1527,1537,1550,1561,1574],{"slug":1503,"name":1503,"fn":1504,"description":1505,"org":1506,"tags":1507,"stars":23,"repoUrl":24,"updatedAt":1513},"simready-foundation-add-capability","add SimReady capability documentation","Add SimReady capability docs, requirement indexes, validation stubs, and registrations for new requirement families.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1508,1511,1512],{"name":1509,"slug":1510,"type":13},"Documentation","documentation",{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:08.047242",{"slug":1515,"name":1515,"fn":1516,"description":1517,"org":1518,"tags":1519,"stars":23,"repoUrl":24,"updatedAt":1526},"simready-foundation-add-feature","add SimReady features and documentation","Use for adding SimReady feature docs, manifests, requirement mappings, validation strategy, and index entries.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1520,1521,1524,1525],{"name":1509,"slug":1510,"type":13},{"name":1522,"slug":1523,"type":13},"Engineering","engineering",{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:23.330216",{"slug":1528,"name":1528,"fn":1529,"description":1530,"org":1531,"tags":1532,"stars":23,"repoUrl":24,"updatedAt":1536},"simready-foundation-add-feature-adapter","mutate USD assets with feature adapters","Use for adding SimReady feature adapters that mutate USD assets between exact feature or profile versions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1533,1534,1535],{"name":1522,"slug":1523,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:02.999518",{"slug":1538,"name":1538,"fn":1539,"description":1540,"org":1541,"tags":1542,"stars":23,"repoUrl":24,"updatedAt":1549},"simready-foundation-add-profile","add SimReady profile versions","Use for adding SimReady profile versions with feature bundles, docs, indexes, and validation notes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1543,1544,1545,1546],{"name":1509,"slug":1510,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1547,"slug":1548,"type":13},"Validation","validation","2026-07-14T05:34:00.482781",{"slug":1551,"name":1551,"fn":1552,"description":1553,"org":1554,"tags":1555,"stars":23,"repoUrl":24,"updatedAt":1560},"simready-foundation-add-requirement","add atomic SimReady requirements","Use for adding atomic SimReady requirements with stable IDs, docs, examples, indexes, and validator follow-up.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1556,1557,1558,1559],{"name":1509,"slug":1510,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1547,"slug":1548,"type":13},"2026-07-14T05:34:11.881936",{"slug":1562,"name":1562,"fn":1563,"description":1564,"org":1565,"tags":1566,"stars":23,"repoUrl":24,"updatedAt":1573},"simready-foundation-add-runtime-test","add SimReady runtime tests","Use for adding SimReady runtime tests, runner expectations, batch\u002Fjob\u002Freport notes, and validation evidence.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1567,1568,1569,1572],{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1570,"slug":1571,"type":13},"Testing","testing",{"name":1547,"slug":1548,"type":13},"2026-07-14T05:34:09.295859",{"slug":1575,"name":1575,"fn":1576,"description":1577,"org":1578,"tags":1579,"stars":23,"repoUrl":24,"updatedAt":1584},"simready-foundation-add-validator","add executable SimReady validators","Use for adding executable SimReady validators that report requirement IDs with focused pass\u002Ffail coverage.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1580,1581,1582,1583],{"name":1522,"slug":1523,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1547,"slug":1548,"type":13},"2026-07-14T05:34:14.407249",26,{"items":1587,"total":1740},[1588,1604,1622,1633,1645,1657,1670,1684,1695,1706,1720,1729],{"slug":1589,"name":1589,"fn":1590,"description":1591,"org":1592,"tags":1593,"stars":1601,"repoUrl":1602,"updatedAt":1603},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1594,1595,1598],{"name":1509,"slug":1510,"type":13},{"name":1596,"slug":1597,"type":13},"MCP","mcp",{"name":1599,"slug":1600,"type":13},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1605,"name":1605,"fn":1606,"description":1607,"org":1608,"tags":1609,"stars":1619,"repoUrl":1620,"updatedAt":1621},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1610,1613,1616],{"name":1611,"slug":1612,"type":13},"Containers","containers",{"name":1614,"slug":1615,"type":13},"Deployment","deployment",{"name":1617,"slug":1618,"type":13},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1623,"name":1623,"fn":1624,"description":1625,"org":1626,"tags":1627,"stars":1619,"repoUrl":1620,"updatedAt":1632},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1628,1631],{"name":1629,"slug":1630,"type":13},"CI\u002FCD","ci-cd",{"name":1614,"slug":1615,"type":13},"2026-07-14T05:25:59.97109",{"slug":1634,"name":1634,"fn":1635,"description":1636,"org":1637,"tags":1638,"stars":1619,"repoUrl":1620,"updatedAt":1644},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1639,1640,1641],{"name":1629,"slug":1630,"type":13},{"name":1614,"slug":1615,"type":13},{"name":1642,"slug":1643,"type":13},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1646,"name":1646,"fn":1647,"description":1648,"org":1649,"tags":1650,"stars":1619,"repoUrl":1620,"updatedAt":1656},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1651,1652,1653],{"name":21,"slug":22,"type":13},{"name":1642,"slug":1643,"type":13},{"name":1654,"slug":1655,"type":13},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1658,"name":1658,"fn":1659,"description":1660,"org":1661,"tags":1662,"stars":1619,"repoUrl":1620,"updatedAt":1669},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1663,1666],{"name":1664,"slug":1665,"type":13},"Best Practices","best-practices",{"name":1667,"slug":1668,"type":13},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1671,"name":1671,"fn":1672,"description":1673,"org":1674,"tags":1675,"stars":1619,"repoUrl":1620,"updatedAt":1683},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1676,1679,1682],{"name":1677,"slug":1678,"type":13},"Machine Learning","machine-learning",{"name":1680,"slug":1681,"type":13},"Migration","migration",{"name":9,"slug":8,"type":13},"2026-07-17T06:07:11.777011",{"slug":1685,"name":1685,"fn":1686,"description":1687,"org":1688,"tags":1689,"stars":1619,"repoUrl":1620,"updatedAt":1694},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1690,1693],{"name":1691,"slug":1692,"type":13},"QA","qa",{"name":1570,"slug":1571,"type":13},"2026-07-14T05:25:53.673039",{"slug":1696,"name":1696,"fn":1697,"description":1698,"org":1699,"tags":1700,"stars":1619,"repoUrl":1620,"updatedAt":1705},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1701,1702],{"name":1614,"slug":1615,"type":13},{"name":1703,"slug":1704,"type":13},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1707,"name":1707,"fn":1708,"description":1709,"org":1710,"tags":1711,"stars":1619,"repoUrl":1620,"updatedAt":1719},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1712,1715,1716],{"name":1713,"slug":1714,"type":13},"Code Review","code-review",{"name":1642,"slug":1643,"type":13},{"name":1717,"slug":1718,"type":13},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1721,"name":1721,"fn":1722,"description":1723,"org":1724,"tags":1725,"stars":1619,"repoUrl":1620,"updatedAt":1728},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1726,1727],{"name":1691,"slug":1692,"type":13},{"name":1570,"slug":1571,"type":13},"2026-07-14T05:25:54.928983",{"slug":1730,"name":1730,"fn":1731,"description":1732,"org":1733,"tags":1734,"stars":1619,"repoUrl":1620,"updatedAt":1739},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1735,1738],{"name":1736,"slug":1737,"type":13},"Automation","automation",{"name":1629,"slug":1630,"type":13},"2026-07-30T05:29:03.275638",496]