[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-simready-foundation-conform-fet-004-simulate-multi-body-physics":3,"mdc--qmfcgn-key":34,"related-org-nvidia-simready-foundation-conform-fet-004-simulate-multi-body-physics":1651,"related-repo-nvidia-simready-foundation-conform-fet-004-simulate-multi-body-physics":1810},{"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-004-simulate-multi-body-physics","repair SimReady multibody physics configurations","Use for repairing SimReady multibody physics: rigid bodies, joints, articulation roots, and PhysX variants.",{"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:18.258778","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-004-simulate-multi-body-physics","---\nname: simready-foundation-conform-fet-004-simulate-multi-body-physics\ndescription: \"Use for repairing SimReady multibody physics: rigid bodies, joints, articulation roots, and PhysX variants.\"\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-004 Simulate Multi-Body Physics\n\n## Purpose\nUse this workflow skill after FET000_CORE, FET001_BASE_NEUTRAL, and the selected FET003 rigid-body variant are already in a reasonable state and the next validation gate is `FET004_BASE_NEUTRAL`, `FET004_BASE_PHYSX`, or `FET004_ROBOT_PHYSX`. It repairs multibody structure: multiple existing rigid bodies, joints between them, articulation-root placement, and variant-specific PhysX requirements.\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 FET004 validation gate after each repair stage, and stop at the first remaining FET004 validation failure that needs asset-design intent, source conversion, collider redesign, or geometry that is not already present.\n\n## Hard Constraint\n\nDo not create new geometry to satisfy FET004.\n\n- Do not add cubes, meshes, collider proxies, visual parts, or duplicate\u002Fsplit geometry solely to produce a second rigid body or a joint target.\n- Do not invent a second body for `RB.MB.001` when the asset contains only one real physical part.\n- Do not generate collision geometry for PhysX FET004 failures. Reuse existing collider or visual geometry only, or hand back to FET003\u002Fsource conversion when required geometry is missing.\n- It is acceptable to author non-geometry USD physics structure, such as `UsdPhysicsJoint` prims, relationships, rigid-body schemas, articulation schemas, or physics attributes, but only when those opinions target existing prims that already represent real asset parts.\n\nIf an asset is a single-rigid-body prop and the selected profile documents FET004 as optional or conditional, treat FET004 as not applicable. Report that the asset satisfies prop physics through FET003 and should not be forced through FET004 unless the user supplies multibody intent or a source asset with separate body geometry.\n\n## Profile Conditionality\n\nBefore repairing FET004, read the target profile documentation and profile index:\n\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002Fprofiles.md`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002F\u003Cprofile-slug>.md`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002Fprofiles.toml`\n\nIf the selected profile describes FET004 as optional or conditional, use that text as authoritative workflow guidance for the conforming stage. A TOML comment is human-readable guidance, not machine-readable validation policy, so also prefer explicit profile markdown or profile-index notes when available.\n\nDo not decide FET004 applicability by mesh count alone. An asset may have several meshes and still be one rigid body. FET004 applies when the asset has more than one intended rigid body, joints, articulations, robot links, or source multibody structure. For a prop with one intended physical body and no joints\u002Farticulation intent, record FET004 as `skipped\u002Fnot applicable` when the profile allows it.\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 FET004 manifest selected by the profile:\n\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_neutral-0.1.0-simulate_multi_body_physics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_physx-0.1.0-simulate_multi_body_phyics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_physx-0.2.0-simulate_multi_body_phyics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_robot_physx-0.1.0-simulate_multi_body_phyics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_robot_physx-0.2.0-simulate_multi_body_phyics.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004-simulate_multi_body_physics.md`\n\nTreat the selected JSON manifest as authoritative for requirement IDs. If the markdown, manifest, validator, or report disagree, 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\u002Ffet004-requirements.md` when a FET004 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-physx`, `robot-body-neutral`, `robot-body-runnable`, or another profile that includes FET004. |\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| `fet004_variant` | Selected feature ID and version, such as `FET004_BASE_NEUTRAL@0.1.0`, `FET004_BASE_PHYSX@0.2.0`, or `FET004_ROBOT_PHYSX@0.2.0`. Infer from the profile when possible. |\n| `profile_condition_notes` | Any profile markdown, profile index, or TOML comments that mark FET004 optional, conditional, required, or not applicable. |\n| `multibody_intent` | Whether the asset is intentionally a multibody assembly, articulated prop, or robot body. Infer only from profile, existing rigid bodies\u002Fjoints, source metadata, or user instruction. |\n| `body_map` | Existing prims that correspond to real physical bodies. Build this from current rigid-body APIs, existing xformable part roots, joint targets, robot links, or source hierarchy. |\n| `joint_intent` | Existing joint prims, source CAD\u002FURDF\u002FMJCF joint data, robot joint relationships, naming, or user-approved constraints. |\n\n## Instructions\n\nUse this checklist when changing the repository:\n\n1. Confirm the input asset exists, then read the target profile docs and profile index for optional or conditional feature notes before deciding whether to repair FET004.\n2. Parse the validation report and filter to FET004 failures. Do not repair later profile features such as FET005 grasp physics, FET006 materials, FET021 robot core, FET022 driven joints, or FET024 base articulation in this skill.\n3. Load the selected FET004 manifest version and the requirement repair map.\n4. Decide whether FET004 applies:\n   - Apply FET004 when the profile requires it and the asset has at least two intended physical bodies, existing joints, robot links, articulation intent, or clear multibody source metadata.\n   - Skip FET004 as not applicable when the selected profile marks it optional or conditional and the asset is a single intended rigid body with no joints or articulation intent.\n   - Treat mesh count as supporting evidence only; multiple meshes do not by themselves make an asset multibody.\n   - Block when validation demands a second body but the USD contains no existing geometry or xformable part that can honestly represent that body.\n5. Create a staged output folder under `output_root`; do not mutate the source unless the user explicitly asks for in-place repair.\n6. Inspect the stage before editing:\n   - default prim, root prim, units, and composed bounds\n   - existing `UsdPhysics.RigidBodyAPI`, `CollisionAPI`, `MeshCollisionAPI`, `MassAPI`, joint prims, and articulation roots\n   - existing xformable part roots and geometry that could correspond to separate physical bodies\n   - joint `physics:body0` and `physics:body1` targets, including missing, empty, multiple, or non-rigid targets\n   - static, disabled, or kinematic flags on bodies participating in articulations\n   - PhysX schemas and collider relationships when a PhysX FET004 variant is selected\n7. Apply repairs in this order:\n   - Fix or remove invalid joint relationship targets before adding new joint opinions.\n   - Apply `UsdPhysics.RigidBodyAPI` only to existing xformable prims that already represent distinct physical bodies.\n   - Author or retarget `UsdPhysicsJoint` prims only when body pairing and joint type are known from existing data or user intent.\n   - Ensure each joint body relationship targets an existing prim and has at most one target.\n   - Move or remove nested `UsdPhysics.ArticulationRootAPI` only when the correct single articulation root is clear.\n   - Enable an articulation root body or clear kinematic mode only when dynamic articulation is the intended behavior.\n   - For PhysX variants, repair only schema opinions and relationships on existing colliders or rigid bodies; do not create collider geometry.\n8. Rerun the same profile validation gate, or the narrowest available FET004 validation gate.\n9. Summarize the stage as passed, failed, skipped, or blocked. Stop when FET004 passes, is correctly skipped as not applicable, or the next FET004 failure requires geometry, topology, joint intent, runtime simulation evidence, or an upstream conversion change.\n\n## Examples\n\nExample request:\n\n```text\nRepair FET004 multi-body physics failures without creating new geometry.\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 a missing rigid-body schema to an existing xformable part root that clearly represents a distinct physical body.\n- Retarget a joint body relationship to an existing rigid body when the intended target is obvious from neighboring hierarchy, naming, or source metadata.\n- Reduce a body relationship with multiple targets to one target only when the selected target is unambiguous.\n- Add a fixed joint between two existing rigid bodies only when the asset already expresses a fixed connection through source metadata, robot topology, naming, or user instruction.\n- Remove a nested articulation root when another ancestor or descendant is clearly the intended unique root.\n- Set `physics:rigidBodyEnabled = true` or `physics:kinematicEnabled = false` on an articulation root body only when the asset is meant to simulate dynamically.\n\nBlock and report instead of guessing when:\n\n- The USD has only one existing physical body candidate and no source data for a second body.\n- Passing `RB.MB.001` would require creating, duplicating, splitting, or importing geometry.\n- A joint type, joint axis, anchor frame, or body pairing is not clear from existing data.\n- Multiple plausible articulation roots exist.\n- PhysX collision requirements require new collider geometry or a collider redesign.\n- The asset is a prop profile where FET004 is conditional and the prop is intentionally a single rigid body.\n\n## Variant Guidance\n\nFor `FET004_BASE_NEUTRAL`, use standard OpenUSD `UsdPhysics` bodies, joints, and articulation roots. The core FET004 requirements are `JT.001`, `JT.002`, `JT.003`, `JT.ART.002`, `JT.ART.003`, `JT.ART.004`, and `RB.MB.001`.\n\nFor `FET004_BASE_PHYSX`, first satisfy the neutral FET004 dependency and the selected FET003 PhysX dependency. Then repair only selected PhysX collision requirements on existing colliders. Do not use robot-specific RB.COL.001 exemptions for a base PhysX prop profile.\n\nFor `FET004_ROBOT_PHYSX`, follow the robot PhysX manifest. This variant intentionally has different collision requirements from base PhysX and does not require RB.COL.001. Preserve robot link and joint semantics, and leave robot identity\u002Fschema issues to FET021, driven joint actuation to FET022, and articulation-root cardinality or PhysX collision-clearance issues to FET024 when those later gates are the active failure.\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-fet004.json\n```\n\nCount this skill as successful when the selected FET004 variant passes or when FET004 is explicitly not applicable for the selected prop workflow. Report later feature 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| `fet004_variant` | Selected FET004 feature ID and version. |\n| `applicability` | Applied, skipped as not applicable, failed, or blocked. |\n| `rigid_body_roots` | Existing prims with `UsdPhysics.RigidBodyAPI` after repair. |\n| `joint_prims` | Joint prims authored or repaired by this skill. |\n| `articulation_roots` | Articulation root prims after repair. |\n| `geometry_policy` | Confirmation that no new geometry was created, or why work was blocked. |\n| `requirements_repaired` | Requirement IDs changed by this skill. |\n| `requirements_blocked` | Requirement IDs that need geometry, topology, joint intent, or upstream conversion. |\n| `validation_report` | Path to the rerun validation report. |\n| `next_step` | Usually the next failing profile feature or a blocked FET004 requirement. |\n\nKeep the user-facing summary short: whether FET004 applied, what body\u002Fjoint\u002Farticulation opinions changed, that no geometry was created, which FET004 variant was validated, 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,91,96,102,107,148,153,159,164,194,199,212,218,223,229,234,291,296,309,315,320,584,590,595,812,818,823,835,840,849,855,860,909,914,954,960,1030,1041,1052,1058,1063,1291,1296,1302,1320,1326,1344,1350,1375,1381,1386,1640,1645],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"simready-conform-fet-004-simulate-multi-body-physics",[50],{"type":51,"value":52},"text","SimReady Conform FET-004 Simulate Multi-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,83,89],{"type":51,"value":65},"Use this workflow skill after FET000_CORE, FET001_BASE_NEUTRAL, and the selected FET003 rigid-body variant are already in a reasonable state and the next validation gate is ",{"type":45,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":51,"value":72},"FET004_BASE_NEUTRAL",{"type":51,"value":74},", ",{"type":45,"tag":67,"props":76,"children":78},{"className":77},[],[79],{"type":51,"value":80},"FET004_BASE_PHYSX",{"type":51,"value":82},", or ",{"type":45,"tag":67,"props":84,"children":86},{"className":85},[],[87],{"type":51,"value":88},"FET004_ROBOT_PHYSX",{"type":51,"value":90},". It repairs multibody structure: multiple existing rigid bodies, joints between them, articulation-root placement, and variant-specific PhysX requirements.",{"type":45,"tag":61,"props":92,"children":93},{},[94],{"type":51,"value":95},"This is an authoring and repair skill, not the final validator. Work on a staged copy under the requested output directory, rerun the same FET004 validation gate after each repair stage, and stop at the first remaining FET004 validation failure that needs asset-design intent, source conversion, collider redesign, or geometry that is not already present.",{"type":45,"tag":54,"props":97,"children":99},{"id":98},"hard-constraint",[100],{"type":51,"value":101},"Hard Constraint",{"type":45,"tag":61,"props":103,"children":104},{},[105],{"type":51,"value":106},"Do not create new geometry to satisfy FET004.",{"type":45,"tag":108,"props":109,"children":110},"ul",{},[111,117,130,135],{"type":45,"tag":112,"props":113,"children":114},"li",{},[115],{"type":51,"value":116},"Do not add cubes, meshes, collider proxies, visual parts, or duplicate\u002Fsplit geometry solely to produce a second rigid body or a joint target.",{"type":45,"tag":112,"props":118,"children":119},{},[120,122,128],{"type":51,"value":121},"Do not invent a second body for ",{"type":45,"tag":67,"props":123,"children":125},{"className":124},[],[126],{"type":51,"value":127},"RB.MB.001",{"type":51,"value":129}," when the asset contains only one real physical part.",{"type":45,"tag":112,"props":131,"children":132},{},[133],{"type":51,"value":134},"Do not generate collision geometry for PhysX FET004 failures. Reuse existing collider or visual geometry only, or hand back to FET003\u002Fsource conversion when required geometry is missing.",{"type":45,"tag":112,"props":136,"children":137},{},[138,140,146],{"type":51,"value":139},"It is acceptable to author non-geometry USD physics structure, such as ",{"type":45,"tag":67,"props":141,"children":143},{"className":142},[],[144],{"type":51,"value":145},"UsdPhysicsJoint",{"type":51,"value":147}," prims, relationships, rigid-body schemas, articulation schemas, or physics attributes, but only when those opinions target existing prims that already represent real asset parts.",{"type":45,"tag":61,"props":149,"children":150},{},[151],{"type":51,"value":152},"If an asset is a single-rigid-body prop and the selected profile documents FET004 as optional or conditional, treat FET004 as not applicable. Report that the asset satisfies prop physics through FET003 and should not be forced through FET004 unless the user supplies multibody intent or a source asset with separate body geometry.",{"type":45,"tag":54,"props":154,"children":156},{"id":155},"profile-conditionality",[157],{"type":51,"value":158},"Profile Conditionality",{"type":45,"tag":61,"props":160,"children":161},{},[162],{"type":51,"value":163},"Before repairing FET004, read the target profile documentation and profile index:",{"type":45,"tag":108,"props":165,"children":166},{},[167,176,185],{"type":45,"tag":112,"props":168,"children":169},{},[170],{"type":45,"tag":67,"props":171,"children":173},{"className":172},[],[174],{"type":51,"value":175},"nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002Fprofiles.md",{"type":45,"tag":112,"props":177,"children":178},{},[179],{"type":45,"tag":67,"props":180,"children":182},{"className":181},[],[183],{"type":51,"value":184},"nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002F\u003Cprofile-slug>.md",{"type":45,"tag":112,"props":186,"children":187},{},[188],{"type":45,"tag":67,"props":189,"children":191},{"className":190},[],[192],{"type":51,"value":193},"nv_core\u002Fsr_specs\u002Fdocs\u002Fprofiles\u002Fprofiles.toml",{"type":45,"tag":61,"props":195,"children":196},{},[197],{"type":51,"value":198},"If the selected profile describes FET004 as optional or conditional, use that text as authoritative workflow guidance for the conforming stage. A TOML comment is human-readable guidance, not machine-readable validation policy, so also prefer explicit profile markdown or profile-index notes when available.",{"type":45,"tag":61,"props":200,"children":201},{},[202,204,210],{"type":51,"value":203},"Do not decide FET004 applicability by mesh count alone. An asset may have several meshes and still be one rigid body. FET004 applies when the asset has more than one intended rigid body, joints, articulations, robot links, or source multibody structure. For a prop with one intended physical body and no joints\u002Farticulation intent, record FET004 as ",{"type":45,"tag":67,"props":205,"children":207},{"className":206},[],[208],{"type":51,"value":209},"skipped\u002Fnot applicable",{"type":51,"value":211}," when the profile allows it.",{"type":45,"tag":54,"props":213,"children":215},{"id":214},"prerequisites",[216],{"type":51,"value":217},"Prerequisites",{"type":45,"tag":61,"props":219,"children":220},{},[221],{"type":51,"value":222},"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":224,"children":226},{"id":225},"source-of-truth",[227],{"type":51,"value":228},"Source of Truth",{"type":45,"tag":61,"props":230,"children":231},{},[232],{"type":51,"value":233},"Before changing an asset, load the exact FET004 manifest selected by the profile:",{"type":45,"tag":108,"props":235,"children":236},{},[237,246,255,264,273,282],{"type":45,"tag":112,"props":238,"children":239},{},[240],{"type":45,"tag":67,"props":241,"children":243},{"className":242},[],[244],{"type":51,"value":245},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_neutral-0.1.0-simulate_multi_body_physics.json",{"type":45,"tag":112,"props":247,"children":248},{},[249],{"type":45,"tag":67,"props":250,"children":252},{"className":251},[],[253],{"type":51,"value":254},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_physx-0.1.0-simulate_multi_body_phyics.json",{"type":45,"tag":112,"props":256,"children":257},{},[258],{"type":45,"tag":67,"props":259,"children":261},{"className":260},[],[262],{"type":51,"value":263},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_base_physx-0.2.0-simulate_multi_body_phyics.json",{"type":45,"tag":112,"props":265,"children":266},{},[267],{"type":45,"tag":67,"props":268,"children":270},{"className":269},[],[271],{"type":51,"value":272},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_robot_physx-0.1.0-simulate_multi_body_phyics.json",{"type":45,"tag":112,"props":274,"children":275},{},[276],{"type":45,"tag":67,"props":277,"children":279},{"className":278},[],[280],{"type":51,"value":281},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004_robot_physx-0.2.0-simulate_multi_body_phyics.json",{"type":45,"tag":112,"props":283,"children":284},{},[285],{"type":45,"tag":67,"props":286,"children":288},{"className":287},[],[289],{"type":51,"value":290},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_004-simulate_multi_body_physics.md",{"type":45,"tag":61,"props":292,"children":293},{},[294],{"type":51,"value":295},"Treat the selected JSON manifest as authoritative for requirement IDs. If the markdown, manifest, validator, or report disagree, follow the validation report for the current gate and call out the mismatch in the stage summary.",{"type":45,"tag":61,"props":297,"children":298},{},[299,301,307],{"type":51,"value":300},"For per-requirement repair details, read ",{"type":45,"tag":67,"props":302,"children":304},{"className":303},[],[305],{"type":51,"value":306},"references\u002Ffet004-requirements.md",{"type":51,"value":308}," when a FET004 validation report or inspection identifies matching failures.",{"type":45,"tag":54,"props":310,"children":312},{"id":311},"inputs",[313],{"type":51,"value":314},"Inputs",{"type":45,"tag":61,"props":316,"children":317},{},[318],{"type":51,"value":319},"Collect these before editing:",{"type":45,"tag":321,"props":322,"children":323},"table",{},[324,343],{"type":45,"tag":325,"props":326,"children":327},"thead",{},[328],{"type":45,"tag":329,"props":330,"children":331},"tr",{},[332,338],{"type":45,"tag":333,"props":334,"children":335},"th",{},[336],{"type":51,"value":337},"Input",{"type":45,"tag":333,"props":339,"children":340},{},[341],{"type":51,"value":342},"Requirement",{"type":45,"tag":344,"props":345,"children":346},"tbody",{},[347,387,404,443,460,477,516,533,550,567],{"type":45,"tag":329,"props":348,"children":349},{},[350,360],{"type":45,"tag":351,"props":352,"children":353},"td",{},[354],{"type":45,"tag":67,"props":355,"children":357},{"className":356},[],[358],{"type":51,"value":359},"usd_asset",{"type":45,"tag":351,"props":361,"children":362},{},[363,365,371,372,378,379,385],{"type":51,"value":364},"Required ",{"type":45,"tag":67,"props":366,"children":368},{"className":367},[],[369],{"type":51,"value":370},".usd",{"type":51,"value":74},{"type":45,"tag":67,"props":373,"children":375},{"className":374},[],[376],{"type":51,"value":377},".usda",{"type":51,"value":74},{"type":45,"tag":67,"props":380,"children":382},{"className":381},[],[383],{"type":51,"value":384},".usdc",{"type":51,"value":386},", or unpacked USD-family asset to repair.",{"type":45,"tag":329,"props":388,"children":389},{},[390,399],{"type":45,"tag":351,"props":391,"children":392},{},[393],{"type":45,"tag":67,"props":394,"children":396},{"className":395},[],[397],{"type":51,"value":398},"output_root",{"type":45,"tag":351,"props":400,"children":401},{},[402],{"type":51,"value":403},"Required or inferred folder for staged assets and reports.",{"type":45,"tag":329,"props":405,"children":406},{},[407,416],{"type":45,"tag":351,"props":408,"children":409},{},[410],{"type":45,"tag":67,"props":411,"children":413},{"className":412},[],[414],{"type":51,"value":415},"simready_profile",{"type":45,"tag":351,"props":417,"children":418},{},[419,421,427,428,434,435,441],{"type":51,"value":420},"Profile being validated, such as ",{"type":45,"tag":67,"props":422,"children":424},{"className":423},[],[425],{"type":51,"value":426},"prop-robotics-physx",{"type":51,"value":74},{"type":45,"tag":67,"props":429,"children":431},{"className":430},[],[432],{"type":51,"value":433},"robot-body-neutral",{"type":51,"value":74},{"type":45,"tag":67,"props":436,"children":438},{"className":437},[],[439],{"type":51,"value":440},"robot-body-runnable",{"type":51,"value":442},", or another profile that includes FET004.",{"type":45,"tag":329,"props":444,"children":445},{},[446,455],{"type":45,"tag":351,"props":447,"children":448},{},[449],{"type":45,"tag":67,"props":450,"children":452},{"className":451},[],[453],{"type":51,"value":454},"profile_version",{"type":45,"tag":351,"props":456,"children":457},{},[458],{"type":51,"value":459},"Profile version, if supplied by the user or validation command.",{"type":45,"tag":329,"props":461,"children":462},{},[463,472],{"type":45,"tag":351,"props":464,"children":465},{},[466],{"type":45,"tag":67,"props":467,"children":469},{"className":468},[],[470],{"type":51,"value":471},"validation_report",{"type":45,"tag":351,"props":473,"children":474},{},[475],{"type":51,"value":476},"Preferred JSON or markdown report from the failing profile or feature validation gate.",{"type":45,"tag":329,"props":478,"children":479},{},[480,489],{"type":45,"tag":351,"props":481,"children":482},{},[483],{"type":45,"tag":67,"props":484,"children":486},{"className":485},[],[487],{"type":51,"value":488},"fet004_variant",{"type":45,"tag":351,"props":490,"children":491},{},[492,494,500,501,507,508,514],{"type":51,"value":493},"Selected feature ID and version, such as ",{"type":45,"tag":67,"props":495,"children":497},{"className":496},[],[498],{"type":51,"value":499},"FET004_BASE_NEUTRAL@0.1.0",{"type":51,"value":74},{"type":45,"tag":67,"props":502,"children":504},{"className":503},[],[505],{"type":51,"value":506},"FET004_BASE_PHYSX@0.2.0",{"type":51,"value":82},{"type":45,"tag":67,"props":509,"children":511},{"className":510},[],[512],{"type":51,"value":513},"FET004_ROBOT_PHYSX@0.2.0",{"type":51,"value":515},". Infer from the profile when possible.",{"type":45,"tag":329,"props":517,"children":518},{},[519,528],{"type":45,"tag":351,"props":520,"children":521},{},[522],{"type":45,"tag":67,"props":523,"children":525},{"className":524},[],[526],{"type":51,"value":527},"profile_condition_notes",{"type":45,"tag":351,"props":529,"children":530},{},[531],{"type":51,"value":532},"Any profile markdown, profile index, or TOML comments that mark FET004 optional, conditional, required, or not applicable.",{"type":45,"tag":329,"props":534,"children":535},{},[536,545],{"type":45,"tag":351,"props":537,"children":538},{},[539],{"type":45,"tag":67,"props":540,"children":542},{"className":541},[],[543],{"type":51,"value":544},"multibody_intent",{"type":45,"tag":351,"props":546,"children":547},{},[548],{"type":51,"value":549},"Whether the asset is intentionally a multibody assembly, articulated prop, or robot body. Infer only from profile, existing rigid bodies\u002Fjoints, source metadata, or user instruction.",{"type":45,"tag":329,"props":551,"children":552},{},[553,562],{"type":45,"tag":351,"props":554,"children":555},{},[556],{"type":45,"tag":67,"props":557,"children":559},{"className":558},[],[560],{"type":51,"value":561},"body_map",{"type":45,"tag":351,"props":563,"children":564},{},[565],{"type":51,"value":566},"Existing prims that correspond to real physical bodies. Build this from current rigid-body APIs, existing xformable part roots, joint targets, robot links, or source hierarchy.",{"type":45,"tag":329,"props":568,"children":569},{},[570,579],{"type":45,"tag":351,"props":571,"children":572},{},[573],{"type":45,"tag":67,"props":574,"children":576},{"className":575},[],[577],{"type":51,"value":578},"joint_intent",{"type":45,"tag":351,"props":580,"children":581},{},[582],{"type":51,"value":583},"Existing joint prims, source CAD\u002FURDF\u002FMJCF joint data, robot joint relationships, naming, or user-approved constraints.",{"type":45,"tag":54,"props":585,"children":587},{"id":586},"instructions",[588],{"type":51,"value":589},"Instructions",{"type":45,"tag":61,"props":591,"children":592},{},[593],{"type":51,"value":594},"Use this checklist when changing the repository:",{"type":45,"tag":596,"props":597,"children":598},"ol",{},[599,604,609,614,642,654,737,802,807],{"type":45,"tag":112,"props":600,"children":601},{},[602],{"type":51,"value":603},"Confirm the input asset exists, then read the target profile docs and profile index for optional or conditional feature notes before deciding whether to repair FET004.",{"type":45,"tag":112,"props":605,"children":606},{},[607],{"type":51,"value":608},"Parse the validation report and filter to FET004 failures. Do not repair later profile features such as FET005 grasp physics, FET006 materials, FET021 robot core, FET022 driven joints, or FET024 base articulation in this skill.",{"type":45,"tag":112,"props":610,"children":611},{},[612],{"type":51,"value":613},"Load the selected FET004 manifest version and the requirement repair map.",{"type":45,"tag":112,"props":615,"children":616},{},[617,619],{"type":51,"value":618},"Decide whether FET004 applies:\n",{"type":45,"tag":108,"props":620,"children":621},{},[622,627,632,637],{"type":45,"tag":112,"props":623,"children":624},{},[625],{"type":51,"value":626},"Apply FET004 when the profile requires it and the asset has at least two intended physical bodies, existing joints, robot links, articulation intent, or clear multibody source metadata.",{"type":45,"tag":112,"props":628,"children":629},{},[630],{"type":51,"value":631},"Skip FET004 as not applicable when the selected profile marks it optional or conditional and the asset is a single intended rigid body with no joints or articulation intent.",{"type":45,"tag":112,"props":633,"children":634},{},[635],{"type":51,"value":636},"Treat mesh count as supporting evidence only; multiple meshes do not by themselves make an asset multibody.",{"type":45,"tag":112,"props":638,"children":639},{},[640],{"type":51,"value":641},"Block when validation demands a second body but the USD contains no existing geometry or xformable part that can honestly represent that body.",{"type":45,"tag":112,"props":643,"children":644},{},[645,647,652],{"type":51,"value":646},"Create a staged output folder under ",{"type":45,"tag":67,"props":648,"children":650},{"className":649},[],[651],{"type":51,"value":398},{"type":51,"value":653},"; do not mutate the source unless the user explicitly asks for in-place repair.",{"type":45,"tag":112,"props":655,"children":656},{},[657,659],{"type":51,"value":658},"Inspect the stage before editing:\n",{"type":45,"tag":108,"props":660,"children":661},{},[662,667,701,706,727,732],{"type":45,"tag":112,"props":663,"children":664},{},[665],{"type":51,"value":666},"default prim, root prim, units, and composed bounds",{"type":45,"tag":112,"props":668,"children":669},{},[670,672,678,679,685,686,692,693,699],{"type":51,"value":671},"existing ",{"type":45,"tag":67,"props":673,"children":675},{"className":674},[],[676],{"type":51,"value":677},"UsdPhysics.RigidBodyAPI",{"type":51,"value":74},{"type":45,"tag":67,"props":680,"children":682},{"className":681},[],[683],{"type":51,"value":684},"CollisionAPI",{"type":51,"value":74},{"type":45,"tag":67,"props":687,"children":689},{"className":688},[],[690],{"type":51,"value":691},"MeshCollisionAPI",{"type":51,"value":74},{"type":45,"tag":67,"props":694,"children":696},{"className":695},[],[697],{"type":51,"value":698},"MassAPI",{"type":51,"value":700},", joint prims, and articulation roots",{"type":45,"tag":112,"props":702,"children":703},{},[704],{"type":51,"value":705},"existing xformable part roots and geometry that could correspond to separate physical bodies",{"type":45,"tag":112,"props":707,"children":708},{},[709,711,717,719,725],{"type":51,"value":710},"joint ",{"type":45,"tag":67,"props":712,"children":714},{"className":713},[],[715],{"type":51,"value":716},"physics:body0",{"type":51,"value":718}," and ",{"type":45,"tag":67,"props":720,"children":722},{"className":721},[],[723],{"type":51,"value":724},"physics:body1",{"type":51,"value":726}," targets, including missing, empty, multiple, or non-rigid targets",{"type":45,"tag":112,"props":728,"children":729},{},[730],{"type":51,"value":731},"static, disabled, or kinematic flags on bodies participating in articulations",{"type":45,"tag":112,"props":733,"children":734},{},[735],{"type":51,"value":736},"PhysX schemas and collider relationships when a PhysX FET004 variant is selected",{"type":45,"tag":112,"props":738,"children":739},{},[740,742],{"type":51,"value":741},"Apply repairs in this order:\n",{"type":45,"tag":108,"props":743,"children":744},{},[745,750,762,774,779,792,797],{"type":45,"tag":112,"props":746,"children":747},{},[748],{"type":51,"value":749},"Fix or remove invalid joint relationship targets before adding new joint opinions.",{"type":45,"tag":112,"props":751,"children":752},{},[753,755,760],{"type":51,"value":754},"Apply ",{"type":45,"tag":67,"props":756,"children":758},{"className":757},[],[759],{"type":51,"value":677},{"type":51,"value":761}," only to existing xformable prims that already represent distinct physical bodies.",{"type":45,"tag":112,"props":763,"children":764},{},[765,767,772],{"type":51,"value":766},"Author or retarget ",{"type":45,"tag":67,"props":768,"children":770},{"className":769},[],[771],{"type":51,"value":145},{"type":51,"value":773}," prims only when body pairing and joint type are known from existing data or user intent.",{"type":45,"tag":112,"props":775,"children":776},{},[777],{"type":51,"value":778},"Ensure each joint body relationship targets an existing prim and has at most one target.",{"type":45,"tag":112,"props":780,"children":781},{},[782,784,790],{"type":51,"value":783},"Move or remove nested ",{"type":45,"tag":67,"props":785,"children":787},{"className":786},[],[788],{"type":51,"value":789},"UsdPhysics.ArticulationRootAPI",{"type":51,"value":791}," only when the correct single articulation root is clear.",{"type":45,"tag":112,"props":793,"children":794},{},[795],{"type":51,"value":796},"Enable an articulation root body or clear kinematic mode only when dynamic articulation is the intended behavior.",{"type":45,"tag":112,"props":798,"children":799},{},[800],{"type":51,"value":801},"For PhysX variants, repair only schema opinions and relationships on existing colliders or rigid bodies; do not create collider geometry.",{"type":45,"tag":112,"props":803,"children":804},{},[805],{"type":51,"value":806},"Rerun the same profile validation gate, or the narrowest available FET004 validation gate.",{"type":45,"tag":112,"props":808,"children":809},{},[810],{"type":51,"value":811},"Summarize the stage as passed, failed, skipped, or blocked. Stop when FET004 passes, is correctly skipped as not applicable, or the next FET004 failure requires geometry, topology, joint intent, runtime simulation evidence, or an upstream conversion change.",{"type":45,"tag":54,"props":813,"children":815},{"id":814},"examples",[816],{"type":51,"value":817},"Examples",{"type":45,"tag":61,"props":819,"children":820},{},[821],{"type":51,"value":822},"Example request:",{"type":45,"tag":824,"props":825,"children":830},"pre",{"className":826,"code":828,"language":51,"meta":829},[827],"language-text","Repair FET004 multi-body physics failures without creating new geometry.\n","",[831],{"type":45,"tag":67,"props":832,"children":833},{"__ignoreMap":829},[834],{"type":51,"value":828},{"type":45,"tag":61,"props":836,"children":837},{},[838],{"type":51,"value":839},"Expected result summary:",{"type":45,"tag":824,"props":841,"children":844},{"className":842,"code":843,"language":51,"meta":829},[827],"staged_asset: repaired copy or output directory\nvalidation: selected feature\u002Fprofile gate and report path\nremaining_failures: next failing requirement IDs, if any\n",[845],{"type":45,"tag":67,"props":846,"children":847},{"__ignoreMap":829},[848],{"type":51,"value":843},{"type":45,"tag":54,"props":850,"children":852},{"id":851},"repair-policy",[853],{"type":51,"value":854},"Repair Policy",{"type":45,"tag":61,"props":856,"children":857},{},[858],{"type":51,"value":859},"Make automatic repairs only when the intended result is mechanical and locally verifiable:",{"type":45,"tag":108,"props":861,"children":862},{},[863,868,873,878,883,888],{"type":45,"tag":112,"props":864,"children":865},{},[866],{"type":51,"value":867},"Add a missing rigid-body schema to an existing xformable part root that clearly represents a distinct physical body.",{"type":45,"tag":112,"props":869,"children":870},{},[871],{"type":51,"value":872},"Retarget a joint body relationship to an existing rigid body when the intended target is obvious from neighboring hierarchy, naming, or source metadata.",{"type":45,"tag":112,"props":874,"children":875},{},[876],{"type":51,"value":877},"Reduce a body relationship with multiple targets to one target only when the selected target is unambiguous.",{"type":45,"tag":112,"props":879,"children":880},{},[881],{"type":51,"value":882},"Add a fixed joint between two existing rigid bodies only when the asset already expresses a fixed connection through source metadata, robot topology, naming, or user instruction.",{"type":45,"tag":112,"props":884,"children":885},{},[886],{"type":51,"value":887},"Remove a nested articulation root when another ancestor or descendant is clearly the intended unique root.",{"type":45,"tag":112,"props":889,"children":890},{},[891,893,899,901,907],{"type":51,"value":892},"Set ",{"type":45,"tag":67,"props":894,"children":896},{"className":895},[],[897],{"type":51,"value":898},"physics:rigidBodyEnabled = true",{"type":51,"value":900}," or ",{"type":45,"tag":67,"props":902,"children":904},{"className":903},[],[905],{"type":51,"value":906},"physics:kinematicEnabled = false",{"type":51,"value":908}," on an articulation root body only when the asset is meant to simulate dynamically.",{"type":45,"tag":61,"props":910,"children":911},{},[912],{"type":51,"value":913},"Block and report instead of guessing when:",{"type":45,"tag":108,"props":915,"children":916},{},[917,922,934,939,944,949],{"type":45,"tag":112,"props":918,"children":919},{},[920],{"type":51,"value":921},"The USD has only one existing physical body candidate and no source data for a second body.",{"type":45,"tag":112,"props":923,"children":924},{},[925,927,932],{"type":51,"value":926},"Passing ",{"type":45,"tag":67,"props":928,"children":930},{"className":929},[],[931],{"type":51,"value":127},{"type":51,"value":933}," would require creating, duplicating, splitting, or importing geometry.",{"type":45,"tag":112,"props":935,"children":936},{},[937],{"type":51,"value":938},"A joint type, joint axis, anchor frame, or body pairing is not clear from existing data.",{"type":45,"tag":112,"props":940,"children":941},{},[942],{"type":51,"value":943},"Multiple plausible articulation roots exist.",{"type":45,"tag":112,"props":945,"children":946},{},[947],{"type":51,"value":948},"PhysX collision requirements require new collider geometry or a collider redesign.",{"type":45,"tag":112,"props":950,"children":951},{},[952],{"type":51,"value":953},"The asset is a prop profile where FET004 is conditional and the prop is intentionally a single rigid body.",{"type":45,"tag":54,"props":955,"children":957},{"id":956},"variant-guidance",[958],{"type":51,"value":959},"Variant Guidance",{"type":45,"tag":61,"props":961,"children":962},{},[963,965,970,972,978,980,986,987,993,994,1000,1001,1007,1008,1014,1015,1021,1023,1028],{"type":51,"value":964},"For ",{"type":45,"tag":67,"props":966,"children":968},{"className":967},[],[969],{"type":51,"value":72},{"type":51,"value":971},", use standard OpenUSD ",{"type":45,"tag":67,"props":973,"children":975},{"className":974},[],[976],{"type":51,"value":977},"UsdPhysics",{"type":51,"value":979}," bodies, joints, and articulation roots. The core FET004 requirements are ",{"type":45,"tag":67,"props":981,"children":983},{"className":982},[],[984],{"type":51,"value":985},"JT.001",{"type":51,"value":74},{"type":45,"tag":67,"props":988,"children":990},{"className":989},[],[991],{"type":51,"value":992},"JT.002",{"type":51,"value":74},{"type":45,"tag":67,"props":995,"children":997},{"className":996},[],[998],{"type":51,"value":999},"JT.003",{"type":51,"value":74},{"type":45,"tag":67,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":51,"value":1006},"JT.ART.002",{"type":51,"value":74},{"type":45,"tag":67,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":51,"value":1013},"JT.ART.003",{"type":51,"value":74},{"type":45,"tag":67,"props":1016,"children":1018},{"className":1017},[],[1019],{"type":51,"value":1020},"JT.ART.004",{"type":51,"value":1022},", and ",{"type":45,"tag":67,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":51,"value":127},{"type":51,"value":1029},".",{"type":45,"tag":61,"props":1031,"children":1032},{},[1033,1034,1039],{"type":51,"value":964},{"type":45,"tag":67,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":51,"value":80},{"type":51,"value":1040},", first satisfy the neutral FET004 dependency and the selected FET003 PhysX dependency. Then repair only selected PhysX collision requirements on existing colliders. Do not use robot-specific RB.COL.001 exemptions for a base PhysX prop profile.",{"type":45,"tag":61,"props":1042,"children":1043},{},[1044,1045,1050],{"type":51,"value":964},{"type":45,"tag":67,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":51,"value":88},{"type":51,"value":1051},", follow the robot PhysX manifest. This variant intentionally has different collision requirements from base PhysX and does not require RB.COL.001. Preserve robot link and joint semantics, and leave robot identity\u002Fschema issues to FET021, driven joint actuation to FET022, and articulation-root cardinality or PhysX collision-clearance issues to FET024 when those later gates are the active failure.",{"type":45,"tag":54,"props":1053,"children":1055},{"id":1054},"validation-handoff",[1056],{"type":51,"value":1057},"Validation Handoff",{"type":45,"tag":61,"props":1059,"children":1060},{},[1061],{"type":51,"value":1062},"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":824,"props":1064,"children":1068},{"className":1065,"code":1066,"language":1067,"meta":829,"style":829},"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-fet004.json\n","bash",[1069],{"type":45,"tag":67,"props":1070,"children":1071},{"__ignoreMap":829},[1072,1133,1164,1195,1226,1260],{"type":45,"tag":1073,"props":1074,"children":1077},"span",{"class":1075,"line":1076},"line",1,[1078,1084,1090,1095,1101,1106,1112,1117,1123,1128],{"type":45,"tag":1073,"props":1079,"children":1081},{"style":1080},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1082],{"type":51,"value":1083},"uv",{"type":45,"tag":1073,"props":1085,"children":1087},{"style":1086},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1088],{"type":51,"value":1089}," run",{"type":45,"tag":1073,"props":1091,"children":1092},{"style":1086},[1093],{"type":51,"value":1094}," --python",{"type":45,"tag":1073,"props":1096,"children":1098},{"style":1097},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1099],{"type":51,"value":1100}," 3.12",{"type":45,"tag":1073,"props":1102,"children":1103},{"style":1086},[1104],{"type":51,"value":1105}," validate-simready-profile",{"type":45,"tag":1073,"props":1107,"children":1109},{"style":1108},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1110],{"type":51,"value":1111}," \u003C",{"type":45,"tag":1073,"props":1113,"children":1114},{"style":1086},[1115],{"type":51,"value":1116},"staged-us",{"type":45,"tag":1073,"props":1118,"children":1120},{"style":1119},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1121],{"type":51,"value":1122},"d",{"type":45,"tag":1073,"props":1124,"children":1125},{"style":1108},[1126],{"type":51,"value":1127},">",{"type":45,"tag":1073,"props":1129,"children":1130},{"style":1119},[1131],{"type":51,"value":1132}," \\\n",{"type":45,"tag":1073,"props":1134,"children":1136},{"class":1075,"line":1135},2,[1137,1142,1146,1151,1156,1160],{"type":45,"tag":1073,"props":1138,"children":1139},{"style":1086},[1140],{"type":51,"value":1141},"  --profile",{"type":45,"tag":1073,"props":1143,"children":1144},{"style":1108},[1145],{"type":51,"value":1111},{"type":45,"tag":1073,"props":1147,"children":1148},{"style":1086},[1149],{"type":51,"value":1150},"profil",{"type":45,"tag":1073,"props":1152,"children":1153},{"style":1119},[1154],{"type":51,"value":1155},"e",{"type":45,"tag":1073,"props":1157,"children":1158},{"style":1108},[1159],{"type":51,"value":1127},{"type":45,"tag":1073,"props":1161,"children":1162},{"style":1119},[1163],{"type":51,"value":1132},{"type":45,"tag":1073,"props":1165,"children":1167},{"class":1075,"line":1166},3,[1168,1173,1177,1182,1187,1191],{"type":45,"tag":1073,"props":1169,"children":1170},{"style":1086},[1171],{"type":51,"value":1172},"  --profile-version",{"type":45,"tag":1073,"props":1174,"children":1175},{"style":1108},[1176],{"type":51,"value":1111},{"type":45,"tag":1073,"props":1178,"children":1179},{"style":1086},[1180],{"type":51,"value":1181},"versio",{"type":45,"tag":1073,"props":1183,"children":1184},{"style":1119},[1185],{"type":51,"value":1186},"n",{"type":45,"tag":1073,"props":1188,"children":1189},{"style":1108},[1190],{"type":51,"value":1127},{"type":45,"tag":1073,"props":1192,"children":1193},{"style":1119},[1194],{"type":51,"value":1132},{"type":45,"tag":1073,"props":1196,"children":1198},{"class":1075,"line":1197},4,[1199,1204,1208,1213,1218,1222],{"type":45,"tag":1073,"props":1200,"children":1201},{"style":1086},[1202],{"type":51,"value":1203},"  --foundation-root",{"type":45,"tag":1073,"props":1205,"children":1206},{"style":1108},[1207],{"type":51,"value":1111},{"type":45,"tag":1073,"props":1209,"children":1210},{"style":1086},[1211],{"type":51,"value":1212},"simready-foundation-roo",{"type":45,"tag":1073,"props":1214,"children":1215},{"style":1119},[1216],{"type":51,"value":1217},"t",{"type":45,"tag":1073,"props":1219,"children":1220},{"style":1108},[1221],{"type":51,"value":1127},{"type":45,"tag":1073,"props":1223,"children":1224},{"style":1119},[1225],{"type":51,"value":1132},{"type":45,"tag":1073,"props":1227,"children":1229},{"class":1075,"line":1228},5,[1230,1235,1239,1243,1247,1251,1256],{"type":45,"tag":1073,"props":1231,"children":1232},{"style":1086},[1233],{"type":51,"value":1234},"  --foundation-spec-root",{"type":45,"tag":1073,"props":1236,"children":1237},{"style":1108},[1238],{"type":51,"value":1111},{"type":45,"tag":1073,"props":1240,"children":1241},{"style":1086},[1242],{"type":51,"value":1212},{"type":45,"tag":1073,"props":1244,"children":1245},{"style":1119},[1246],{"type":51,"value":1217},{"type":45,"tag":1073,"props":1248,"children":1249},{"style":1108},[1250],{"type":51,"value":1127},{"type":45,"tag":1073,"props":1252,"children":1253},{"style":1086},[1254],{"type":51,"value":1255},"\u002Fnv_core\u002Fsr_specs\u002Fdocs",{"type":45,"tag":1073,"props":1257,"children":1258},{"style":1119},[1259],{"type":51,"value":1132},{"type":45,"tag":1073,"props":1261,"children":1263},{"class":1075,"line":1262},6,[1264,1269,1273,1278,1282,1286],{"type":45,"tag":1073,"props":1265,"children":1266},{"style":1086},[1267],{"type":51,"value":1268},"  --report",{"type":45,"tag":1073,"props":1270,"children":1271},{"style":1108},[1272],{"type":51,"value":1111},{"type":45,"tag":1073,"props":1274,"children":1275},{"style":1086},[1276],{"type":51,"value":1277},"output-roo",{"type":45,"tag":1073,"props":1279,"children":1280},{"style":1119},[1281],{"type":51,"value":1217},{"type":45,"tag":1073,"props":1283,"children":1284},{"style":1108},[1285],{"type":51,"value":1127},{"type":45,"tag":1073,"props":1287,"children":1288},{"style":1086},[1289],{"type":51,"value":1290},"\u002Fsimready-profile-after-fet004.json\n",{"type":45,"tag":61,"props":1292,"children":1293},{},[1294],{"type":51,"value":1295},"Count this skill as successful when the selected FET004 variant passes or when FET004 is explicitly not applicable for the selected prop workflow. Report later feature failures as handoff work for their own skills.",{"type":45,"tag":54,"props":1297,"children":1299},{"id":1298},"limitations",[1300],{"type":51,"value":1301},"Limitations",{"type":45,"tag":108,"props":1303,"children":1304},{},[1305,1310,1315],{"type":45,"tag":112,"props":1306,"children":1307},{},[1308],{"type":51,"value":1309},"Do not silently mutate the source asset; work on the requested staged output.",{"type":45,"tag":112,"props":1311,"children":1312},{},[1313],{"type":51,"value":1314},"Do not hide later profile failures after the selected feature gate passes or fails.",{"type":45,"tag":112,"props":1316,"children":1317},{},[1318],{"type":51,"value":1319},"Do not invent geometry, metadata, or runtime behavior that conflicts with the asset intent.",{"type":45,"tag":54,"props":1321,"children":1323},{"id":1322},"troubleshooting",[1324],{"type":51,"value":1325},"Troubleshooting",{"type":45,"tag":108,"props":1327,"children":1328},{},[1329,1334,1339],{"type":45,"tag":112,"props":1330,"children":1331},{},[1332],{"type":51,"value":1333},"Error: validation tooling is unavailable. Solution: run the narrowest available USD or static check and report the gap.",{"type":45,"tag":112,"props":1335,"children":1336},{},[1337],{"type":51,"value":1338},"Error: a repair would change asset intent. Solution: stop and ask for direction or stage the smallest reversible edit.",{"type":45,"tag":112,"props":1340,"children":1341},{},[1342],{"type":51,"value":1343},"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":1345,"children":1347},{"id":1346},"resources",[1348],{"type":51,"value":1349},"Resources",{"type":45,"tag":108,"props":1351,"children":1352},{},[1353,1364],{"type":45,"tag":112,"props":1354,"children":1355},{},[1356,1362],{"type":45,"tag":67,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":51,"value":1361},"assets\u002Fopenai.yaml",{"type":51,"value":1363}," preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.",{"type":45,"tag":112,"props":1365,"children":1366},{},[1367,1373],{"type":45,"tag":67,"props":1368,"children":1370},{"className":1369},[],[1371],{"type":51,"value":1372},"references\u002F",{"type":51,"value":1374}," contains detailed requirement notes; load only the files needed for the active validation failure.",{"type":45,"tag":54,"props":1376,"children":1378},{"id":1377},"summary-format",[1379],{"type":51,"value":1380},"Summary Format",{"type":45,"tag":61,"props":1382,"children":1383},{},[1384],{"type":51,"value":1385},"Report:",{"type":45,"tag":321,"props":1387,"children":1388},{},[1389,1405],{"type":45,"tag":325,"props":1390,"children":1391},{},[1392],{"type":45,"tag":329,"props":1393,"children":1394},{},[1395,1400],{"type":45,"tag":333,"props":1396,"children":1397},{},[1398],{"type":51,"value":1399},"Field",{"type":45,"tag":333,"props":1401,"children":1402},{},[1403],{"type":51,"value":1404},"Meaning",{"type":45,"tag":344,"props":1406,"children":1407},{},[1408,1425,1442,1465,1481,1498,1522,1539,1556,1573,1590,1607,1623],{"type":45,"tag":329,"props":1409,"children":1410},{},[1411,1420],{"type":45,"tag":351,"props":1412,"children":1413},{},[1414],{"type":45,"tag":67,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":51,"value":1419},"input_usd_path",{"type":45,"tag":351,"props":1421,"children":1422},{},[1423],{"type":51,"value":1424},"Original USD path.",{"type":45,"tag":329,"props":1426,"children":1427},{},[1428,1437],{"type":45,"tag":351,"props":1429,"children":1430},{},[1431],{"type":45,"tag":67,"props":1432,"children":1434},{"className":1433},[],[1435],{"type":51,"value":1436},"output_usd_path",{"type":45,"tag":351,"props":1438,"children":1439},{},[1440],{"type":51,"value":1441},"Latest staged\u002Frepaired USD path.",{"type":45,"tag":329,"props":1443,"children":1444},{},[1445,1460],{"type":45,"tag":351,"props":1446,"children":1447},{},[1448,1454,1455],{"type":45,"tag":67,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":51,"value":1453},"profile",{"type":51,"value":718},{"type":45,"tag":67,"props":1456,"children":1458},{"className":1457},[],[1459],{"type":51,"value":454},{"type":45,"tag":351,"props":1461,"children":1462},{},[1463],{"type":51,"value":1464},"Validation target.",{"type":45,"tag":329,"props":1466,"children":1467},{},[1468,1476],{"type":45,"tag":351,"props":1469,"children":1470},{},[1471],{"type":45,"tag":67,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":51,"value":488},{"type":45,"tag":351,"props":1477,"children":1478},{},[1479],{"type":51,"value":1480},"Selected FET004 feature ID and version.",{"type":45,"tag":329,"props":1482,"children":1483},{},[1484,1493],{"type":45,"tag":351,"props":1485,"children":1486},{},[1487],{"type":45,"tag":67,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":51,"value":1492},"applicability",{"type":45,"tag":351,"props":1494,"children":1495},{},[1496],{"type":51,"value":1497},"Applied, skipped as not applicable, failed, or blocked.",{"type":45,"tag":329,"props":1499,"children":1500},{},[1501,1510],{"type":45,"tag":351,"props":1502,"children":1503},{},[1504],{"type":45,"tag":67,"props":1505,"children":1507},{"className":1506},[],[1508],{"type":51,"value":1509},"rigid_body_roots",{"type":45,"tag":351,"props":1511,"children":1512},{},[1513,1515,1520],{"type":51,"value":1514},"Existing prims with ",{"type":45,"tag":67,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":51,"value":677},{"type":51,"value":1521}," after repair.",{"type":45,"tag":329,"props":1523,"children":1524},{},[1525,1534],{"type":45,"tag":351,"props":1526,"children":1527},{},[1528],{"type":45,"tag":67,"props":1529,"children":1531},{"className":1530},[],[1532],{"type":51,"value":1533},"joint_prims",{"type":45,"tag":351,"props":1535,"children":1536},{},[1537],{"type":51,"value":1538},"Joint prims authored or repaired by this skill.",{"type":45,"tag":329,"props":1540,"children":1541},{},[1542,1551],{"type":45,"tag":351,"props":1543,"children":1544},{},[1545],{"type":45,"tag":67,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":51,"value":1550},"articulation_roots",{"type":45,"tag":351,"props":1552,"children":1553},{},[1554],{"type":51,"value":1555},"Articulation root prims after repair.",{"type":45,"tag":329,"props":1557,"children":1558},{},[1559,1568],{"type":45,"tag":351,"props":1560,"children":1561},{},[1562],{"type":45,"tag":67,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":51,"value":1567},"geometry_policy",{"type":45,"tag":351,"props":1569,"children":1570},{},[1571],{"type":51,"value":1572},"Confirmation that no new geometry was created, or why work was blocked.",{"type":45,"tag":329,"props":1574,"children":1575},{},[1576,1585],{"type":45,"tag":351,"props":1577,"children":1578},{},[1579],{"type":45,"tag":67,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":51,"value":1584},"requirements_repaired",{"type":45,"tag":351,"props":1586,"children":1587},{},[1588],{"type":51,"value":1589},"Requirement IDs changed by this skill.",{"type":45,"tag":329,"props":1591,"children":1592},{},[1593,1602],{"type":45,"tag":351,"props":1594,"children":1595},{},[1596],{"type":45,"tag":67,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":51,"value":1601},"requirements_blocked",{"type":45,"tag":351,"props":1603,"children":1604},{},[1605],{"type":51,"value":1606},"Requirement IDs that need geometry, topology, joint intent, or upstream conversion.",{"type":45,"tag":329,"props":1608,"children":1609},{},[1610,1618],{"type":45,"tag":351,"props":1611,"children":1612},{},[1613],{"type":45,"tag":67,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":51,"value":471},{"type":45,"tag":351,"props":1619,"children":1620},{},[1621],{"type":51,"value":1622},"Path to the rerun validation report.",{"type":45,"tag":329,"props":1624,"children":1625},{},[1626,1635],{"type":45,"tag":351,"props":1627,"children":1628},{},[1629],{"type":45,"tag":67,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":51,"value":1634},"next_step",{"type":45,"tag":351,"props":1636,"children":1637},{},[1638],{"type":51,"value":1639},"Usually the next failing profile feature or a blocked FET004 requirement.",{"type":45,"tag":61,"props":1641,"children":1642},{},[1643],{"type":51,"value":1644},"Keep the user-facing summary short: whether FET004 applied, what body\u002Fjoint\u002Farticulation opinions changed, that no geometry was created, which FET004 variant was validated, and the first validation gate that blocks progress.",{"type":45,"tag":1646,"props":1647,"children":1648},"style",{},[1649],{"type":51,"value":1650},"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":1652,"total":1809},[1653,1671,1689,1700,1712,1724,1737,1751,1764,1775,1789,1798],{"slug":1654,"name":1654,"fn":1655,"description":1656,"org":1657,"tags":1658,"stars":1668,"repoUrl":1669,"updatedAt":1670},"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},[1659,1662,1665],{"name":1660,"slug":1661,"type":13},"Documentation","documentation",{"name":1663,"slug":1664,"type":13},"MCP","mcp",{"name":1666,"slug":1667,"type":13},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1672,"name":1672,"fn":1673,"description":1674,"org":1675,"tags":1676,"stars":1686,"repoUrl":1687,"updatedAt":1688},"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},[1677,1680,1683],{"name":1678,"slug":1679,"type":13},"Containers","containers",{"name":1681,"slug":1682,"type":13},"Deployment","deployment",{"name":1684,"slug":1685,"type":13},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1690,"name":1690,"fn":1691,"description":1692,"org":1693,"tags":1694,"stars":1686,"repoUrl":1687,"updatedAt":1699},"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},[1695,1698],{"name":1696,"slug":1697,"type":13},"CI\u002FCD","ci-cd",{"name":1681,"slug":1682,"type":13},"2026-07-14T05:25:59.97109",{"slug":1701,"name":1701,"fn":1702,"description":1703,"org":1704,"tags":1705,"stars":1686,"repoUrl":1687,"updatedAt":1711},"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},[1706,1707,1708],{"name":1696,"slug":1697,"type":13},{"name":1681,"slug":1682,"type":13},{"name":1709,"slug":1710,"type":13},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1713,"name":1713,"fn":1714,"description":1715,"org":1716,"tags":1717,"stars":1686,"repoUrl":1687,"updatedAt":1723},"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},[1718,1719,1720],{"name":21,"slug":22,"type":13},{"name":1709,"slug":1710,"type":13},{"name":1721,"slug":1722,"type":13},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1725,"name":1725,"fn":1726,"description":1727,"org":1728,"tags":1729,"stars":1686,"repoUrl":1687,"updatedAt":1736},"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},[1730,1733],{"name":1731,"slug":1732,"type":13},"Best Practices","best-practices",{"name":1734,"slug":1735,"type":13},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1738,"name":1738,"fn":1739,"description":1740,"org":1741,"tags":1742,"stars":1686,"repoUrl":1687,"updatedAt":1750},"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},[1743,1746,1749],{"name":1744,"slug":1745,"type":13},"Machine Learning","machine-learning",{"name":1747,"slug":1748,"type":13},"Migration","migration",{"name":9,"slug":8,"type":13},"2026-07-17T06:07:11.777011",{"slug":1752,"name":1752,"fn":1753,"description":1754,"org":1755,"tags":1756,"stars":1686,"repoUrl":1687,"updatedAt":1763},"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},[1757,1760],{"name":1758,"slug":1759,"type":13},"QA","qa",{"name":1761,"slug":1762,"type":13},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1765,"name":1765,"fn":1766,"description":1767,"org":1768,"tags":1769,"stars":1686,"repoUrl":1687,"updatedAt":1774},"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},[1770,1771],{"name":1681,"slug":1682,"type":13},{"name":1772,"slug":1773,"type":13},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1776,"name":1776,"fn":1777,"description":1778,"org":1779,"tags":1780,"stars":1686,"repoUrl":1687,"updatedAt":1788},"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},[1781,1784,1785],{"name":1782,"slug":1783,"type":13},"Code Review","code-review",{"name":1709,"slug":1710,"type":13},{"name":1786,"slug":1787,"type":13},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1790,"name":1790,"fn":1791,"description":1792,"org":1793,"tags":1794,"stars":1686,"repoUrl":1687,"updatedAt":1797},"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},[1795,1796],{"name":1758,"slug":1759,"type":13},{"name":1761,"slug":1762,"type":13},"2026-07-14T05:25:54.928983",{"slug":1799,"name":1799,"fn":1800,"description":1801,"org":1802,"tags":1803,"stars":1686,"repoUrl":1687,"updatedAt":1808},"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},[1804,1807],{"name":1805,"slug":1806,"type":13},"Automation","automation",{"name":1696,"slug":1697,"type":13},"2026-07-30T05:29:03.275638",496,{"items":1811,"total":1891},[1812,1822,1835,1845,1858,1869,1880],{"slug":1813,"name":1813,"fn":1814,"description":1815,"org":1816,"tags":1817,"stars":23,"repoUrl":24,"updatedAt":1821},"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},[1818,1819,1820],{"name":1660,"slug":1661,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:08.047242",{"slug":1823,"name":1823,"fn":1824,"description":1825,"org":1826,"tags":1827,"stars":23,"repoUrl":24,"updatedAt":1834},"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},[1828,1829,1832,1833],{"name":1660,"slug":1661,"type":13},{"name":1830,"slug":1831,"type":13},"Engineering","engineering",{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:23.330216",{"slug":1836,"name":1836,"fn":1837,"description":1838,"org":1839,"tags":1840,"stars":23,"repoUrl":24,"updatedAt":1844},"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},[1841,1842,1843],{"name":1830,"slug":1831,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:02.999518",{"slug":1846,"name":1846,"fn":1847,"description":1848,"org":1849,"tags":1850,"stars":23,"repoUrl":24,"updatedAt":1857},"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},[1851,1852,1853,1854],{"name":1660,"slug":1661,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1855,"slug":1856,"type":13},"Validation","validation","2026-07-14T05:34:00.482781",{"slug":1859,"name":1859,"fn":1860,"description":1861,"org":1862,"tags":1863,"stars":23,"repoUrl":24,"updatedAt":1868},"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},[1864,1865,1866,1867],{"name":1660,"slug":1661,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1855,"slug":1856,"type":13},"2026-07-14T05:34:11.881936",{"slug":1870,"name":1870,"fn":1871,"description":1872,"org":1873,"tags":1874,"stars":23,"repoUrl":24,"updatedAt":1879},"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},[1875,1876,1877,1878],{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1761,"slug":1762,"type":13},{"name":1855,"slug":1856,"type":13},"2026-07-14T05:34:09.295859",{"slug":1881,"name":1881,"fn":1882,"description":1883,"org":1884,"tags":1885,"stars":23,"repoUrl":24,"updatedAt":1890},"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},[1886,1887,1888,1889],{"name":1830,"slug":1831,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1855,"slug":1856,"type":13},"2026-07-14T05:34:14.407249",26]