[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-simready-foundation-conform-fet-001-minimal":3,"mdc--sernmw-key":34,"related-repo-nvidia-simready-foundation-conform-fet-001-minimal":1687,"related-org-nvidia-simready-foundation-conform-fet-001-minimal":1771},{"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-001-minimal","repair SimReady minimal asset properties","Use for repairing SimReady Minimal assets: units, upAxis, defaultPrim, hierarchy, mesh quality, extents, and origin placement.",{"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},"Engineering","engineering",{"name":21,"slug":22,"type":13},"Debugging","debugging",52,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fsimready-foundation","2026-07-14T05:34:24.573574","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-001-minimal","---\nname: simready-foundation-conform-fet-001-minimal\ndescription: \"Use for repairing SimReady Minimal assets: units, upAxis, defaultPrim, hierarchy, mesh quality, extents, and origin placement.\"\nlicense: Apache-2.0\nmetadata:\n  author: \"Shaad Boochoon \u003Csboochoon@nvidia.com>\"\n  tags:\n    - simready\n    - conformance\n    - minimal\n---\n\n\n# SimReady Conform FET-001 Minimal\n\n## Purpose\nUse this workflow skill after FET000_CORE passes and the next profile validation gate is `FET001_BASE_NEUTRAL`. It brings an existing USD asset toward the Minimal\u002FBase Neutral feature contract while preserving visual scale, hierarchy intent, 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 failing FET001 validation gate.\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 FET001 manifest selected by the profile:\n\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001_base_neutral-0.1.0-minimal.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001_base_neutral-1.0.0-minimal.json`\n- `nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001-minimal.md`\n\nSome profiles select `FET001_BASE_NEUTRAL@0.1.0`, while newer profiles may select `1.0.0`. Treat the JSON manifest requirement list as authoritative for the selected profile\u002Fversion.\n\nFor per-requirement repair details, read `references\u002Ffet001-requirements.md` when a FET001 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`. |\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\u002Ffeature validation gate. |\n| `source_asset` | Original CAD, DCC, URDF, MJCF, or conversion input path, used for provenance. |\n| `physical_size_policy` | Whether to preserve physical size. Default to preserve size. |\n\n## Instructions\n\nUse this checklist when changing the repository:\n\n1. Confirm the input asset exists and that FET000_CORE is already passing on the same staged asset. If Core still fails, hand back to `simready-foundation-conform-fet-000-core` first.\n2. Parse the validation report and filter to `FET001_BASE_NEUTRAL` failures. Do not repair later profile features in this skill.\n3. Load the selected FET001 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. Run or inspect minimum USD metadata: stage openability, default prim, root prims, `upAxis`, `metersPerUnit`, composed bounds, mesh\u002Fgeometry counts, authored references, and used layers.\n6. Apply deterministic fixes in this order:\n   - Atomic asset\u002Ffile fixes for `AA.001` and `AA.002`.\n   - Hierarchy fixes for `HI.001`, `HI.003`, and `HI.004`.\n   - Unit and orientation fixes for `UN.001`, `UN.002`, `UN.006`, and `UN.007`.\n   - Minimal visual geometry fixes for `VG.001` or `VG.MESH.001`.\n   - Mesh quality fixes for `VG.002`, `VG.014`, `VG.027`, `VG.028`, and `VG.029`.\n   - Origin placement fixes for `VG.025` only when the asset placement convention is clear.\n7. Rerun the same profile validation gate, or the narrowest available FET001 validation gate.\n8. Summarize the stage as passed, failed, skipped, or blocked. Stop when FET001 passes or the next FET001 failure requires upstream conversion, source geometry, or user intent.\n\n## Unit Repair Policy\n\nTreat `UN.007` with extra care. Setting `metersPerUnit = 1.0` without adjusting authored coordinates can change the apparent physical size of an asset.\n\nDefault policy:\n\n- Preserve physical size.\n- Record the original `metersPerUnit`, composed bounds, default prim, and root transforms before editing.\n- If the asset uses millimeters, such as `metersPerUnit = 0.001`, normalize to meter units by scaling authored linear data by `0.001` or by applying an equivalent root-scale normalization in the same staged USD file.\n- Recompute authored extents after any geometry-space rescale.\n- Validate that the composed bounds in meters are unchanged within a small tolerance.\n\nPrefer these approaches in order:\n\n| Strategy | Use When | Notes |\n|---|---|---|\n| Re-export from converter with meter units | Conversion options are available and reliable. | Best long-term fix because geometry, metadata, and derived data are generated consistently. |\n| Rescale staged USD data | All relevant layers are local and editable. | Multiply points, translate ops, extents, and other linear authored values by `old_meters_per_unit \u002F 1.0`, then set stage `metersPerUnit = 1.0`. |\n| Apply root-scale normalization in the same staged USD | The asset root has no existing authored xform ops and the selected FET001 version does not reject a root scale. | Set stage `metersPerUnit = 1.0` and add a root scale op equal to `old_meters_per_unit \u002F 1.0`. This strategy is useful for millimeter- or centimeter-authored converter output when a root scale is acceptable. |\n| Create a meter-unit wrapper | The package\u002Fvalidator contract allows a local USD payload reference without violating Core or atomic-asset rules. | Verify `FET000_CORE` and `AA.001` immediately. Current validators may reject extra USD files under `simready_usd` (`NP.005`) or `..\u002Fpayloads\u002F...` references as outside the asset root (`AA.001`). |\n| Metadata-only change | The coordinates are already in meters, or the user accepts a physical size change. | Report this explicitly because it can make the asset too large or too small. |\n\nFor any asset with `metersPerUnit = 0.001`, a size-preserving single-file repair can set `metersPerUnit = 1.0` and author root op `xformOp:scale:meter_normalization = (0.001, 0.001, 0.001)`, assuming the root transform is otherwise safe to modify.\n\n## Examples\n\nExample request:\n\n```text\nRepair FET001_BASE_NEUTRAL minimal stage failures on a staged 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 result is mechanical and locally verifiable:\n\n- Set missing `upAxis` to `Z` when the asset is already visually Z-up or when the selected profile requires Z-up.\n- Set `defaultPrim` to the single root prim when there is exactly one valid root.\n- Wrap multiple roots under a new Xform only when all asset content can be moved or referenced without breaking paths.\n- Convert search paths to anchored relative paths only after the dependency is inside the staged asset root.\n- Author extents using USD-computed bounds for local editable meshes.\n- Normalize or generate mesh normals only when the intended smoothing can be inferred or the converter already produced enough topology to compute them deterministically.\n- If adding a root-scale normalization, check for existing root xform ops first. If the root already has meaningful transform ops, preserve order and semantics or use data-space rescaling instead.\n\nBlock and report instead of guessing when:\n\n- The feature failure comes from missing or non-mesh geometry that requires upstream conversion.\n- Unsupported file types require lossy texture\u002Faudio\u002Fgeometry conversion.\n- Winding, normal direction, or origin placement cannot be inferred from local geometry.\n- Rescaling would require editing external layers that are not staged with the asset.\n- A unit wrapper or payload layout causes `FET000_CORE` or `AA.001` to regress.\n\n## Validation Handoff\n\nPreserve reports under the staged output directory. If the Physical AI Skill Hub validation commands are available, use:\n\n```bash\nuv run --python 3.12 validate-usd-minimum \u003Cstaged-usd> \\\n  --report \u003Coutput-root>\u002Fminimum-usd-after-fet001.json\n\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-fet001.json\n```\n\nCount this skill as successful when `FET001_BASE_NEUTRAL` passes, even if the full profile still fails on later features such as rigid bodies, multibody physics, or grasp vectors. 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| `fet001_version` | Selected `FET001_BASE_NEUTRAL` manifest version. |\n| `requirements_repaired` | Requirement IDs changed by this skill. |\n| `requirements_blocked` | Requirement IDs that need user intent or upstream conversion. |\n| `scale_preserved` | Whether composed physical bounds were preserved after unit repair. |\n| `validation_report` | Path to the rerun validation report. |\n| `next_step` | Usually the next failing profile feature. |\n\nKeep the user-facing summary short: what was fixed, whether the asset scale was preserved, what FET001 result validation reported, and the first remaining validation gate.\n",{"data":35,"body":42},{"name":4,"description":6,"license":26,"metadata":36},{"author":37,"tags":38},"Shaad Boochoon \u003Csboochoon@nvidia.com>",[39,40,41],"simready","conformance","minimal",{"type":43,"children":44},"root",[45,54,61,76,81,87,92,98,103,135,156,169,175,180,358,364,369,606,612,632,637,688,693,883,910,916,921,933,938,947,953,958,1019,1024,1065,1071,1076,1387,1399,1405,1423,1429,1447,1453,1478,1484,1489,1676,1681],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"simready-conform-fet-001-minimal",[51],{"type":52,"value":53},"text","SimReady Conform FET-001 Minimal",{"type":46,"tag":55,"props":56,"children":58},"h2",{"id":57},"purpose",[59],{"type":52,"value":60},"Purpose",{"type":46,"tag":62,"props":63,"children":64},"p",{},[65,67,74],{"type":52,"value":66},"Use this workflow skill after FET000_CORE passes and the next profile validation gate is ",{"type":46,"tag":68,"props":69,"children":71},"code",{"className":70},[],[72],{"type":52,"value":73},"FET001_BASE_NEUTRAL",{"type":52,"value":75},". It brings an existing USD asset toward the Minimal\u002FBase Neutral feature contract while preserving visual scale, hierarchy intent, and source traceability.",{"type":46,"tag":62,"props":77,"children":78},{},[79],{"type":52,"value":80},"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 failing FET001 validation gate.",{"type":46,"tag":55,"props":82,"children":84},{"id":83},"prerequisites",[85],{"type":52,"value":86},"Prerequisites",{"type":46,"tag":62,"props":88,"children":89},{},[90],{"type":52,"value":91},"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":46,"tag":55,"props":93,"children":95},{"id":94},"source-of-truth",[96],{"type":52,"value":97},"Source of Truth",{"type":46,"tag":62,"props":99,"children":100},{},[101],{"type":52,"value":102},"Before changing an asset, load the exact FET001 manifest selected by the profile:",{"type":46,"tag":104,"props":105,"children":106},"ul",{},[107,117,126],{"type":46,"tag":108,"props":109,"children":110},"li",{},[111],{"type":46,"tag":68,"props":112,"children":114},{"className":113},[],[115],{"type":52,"value":116},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001_base_neutral-0.1.0-minimal.json",{"type":46,"tag":108,"props":118,"children":119},{},[120],{"type":46,"tag":68,"props":121,"children":123},{"className":122},[],[124],{"type":52,"value":125},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001_base_neutral-1.0.0-minimal.json",{"type":46,"tag":108,"props":127,"children":128},{},[129],{"type":46,"tag":68,"props":130,"children":132},{"className":131},[],[133],{"type":52,"value":134},"nv_core\u002Fsr_specs\u002Fdocs\u002Ffeatures\u002FFET_001-minimal.md",{"type":46,"tag":62,"props":136,"children":137},{},[138,140,146,148,154],{"type":52,"value":139},"Some profiles select ",{"type":46,"tag":68,"props":141,"children":143},{"className":142},[],[144],{"type":52,"value":145},"FET001_BASE_NEUTRAL@0.1.0",{"type":52,"value":147},", while newer profiles may select ",{"type":46,"tag":68,"props":149,"children":151},{"className":150},[],[152],{"type":52,"value":153},"1.0.0",{"type":52,"value":155},". Treat the JSON manifest requirement list as authoritative for the selected profile\u002Fversion.",{"type":46,"tag":62,"props":157,"children":158},{},[159,161,167],{"type":52,"value":160},"For per-requirement repair details, read ",{"type":46,"tag":68,"props":162,"children":164},{"className":163},[],[165],{"type":52,"value":166},"references\u002Ffet001-requirements.md",{"type":52,"value":168}," when a FET001 validation report or inspection identifies matching failures.",{"type":46,"tag":55,"props":170,"children":172},{"id":171},"inputs",[173],{"type":52,"value":174},"Inputs",{"type":46,"tag":62,"props":176,"children":177},{},[178],{"type":52,"value":179},"Collect these before editing:",{"type":46,"tag":181,"props":182,"children":183},"table",{},[184,203],{"type":46,"tag":185,"props":186,"children":187},"thead",{},[188],{"type":46,"tag":189,"props":190,"children":191},"tr",{},[192,198],{"type":46,"tag":193,"props":194,"children":195},"th",{},[196],{"type":52,"value":197},"Input",{"type":46,"tag":193,"props":199,"children":200},{},[201],{"type":52,"value":202},"Requirement",{"type":46,"tag":204,"props":205,"children":206},"tbody",{},[207,248,265,290,307,324,341],{"type":46,"tag":189,"props":208,"children":209},{},[210,220],{"type":46,"tag":211,"props":212,"children":213},"td",{},[214],{"type":46,"tag":68,"props":215,"children":217},{"className":216},[],[218],{"type":52,"value":219},"usd_asset",{"type":46,"tag":211,"props":221,"children":222},{},[223,225,231,233,239,240,246],{"type":52,"value":224},"Required ",{"type":46,"tag":68,"props":226,"children":228},{"className":227},[],[229],{"type":52,"value":230},".usd",{"type":52,"value":232},", ",{"type":46,"tag":68,"props":234,"children":236},{"className":235},[],[237],{"type":52,"value":238},".usda",{"type":52,"value":232},{"type":46,"tag":68,"props":241,"children":243},{"className":242},[],[244],{"type":52,"value":245},".usdc",{"type":52,"value":247},", or unpacked USD-family asset to repair.",{"type":46,"tag":189,"props":249,"children":250},{},[251,260],{"type":46,"tag":211,"props":252,"children":253},{},[254],{"type":46,"tag":68,"props":255,"children":257},{"className":256},[],[258],{"type":52,"value":259},"output_root",{"type":46,"tag":211,"props":261,"children":262},{},[263],{"type":52,"value":264},"Required or inferred folder for staged assets and reports.",{"type":46,"tag":189,"props":266,"children":267},{},[268,277],{"type":46,"tag":211,"props":269,"children":270},{},[271],{"type":46,"tag":68,"props":272,"children":274},{"className":273},[],[275],{"type":52,"value":276},"simready_profile",{"type":46,"tag":211,"props":278,"children":279},{},[280,282,288],{"type":52,"value":281},"Profile being validated, such as ",{"type":46,"tag":68,"props":283,"children":285},{"className":284},[],[286],{"type":52,"value":287},"Prop-Robotics-Neutral",{"type":52,"value":289},".",{"type":46,"tag":189,"props":291,"children":292},{},[293,302],{"type":46,"tag":211,"props":294,"children":295},{},[296],{"type":46,"tag":68,"props":297,"children":299},{"className":298},[],[300],{"type":52,"value":301},"profile_version",{"type":46,"tag":211,"props":303,"children":304},{},[305],{"type":52,"value":306},"Profile version, if supplied by the user or validation command.",{"type":46,"tag":189,"props":308,"children":309},{},[310,319],{"type":46,"tag":211,"props":311,"children":312},{},[313],{"type":46,"tag":68,"props":314,"children":316},{"className":315},[],[317],{"type":52,"value":318},"validation_report",{"type":46,"tag":211,"props":320,"children":321},{},[322],{"type":52,"value":323},"Preferred JSON or markdown report from the failing profile\u002Ffeature validation gate.",{"type":46,"tag":189,"props":325,"children":326},{},[327,336],{"type":46,"tag":211,"props":328,"children":329},{},[330],{"type":46,"tag":68,"props":331,"children":333},{"className":332},[],[334],{"type":52,"value":335},"source_asset",{"type":46,"tag":211,"props":337,"children":338},{},[339],{"type":52,"value":340},"Original CAD, DCC, URDF, MJCF, or conversion input path, used for provenance.",{"type":46,"tag":189,"props":342,"children":343},{},[344,353],{"type":46,"tag":211,"props":345,"children":346},{},[347],{"type":46,"tag":68,"props":348,"children":350},{"className":349},[],[351],{"type":52,"value":352},"physical_size_policy",{"type":46,"tag":211,"props":354,"children":355},{},[356],{"type":52,"value":357},"Whether to preserve physical size. Default to preserve size.",{"type":46,"tag":55,"props":359,"children":361},{"id":360},"instructions",[362],{"type":52,"value":363},"Instructions",{"type":46,"tag":62,"props":365,"children":366},{},[367],{"type":52,"value":368},"Use this checklist when changing the repository:",{"type":46,"tag":370,"props":371,"children":372},"ol",{},[373,386,398,403,415,435,596,601],{"type":46,"tag":108,"props":374,"children":375},{},[376,378,384],{"type":52,"value":377},"Confirm the input asset exists and that FET000_CORE is already passing on the same staged asset. If Core still fails, hand back to ",{"type":46,"tag":68,"props":379,"children":381},{"className":380},[],[382],{"type":52,"value":383},"simready-foundation-conform-fet-000-core",{"type":52,"value":385}," first.",{"type":46,"tag":108,"props":387,"children":388},{},[389,391,396],{"type":52,"value":390},"Parse the validation report and filter to ",{"type":46,"tag":68,"props":392,"children":394},{"className":393},[],[395],{"type":52,"value":73},{"type":52,"value":397}," failures. Do not repair later profile features in this skill.",{"type":46,"tag":108,"props":399,"children":400},{},[401],{"type":52,"value":402},"Load the selected FET001 manifest version and the requirement repair map.",{"type":46,"tag":108,"props":404,"children":405},{},[406,408,413],{"type":52,"value":407},"Create a staged output folder under ",{"type":46,"tag":68,"props":409,"children":411},{"className":410},[],[412],{"type":52,"value":259},{"type":52,"value":414},"; do not mutate the source unless the user explicitly asks for in-place repair.",{"type":46,"tag":108,"props":416,"children":417},{},[418,420,426,427,433],{"type":52,"value":419},"Run or inspect minimum USD metadata: stage openability, default prim, root prims, ",{"type":46,"tag":68,"props":421,"children":423},{"className":422},[],[424],{"type":52,"value":425},"upAxis",{"type":52,"value":232},{"type":46,"tag":68,"props":428,"children":430},{"className":429},[],[431],{"type":52,"value":432},"metersPerUnit",{"type":52,"value":434},", composed bounds, mesh\u002Fgeometry counts, authored references, and used layers.",{"type":46,"tag":108,"props":436,"children":437},{},[438,440],{"type":52,"value":439},"Apply deterministic fixes in this order:\n",{"type":46,"tag":104,"props":441,"children":442},{},[443,463,490,523,543,583],{"type":46,"tag":108,"props":444,"children":445},{},[446,448,454,456,462],{"type":52,"value":447},"Atomic asset\u002Ffile fixes for ",{"type":46,"tag":68,"props":449,"children":451},{"className":450},[],[452],{"type":52,"value":453},"AA.001",{"type":52,"value":455}," and ",{"type":46,"tag":68,"props":457,"children":459},{"className":458},[],[460],{"type":52,"value":461},"AA.002",{"type":52,"value":289},{"type":46,"tag":108,"props":464,"children":465},{},[466,468,474,475,481,483,489],{"type":52,"value":467},"Hierarchy fixes for ",{"type":46,"tag":68,"props":469,"children":471},{"className":470},[],[472],{"type":52,"value":473},"HI.001",{"type":52,"value":232},{"type":46,"tag":68,"props":476,"children":478},{"className":477},[],[479],{"type":52,"value":480},"HI.003",{"type":52,"value":482},", and ",{"type":46,"tag":68,"props":484,"children":486},{"className":485},[],[487],{"type":52,"value":488},"HI.004",{"type":52,"value":289},{"type":46,"tag":108,"props":491,"children":492},{},[493,495,501,502,508,509,515,516,522],{"type":52,"value":494},"Unit and orientation fixes for ",{"type":46,"tag":68,"props":496,"children":498},{"className":497},[],[499],{"type":52,"value":500},"UN.001",{"type":52,"value":232},{"type":46,"tag":68,"props":503,"children":505},{"className":504},[],[506],{"type":52,"value":507},"UN.002",{"type":52,"value":232},{"type":46,"tag":68,"props":510,"children":512},{"className":511},[],[513],{"type":52,"value":514},"UN.006",{"type":52,"value":482},{"type":46,"tag":68,"props":517,"children":519},{"className":518},[],[520],{"type":52,"value":521},"UN.007",{"type":52,"value":289},{"type":46,"tag":108,"props":524,"children":525},{},[526,528,534,536,542],{"type":52,"value":527},"Minimal visual geometry fixes for ",{"type":46,"tag":68,"props":529,"children":531},{"className":530},[],[532],{"type":52,"value":533},"VG.001",{"type":52,"value":535}," or ",{"type":46,"tag":68,"props":537,"children":539},{"className":538},[],[540],{"type":52,"value":541},"VG.MESH.001",{"type":52,"value":289},{"type":46,"tag":108,"props":544,"children":545},{},[546,548,554,555,561,562,568,569,575,576,582],{"type":52,"value":547},"Mesh quality fixes for ",{"type":46,"tag":68,"props":549,"children":551},{"className":550},[],[552],{"type":52,"value":553},"VG.002",{"type":52,"value":232},{"type":46,"tag":68,"props":556,"children":558},{"className":557},[],[559],{"type":52,"value":560},"VG.014",{"type":52,"value":232},{"type":46,"tag":68,"props":563,"children":565},{"className":564},[],[566],{"type":52,"value":567},"VG.027",{"type":52,"value":232},{"type":46,"tag":68,"props":570,"children":572},{"className":571},[],[573],{"type":52,"value":574},"VG.028",{"type":52,"value":482},{"type":46,"tag":68,"props":577,"children":579},{"className":578},[],[580],{"type":52,"value":581},"VG.029",{"type":52,"value":289},{"type":46,"tag":108,"props":584,"children":585},{},[586,588,594],{"type":52,"value":587},"Origin placement fixes for ",{"type":46,"tag":68,"props":589,"children":591},{"className":590},[],[592],{"type":52,"value":593},"VG.025",{"type":52,"value":595}," only when the asset placement convention is clear.",{"type":46,"tag":108,"props":597,"children":598},{},[599],{"type":52,"value":600},"Rerun the same profile validation gate, or the narrowest available FET001 validation gate.",{"type":46,"tag":108,"props":602,"children":603},{},[604],{"type":52,"value":605},"Summarize the stage as passed, failed, skipped, or blocked. Stop when FET001 passes or the next FET001 failure requires upstream conversion, source geometry, or user intent.",{"type":46,"tag":55,"props":607,"children":609},{"id":608},"unit-repair-policy",[610],{"type":52,"value":611},"Unit Repair Policy",{"type":46,"tag":62,"props":613,"children":614},{},[615,617,622,624,630],{"type":52,"value":616},"Treat ",{"type":46,"tag":68,"props":618,"children":620},{"className":619},[],[621],{"type":52,"value":521},{"type":52,"value":623}," with extra care. Setting ",{"type":46,"tag":68,"props":625,"children":627},{"className":626},[],[628],{"type":52,"value":629},"metersPerUnit = 1.0",{"type":52,"value":631}," without adjusting authored coordinates can change the apparent physical size of an asset.",{"type":46,"tag":62,"props":633,"children":634},{},[635],{"type":52,"value":636},"Default policy:",{"type":46,"tag":104,"props":638,"children":639},{},[640,645,657,678,683],{"type":46,"tag":108,"props":641,"children":642},{},[643],{"type":52,"value":644},"Preserve physical size.",{"type":46,"tag":108,"props":646,"children":647},{},[648,650,655],{"type":52,"value":649},"Record the original ",{"type":46,"tag":68,"props":651,"children":653},{"className":652},[],[654],{"type":52,"value":432},{"type":52,"value":656},", composed bounds, default prim, and root transforms before editing.",{"type":46,"tag":108,"props":658,"children":659},{},[660,662,668,670,676],{"type":52,"value":661},"If the asset uses millimeters, such as ",{"type":46,"tag":68,"props":663,"children":665},{"className":664},[],[666],{"type":52,"value":667},"metersPerUnit = 0.001",{"type":52,"value":669},", normalize to meter units by scaling authored linear data by ",{"type":46,"tag":68,"props":671,"children":673},{"className":672},[],[674],{"type":52,"value":675},"0.001",{"type":52,"value":677}," or by applying an equivalent root-scale normalization in the same staged USD file.",{"type":46,"tag":108,"props":679,"children":680},{},[681],{"type":52,"value":682},"Recompute authored extents after any geometry-space rescale.",{"type":46,"tag":108,"props":684,"children":685},{},[686],{"type":52,"value":687},"Validate that the composed bounds in meters are unchanged within a small tolerance.",{"type":46,"tag":62,"props":689,"children":690},{},[691],{"type":52,"value":692},"Prefer these approaches in order:",{"type":46,"tag":181,"props":694,"children":695},{},[696,717],{"type":46,"tag":185,"props":697,"children":698},{},[699],{"type":46,"tag":189,"props":700,"children":701},{},[702,707,712],{"type":46,"tag":193,"props":703,"children":704},{},[705],{"type":52,"value":706},"Strategy",{"type":46,"tag":193,"props":708,"children":709},{},[710],{"type":52,"value":711},"Use When",{"type":46,"tag":193,"props":713,"children":714},{},[715],{"type":52,"value":716},"Notes",{"type":46,"tag":204,"props":718,"children":719},{},[720,738,770,802,865],{"type":46,"tag":189,"props":721,"children":722},{},[723,728,733],{"type":46,"tag":211,"props":724,"children":725},{},[726],{"type":52,"value":727},"Re-export from converter with meter units",{"type":46,"tag":211,"props":729,"children":730},{},[731],{"type":52,"value":732},"Conversion options are available and reliable.",{"type":46,"tag":211,"props":734,"children":735},{},[736],{"type":52,"value":737},"Best long-term fix because geometry, metadata, and derived data are generated consistently.",{"type":46,"tag":189,"props":739,"children":740},{},[741,746,751],{"type":46,"tag":211,"props":742,"children":743},{},[744],{"type":52,"value":745},"Rescale staged USD data",{"type":46,"tag":211,"props":747,"children":748},{},[749],{"type":52,"value":750},"All relevant layers are local and editable.",{"type":46,"tag":211,"props":752,"children":753},{},[754,756,762,764,769],{"type":52,"value":755},"Multiply points, translate ops, extents, and other linear authored values by ",{"type":46,"tag":68,"props":757,"children":759},{"className":758},[],[760],{"type":52,"value":761},"old_meters_per_unit \u002F 1.0",{"type":52,"value":763},", then set stage ",{"type":46,"tag":68,"props":765,"children":767},{"className":766},[],[768],{"type":52,"value":629},{"type":52,"value":289},{"type":46,"tag":189,"props":771,"children":772},{},[773,778,783],{"type":46,"tag":211,"props":774,"children":775},{},[776],{"type":52,"value":777},"Apply root-scale normalization in the same staged USD",{"type":46,"tag":211,"props":779,"children":780},{},[781],{"type":52,"value":782},"The asset root has no existing authored xform ops and the selected FET001 version does not reject a root scale.",{"type":46,"tag":211,"props":784,"children":785},{},[786,788,793,795,800],{"type":52,"value":787},"Set stage ",{"type":46,"tag":68,"props":789,"children":791},{"className":790},[],[792],{"type":52,"value":629},{"type":52,"value":794}," and add a root scale op equal to ",{"type":46,"tag":68,"props":796,"children":798},{"className":797},[],[799],{"type":52,"value":761},{"type":52,"value":801},". This strategy is useful for millimeter- or centimeter-authored converter output when a root scale is acceptable.",{"type":46,"tag":189,"props":803,"children":804},{},[805,810,815],{"type":46,"tag":211,"props":806,"children":807},{},[808],{"type":52,"value":809},"Create a meter-unit wrapper",{"type":46,"tag":211,"props":811,"children":812},{},[813],{"type":52,"value":814},"The package\u002Fvalidator contract allows a local USD payload reference without violating Core or atomic-asset rules.",{"type":46,"tag":211,"props":816,"children":817},{},[818,820,826,827,832,834,840,842,848,850,856,858,863],{"type":52,"value":819},"Verify ",{"type":46,"tag":68,"props":821,"children":823},{"className":822},[],[824],{"type":52,"value":825},"FET000_CORE",{"type":52,"value":455},{"type":46,"tag":68,"props":828,"children":830},{"className":829},[],[831],{"type":52,"value":453},{"type":52,"value":833}," immediately. Current validators may reject extra USD files under ",{"type":46,"tag":68,"props":835,"children":837},{"className":836},[],[838],{"type":52,"value":839},"simready_usd",{"type":52,"value":841}," (",{"type":46,"tag":68,"props":843,"children":845},{"className":844},[],[846],{"type":52,"value":847},"NP.005",{"type":52,"value":849},") or ",{"type":46,"tag":68,"props":851,"children":853},{"className":852},[],[854],{"type":52,"value":855},"..\u002Fpayloads\u002F...",{"type":52,"value":857}," references as outside the asset root (",{"type":46,"tag":68,"props":859,"children":861},{"className":860},[],[862],{"type":52,"value":453},{"type":52,"value":864},").",{"type":46,"tag":189,"props":866,"children":867},{},[868,873,878],{"type":46,"tag":211,"props":869,"children":870},{},[871],{"type":52,"value":872},"Metadata-only change",{"type":46,"tag":211,"props":874,"children":875},{},[876],{"type":52,"value":877},"The coordinates are already in meters, or the user accepts a physical size change.",{"type":46,"tag":211,"props":879,"children":880},{},[881],{"type":52,"value":882},"Report this explicitly because it can make the asset too large or too small.",{"type":46,"tag":62,"props":884,"children":885},{},[886,888,893,895,900,902,908],{"type":52,"value":887},"For any asset with ",{"type":46,"tag":68,"props":889,"children":891},{"className":890},[],[892],{"type":52,"value":667},{"type":52,"value":894},", a size-preserving single-file repair can set ",{"type":46,"tag":68,"props":896,"children":898},{"className":897},[],[899],{"type":52,"value":629},{"type":52,"value":901}," and author root op ",{"type":46,"tag":68,"props":903,"children":905},{"className":904},[],[906],{"type":52,"value":907},"xformOp:scale:meter_normalization = (0.001, 0.001, 0.001)",{"type":52,"value":909},", assuming the root transform is otherwise safe to modify.",{"type":46,"tag":55,"props":911,"children":913},{"id":912},"examples",[914],{"type":52,"value":915},"Examples",{"type":46,"tag":62,"props":917,"children":918},{},[919],{"type":52,"value":920},"Example request:",{"type":46,"tag":922,"props":923,"children":928},"pre",{"className":924,"code":926,"language":52,"meta":927},[925],"language-text","Repair FET001_BASE_NEUTRAL minimal stage failures on a staged USD asset.\n","",[929],{"type":46,"tag":68,"props":930,"children":931},{"__ignoreMap":927},[932],{"type":52,"value":926},{"type":46,"tag":62,"props":934,"children":935},{},[936],{"type":52,"value":937},"Expected result summary:",{"type":46,"tag":922,"props":939,"children":942},{"className":940,"code":941,"language":52,"meta":927},[925],"staged_asset: repaired copy or output directory\nvalidation: selected feature\u002Fprofile gate and report path\nremaining_failures: next failing requirement IDs, if any\n",[943],{"type":46,"tag":68,"props":944,"children":945},{"__ignoreMap":927},[946],{"type":52,"value":941},{"type":46,"tag":55,"props":948,"children":950},{"id":949},"repair-policy",[951],{"type":52,"value":952},"Repair Policy",{"type":46,"tag":62,"props":954,"children":955},{},[956],{"type":52,"value":957},"Make automatic repairs only when the result is mechanical and locally verifiable:",{"type":46,"tag":104,"props":959,"children":960},{},[961,981,994,999,1004,1009,1014],{"type":46,"tag":108,"props":962,"children":963},{},[964,966,971,973,979],{"type":52,"value":965},"Set missing ",{"type":46,"tag":68,"props":967,"children":969},{"className":968},[],[970],{"type":52,"value":425},{"type":52,"value":972}," to ",{"type":46,"tag":68,"props":974,"children":976},{"className":975},[],[977],{"type":52,"value":978},"Z",{"type":52,"value":980}," when the asset is already visually Z-up or when the selected profile requires Z-up.",{"type":46,"tag":108,"props":982,"children":983},{},[984,986,992],{"type":52,"value":985},"Set ",{"type":46,"tag":68,"props":987,"children":989},{"className":988},[],[990],{"type":52,"value":991},"defaultPrim",{"type":52,"value":993}," to the single root prim when there is exactly one valid root.",{"type":46,"tag":108,"props":995,"children":996},{},[997],{"type":52,"value":998},"Wrap multiple roots under a new Xform only when all asset content can be moved or referenced without breaking paths.",{"type":46,"tag":108,"props":1000,"children":1001},{},[1002],{"type":52,"value":1003},"Convert search paths to anchored relative paths only after the dependency is inside the staged asset root.",{"type":46,"tag":108,"props":1005,"children":1006},{},[1007],{"type":52,"value":1008},"Author extents using USD-computed bounds for local editable meshes.",{"type":46,"tag":108,"props":1010,"children":1011},{},[1012],{"type":52,"value":1013},"Normalize or generate mesh normals only when the intended smoothing can be inferred or the converter already produced enough topology to compute them deterministically.",{"type":46,"tag":108,"props":1015,"children":1016},{},[1017],{"type":52,"value":1018},"If adding a root-scale normalization, check for existing root xform ops first. If the root already has meaningful transform ops, preserve order and semantics or use data-space rescaling instead.",{"type":46,"tag":62,"props":1020,"children":1021},{},[1022],{"type":52,"value":1023},"Block and report instead of guessing when:",{"type":46,"tag":104,"props":1025,"children":1026},{},[1027,1032,1037,1042,1047],{"type":46,"tag":108,"props":1028,"children":1029},{},[1030],{"type":52,"value":1031},"The feature failure comes from missing or non-mesh geometry that requires upstream conversion.",{"type":46,"tag":108,"props":1033,"children":1034},{},[1035],{"type":52,"value":1036},"Unsupported file types require lossy texture\u002Faudio\u002Fgeometry conversion.",{"type":46,"tag":108,"props":1038,"children":1039},{},[1040],{"type":52,"value":1041},"Winding, normal direction, or origin placement cannot be inferred from local geometry.",{"type":46,"tag":108,"props":1043,"children":1044},{},[1045],{"type":52,"value":1046},"Rescaling would require editing external layers that are not staged with the asset.",{"type":46,"tag":108,"props":1048,"children":1049},{},[1050,1052,1057,1058,1063],{"type":52,"value":1051},"A unit wrapper or payload layout causes ",{"type":46,"tag":68,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":52,"value":825},{"type":52,"value":535},{"type":46,"tag":68,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":52,"value":453},{"type":52,"value":1064}," to regress.",{"type":46,"tag":55,"props":1066,"children":1068},{"id":1067},"validation-handoff",[1069],{"type":52,"value":1070},"Validation Handoff",{"type":46,"tag":62,"props":1072,"children":1073},{},[1074],{"type":52,"value":1075},"Preserve reports under the staged output directory. If the Physical AI Skill Hub validation commands are available, use:",{"type":46,"tag":922,"props":1077,"children":1081},{"className":1078,"code":1079,"language":1080,"meta":927,"style":927},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run --python 3.12 validate-usd-minimum \u003Cstaged-usd> \\\n  --report \u003Coutput-root>\u002Fminimum-usd-after-fet001.json\n\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-fet001.json\n","bash",[1082],{"type":46,"tag":68,"props":1083,"children":1084},{"__ignoreMap":927},[1085,1146,1178,1188,1233,1264,1295,1325,1358],{"type":46,"tag":1086,"props":1087,"children":1090},"span",{"class":1088,"line":1089},"line",1,[1091,1097,1103,1108,1114,1119,1125,1130,1136,1141],{"type":46,"tag":1086,"props":1092,"children":1094},{"style":1093},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1095],{"type":52,"value":1096},"uv",{"type":46,"tag":1086,"props":1098,"children":1100},{"style":1099},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1101],{"type":52,"value":1102}," run",{"type":46,"tag":1086,"props":1104,"children":1105},{"style":1099},[1106],{"type":52,"value":1107}," --python",{"type":46,"tag":1086,"props":1109,"children":1111},{"style":1110},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1112],{"type":52,"value":1113}," 3.12",{"type":46,"tag":1086,"props":1115,"children":1116},{"style":1099},[1117],{"type":52,"value":1118}," validate-usd-minimum",{"type":46,"tag":1086,"props":1120,"children":1122},{"style":1121},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1123],{"type":52,"value":1124}," \u003C",{"type":46,"tag":1086,"props":1126,"children":1127},{"style":1099},[1128],{"type":52,"value":1129},"staged-us",{"type":46,"tag":1086,"props":1131,"children":1133},{"style":1132},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1134],{"type":52,"value":1135},"d",{"type":46,"tag":1086,"props":1137,"children":1138},{"style":1121},[1139],{"type":52,"value":1140},">",{"type":46,"tag":1086,"props":1142,"children":1143},{"style":1132},[1144],{"type":52,"value":1145}," \\\n",{"type":46,"tag":1086,"props":1147,"children":1149},{"class":1088,"line":1148},2,[1150,1155,1159,1164,1169,1173],{"type":46,"tag":1086,"props":1151,"children":1152},{"style":1099},[1153],{"type":52,"value":1154},"  --report",{"type":46,"tag":1086,"props":1156,"children":1157},{"style":1121},[1158],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1160,"children":1161},{"style":1099},[1162],{"type":52,"value":1163},"output-roo",{"type":46,"tag":1086,"props":1165,"children":1166},{"style":1132},[1167],{"type":52,"value":1168},"t",{"type":46,"tag":1086,"props":1170,"children":1171},{"style":1121},[1172],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1174,"children":1175},{"style":1099},[1176],{"type":52,"value":1177},"\u002Fminimum-usd-after-fet001.json\n",{"type":46,"tag":1086,"props":1179,"children":1181},{"class":1088,"line":1180},3,[1182],{"type":46,"tag":1086,"props":1183,"children":1185},{"emptyLinePlaceholder":1184},true,[1186],{"type":52,"value":1187},"\n",{"type":46,"tag":1086,"props":1189,"children":1191},{"class":1088,"line":1190},4,[1192,1196,1200,1204,1208,1213,1217,1221,1225,1229],{"type":46,"tag":1086,"props":1193,"children":1194},{"style":1093},[1195],{"type":52,"value":1096},{"type":46,"tag":1086,"props":1197,"children":1198},{"style":1099},[1199],{"type":52,"value":1102},{"type":46,"tag":1086,"props":1201,"children":1202},{"style":1099},[1203],{"type":52,"value":1107},{"type":46,"tag":1086,"props":1205,"children":1206},{"style":1110},[1207],{"type":52,"value":1113},{"type":46,"tag":1086,"props":1209,"children":1210},{"style":1099},[1211],{"type":52,"value":1212}," validate-simready-profile",{"type":46,"tag":1086,"props":1214,"children":1215},{"style":1121},[1216],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1218,"children":1219},{"style":1099},[1220],{"type":52,"value":1129},{"type":46,"tag":1086,"props":1222,"children":1223},{"style":1132},[1224],{"type":52,"value":1135},{"type":46,"tag":1086,"props":1226,"children":1227},{"style":1121},[1228],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1230,"children":1231},{"style":1132},[1232],{"type":52,"value":1145},{"type":46,"tag":1086,"props":1234,"children":1236},{"class":1088,"line":1235},5,[1237,1242,1246,1251,1256,1260],{"type":46,"tag":1086,"props":1238,"children":1239},{"style":1099},[1240],{"type":52,"value":1241},"  --profile",{"type":46,"tag":1086,"props":1243,"children":1244},{"style":1121},[1245],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1247,"children":1248},{"style":1099},[1249],{"type":52,"value":1250},"profil",{"type":46,"tag":1086,"props":1252,"children":1253},{"style":1132},[1254],{"type":52,"value":1255},"e",{"type":46,"tag":1086,"props":1257,"children":1258},{"style":1121},[1259],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1261,"children":1262},{"style":1132},[1263],{"type":52,"value":1145},{"type":46,"tag":1086,"props":1265,"children":1267},{"class":1088,"line":1266},6,[1268,1273,1277,1282,1287,1291],{"type":46,"tag":1086,"props":1269,"children":1270},{"style":1099},[1271],{"type":52,"value":1272},"  --profile-version",{"type":46,"tag":1086,"props":1274,"children":1275},{"style":1121},[1276],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1278,"children":1279},{"style":1099},[1280],{"type":52,"value":1281},"versio",{"type":46,"tag":1086,"props":1283,"children":1284},{"style":1132},[1285],{"type":52,"value":1286},"n",{"type":46,"tag":1086,"props":1288,"children":1289},{"style":1121},[1290],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1292,"children":1293},{"style":1132},[1294],{"type":52,"value":1145},{"type":46,"tag":1086,"props":1296,"children":1298},{"class":1088,"line":1297},7,[1299,1304,1308,1313,1317,1321],{"type":46,"tag":1086,"props":1300,"children":1301},{"style":1099},[1302],{"type":52,"value":1303},"  --foundation-root",{"type":46,"tag":1086,"props":1305,"children":1306},{"style":1121},[1307],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1309,"children":1310},{"style":1099},[1311],{"type":52,"value":1312},"simready-foundation-roo",{"type":46,"tag":1086,"props":1314,"children":1315},{"style":1132},[1316],{"type":52,"value":1168},{"type":46,"tag":1086,"props":1318,"children":1319},{"style":1121},[1320],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1322,"children":1323},{"style":1132},[1324],{"type":52,"value":1145},{"type":46,"tag":1086,"props":1326,"children":1327},{"class":1088,"line":27},[1328,1333,1337,1341,1345,1349,1354],{"type":46,"tag":1086,"props":1329,"children":1330},{"style":1099},[1331],{"type":52,"value":1332},"  --foundation-spec-root",{"type":46,"tag":1086,"props":1334,"children":1335},{"style":1121},[1336],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1338,"children":1339},{"style":1099},[1340],{"type":52,"value":1312},{"type":46,"tag":1086,"props":1342,"children":1343},{"style":1132},[1344],{"type":52,"value":1168},{"type":46,"tag":1086,"props":1346,"children":1347},{"style":1121},[1348],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1350,"children":1351},{"style":1099},[1352],{"type":52,"value":1353},"\u002Fnv_core\u002Fsr_specs\u002Fdocs",{"type":46,"tag":1086,"props":1355,"children":1356},{"style":1132},[1357],{"type":52,"value":1145},{"type":46,"tag":1086,"props":1359,"children":1361},{"class":1088,"line":1360},9,[1362,1366,1370,1374,1378,1382],{"type":46,"tag":1086,"props":1363,"children":1364},{"style":1099},[1365],{"type":52,"value":1154},{"type":46,"tag":1086,"props":1367,"children":1368},{"style":1121},[1369],{"type":52,"value":1124},{"type":46,"tag":1086,"props":1371,"children":1372},{"style":1099},[1373],{"type":52,"value":1163},{"type":46,"tag":1086,"props":1375,"children":1376},{"style":1132},[1377],{"type":52,"value":1168},{"type":46,"tag":1086,"props":1379,"children":1380},{"style":1121},[1381],{"type":52,"value":1140},{"type":46,"tag":1086,"props":1383,"children":1384},{"style":1099},[1385],{"type":52,"value":1386},"\u002Fsimready-profile-after-fet001.json\n",{"type":46,"tag":62,"props":1388,"children":1389},{},[1390,1392,1397],{"type":52,"value":1391},"Count this skill as successful when ",{"type":46,"tag":68,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":52,"value":73},{"type":52,"value":1398}," passes, even if the full profile still fails on later features such as rigid bodies, multibody physics, or grasp vectors. Report those remaining failures as handoff work for their own skills.",{"type":46,"tag":55,"props":1400,"children":1402},{"id":1401},"limitations",[1403],{"type":52,"value":1404},"Limitations",{"type":46,"tag":104,"props":1406,"children":1407},{},[1408,1413,1418],{"type":46,"tag":108,"props":1409,"children":1410},{},[1411],{"type":52,"value":1412},"Do not silently mutate the source asset; work on the requested staged output.",{"type":46,"tag":108,"props":1414,"children":1415},{},[1416],{"type":52,"value":1417},"Do not hide later profile failures after the selected feature gate passes or fails.",{"type":46,"tag":108,"props":1419,"children":1420},{},[1421],{"type":52,"value":1422},"Do not invent geometry, metadata, or runtime behavior that conflicts with the asset intent.",{"type":46,"tag":55,"props":1424,"children":1426},{"id":1425},"troubleshooting",[1427],{"type":52,"value":1428},"Troubleshooting",{"type":46,"tag":104,"props":1430,"children":1431},{},[1432,1437,1442],{"type":46,"tag":108,"props":1433,"children":1434},{},[1435],{"type":52,"value":1436},"Error: validation tooling is unavailable. Solution: run the narrowest available USD or static check and report the gap.",{"type":46,"tag":108,"props":1438,"children":1439},{},[1440],{"type":52,"value":1441},"Error: a repair would change asset intent. Solution: stop and ask for direction or stage the smallest reversible edit.",{"type":46,"tag":108,"props":1443,"children":1444},{},[1445],{"type":52,"value":1446},"Error: later profile gates still fail. Solution: report the next failing feature and hand off to the matching conformance skill.",{"type":46,"tag":55,"props":1448,"children":1450},{"id":1449},"resources",[1451],{"type":52,"value":1452},"Resources",{"type":46,"tag":104,"props":1454,"children":1455},{},[1456,1467],{"type":46,"tag":108,"props":1457,"children":1458},{},[1459,1465],{"type":46,"tag":68,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":52,"value":1464},"assets\u002Fopenai.yaml",{"type":52,"value":1466}," preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.",{"type":46,"tag":108,"props":1468,"children":1469},{},[1470,1476],{"type":46,"tag":68,"props":1471,"children":1473},{"className":1472},[],[1474],{"type":52,"value":1475},"references\u002F",{"type":52,"value":1477}," contains detailed requirement notes; load only the files needed for the active validation failure.",{"type":46,"tag":55,"props":1479,"children":1481},{"id":1480},"summary-format",[1482],{"type":52,"value":1483},"Summary Format",{"type":46,"tag":62,"props":1485,"children":1486},{},[1487],{"type":52,"value":1488},"Report:",{"type":46,"tag":181,"props":1490,"children":1491},{},[1492,1508],{"type":46,"tag":185,"props":1493,"children":1494},{},[1495],{"type":46,"tag":189,"props":1496,"children":1497},{},[1498,1503],{"type":46,"tag":193,"props":1499,"children":1500},{},[1501],{"type":52,"value":1502},"Field",{"type":46,"tag":193,"props":1504,"children":1505},{},[1506],{"type":52,"value":1507},"Meaning",{"type":46,"tag":204,"props":1509,"children":1510},{},[1511,1528,1545,1568,1592,1609,1626,1643,1659],{"type":46,"tag":189,"props":1512,"children":1513},{},[1514,1523],{"type":46,"tag":211,"props":1515,"children":1516},{},[1517],{"type":46,"tag":68,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":52,"value":1522},"input_usd_path",{"type":46,"tag":211,"props":1524,"children":1525},{},[1526],{"type":52,"value":1527},"Original USD path.",{"type":46,"tag":189,"props":1529,"children":1530},{},[1531,1540],{"type":46,"tag":211,"props":1532,"children":1533},{},[1534],{"type":46,"tag":68,"props":1535,"children":1537},{"className":1536},[],[1538],{"type":52,"value":1539},"output_usd_path",{"type":46,"tag":211,"props":1541,"children":1542},{},[1543],{"type":52,"value":1544},"Latest staged\u002Frepaired USD path.",{"type":46,"tag":189,"props":1546,"children":1547},{},[1548,1563],{"type":46,"tag":211,"props":1549,"children":1550},{},[1551,1557,1558],{"type":46,"tag":68,"props":1552,"children":1554},{"className":1553},[],[1555],{"type":52,"value":1556},"profile",{"type":52,"value":455},{"type":46,"tag":68,"props":1559,"children":1561},{"className":1560},[],[1562],{"type":52,"value":301},{"type":46,"tag":211,"props":1564,"children":1565},{},[1566],{"type":52,"value":1567},"Validation target.",{"type":46,"tag":189,"props":1569,"children":1570},{},[1571,1580],{"type":46,"tag":211,"props":1572,"children":1573},{},[1574],{"type":46,"tag":68,"props":1575,"children":1577},{"className":1576},[],[1578],{"type":52,"value":1579},"fet001_version",{"type":46,"tag":211,"props":1581,"children":1582},{},[1583,1585,1590],{"type":52,"value":1584},"Selected ",{"type":46,"tag":68,"props":1586,"children":1588},{"className":1587},[],[1589],{"type":52,"value":73},{"type":52,"value":1591}," manifest version.",{"type":46,"tag":189,"props":1593,"children":1594},{},[1595,1604],{"type":46,"tag":211,"props":1596,"children":1597},{},[1598],{"type":46,"tag":68,"props":1599,"children":1601},{"className":1600},[],[1602],{"type":52,"value":1603},"requirements_repaired",{"type":46,"tag":211,"props":1605,"children":1606},{},[1607],{"type":52,"value":1608},"Requirement IDs changed by this skill.",{"type":46,"tag":189,"props":1610,"children":1611},{},[1612,1621],{"type":46,"tag":211,"props":1613,"children":1614},{},[1615],{"type":46,"tag":68,"props":1616,"children":1618},{"className":1617},[],[1619],{"type":52,"value":1620},"requirements_blocked",{"type":46,"tag":211,"props":1622,"children":1623},{},[1624],{"type":52,"value":1625},"Requirement IDs that need user intent or upstream conversion.",{"type":46,"tag":189,"props":1627,"children":1628},{},[1629,1638],{"type":46,"tag":211,"props":1630,"children":1631},{},[1632],{"type":46,"tag":68,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":52,"value":1637},"scale_preserved",{"type":46,"tag":211,"props":1639,"children":1640},{},[1641],{"type":52,"value":1642},"Whether composed physical bounds were preserved after unit repair.",{"type":46,"tag":189,"props":1644,"children":1645},{},[1646,1654],{"type":46,"tag":211,"props":1647,"children":1648},{},[1649],{"type":46,"tag":68,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":52,"value":318},{"type":46,"tag":211,"props":1655,"children":1656},{},[1657],{"type":52,"value":1658},"Path to the rerun validation report.",{"type":46,"tag":189,"props":1660,"children":1661},{},[1662,1671],{"type":46,"tag":211,"props":1663,"children":1664},{},[1665],{"type":46,"tag":68,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":52,"value":1670},"next_step",{"type":46,"tag":211,"props":1672,"children":1673},{},[1674],{"type":52,"value":1675},"Usually the next failing profile feature.",{"type":46,"tag":62,"props":1677,"children":1678},{},[1679],{"type":52,"value":1680},"Keep the user-facing summary short: what was fixed, whether the asset scale was preserved, what FET001 result validation reported, and the first remaining validation gate.",{"type":46,"tag":1682,"props":1683,"children":1684},"style",{},[1685],{"type":52,"value":1686},"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":1688,"total":1770},[1689,1701,1712,1722,1735,1746,1759],{"slug":1690,"name":1690,"fn":1691,"description":1692,"org":1693,"tags":1694,"stars":23,"repoUrl":24,"updatedAt":1700},"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},[1695,1698,1699],{"name":1696,"slug":1697,"type":13},"Documentation","documentation",{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:08.047242",{"slug":1702,"name":1702,"fn":1703,"description":1704,"org":1705,"tags":1706,"stars":23,"repoUrl":24,"updatedAt":1711},"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},[1707,1708,1709,1710],{"name":1696,"slug":1697,"type":13},{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:23.330216",{"slug":1713,"name":1713,"fn":1714,"description":1715,"org":1716,"tags":1717,"stars":23,"repoUrl":24,"updatedAt":1721},"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},[1718,1719,1720],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},"2026-07-14T05:34:02.999518",{"slug":1723,"name":1723,"fn":1724,"description":1725,"org":1726,"tags":1727,"stars":23,"repoUrl":24,"updatedAt":1734},"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},[1728,1729,1730,1731],{"name":1696,"slug":1697,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1732,"slug":1733,"type":13},"Validation","validation","2026-07-14T05:34:00.482781",{"slug":1736,"name":1736,"fn":1737,"description":1738,"org":1739,"tags":1740,"stars":23,"repoUrl":24,"updatedAt":1745},"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},[1741,1742,1743,1744],{"name":1696,"slug":1697,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1732,"slug":1733,"type":13},"2026-07-14T05:34:11.881936",{"slug":1747,"name":1747,"fn":1748,"description":1749,"org":1750,"tags":1751,"stars":23,"repoUrl":24,"updatedAt":1758},"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},[1752,1753,1754,1757],{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1755,"slug":1756,"type":13},"Testing","testing",{"name":1732,"slug":1733,"type":13},"2026-07-14T05:34:09.295859",{"slug":1760,"name":1760,"fn":1761,"description":1762,"org":1763,"tags":1764,"stars":23,"repoUrl":24,"updatedAt":1769},"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},[1765,1766,1767,1768],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"name":1732,"slug":1733,"type":13},"2026-07-14T05:34:14.407249",26,{"items":1772,"total":1925},[1773,1789,1807,1818,1830,1842,1855,1869,1880,1891,1905,1914],{"slug":1774,"name":1774,"fn":1775,"description":1776,"org":1777,"tags":1778,"stars":1786,"repoUrl":1787,"updatedAt":1788},"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},[1779,1780,1783],{"name":1696,"slug":1697,"type":13},{"name":1781,"slug":1782,"type":13},"MCP","mcp",{"name":1784,"slug":1785,"type":13},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1790,"name":1790,"fn":1791,"description":1792,"org":1793,"tags":1794,"stars":1804,"repoUrl":1805,"updatedAt":1806},"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},[1795,1798,1801],{"name":1796,"slug":1797,"type":13},"Containers","containers",{"name":1799,"slug":1800,"type":13},"Deployment","deployment",{"name":1802,"slug":1803,"type":13},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1808,"name":1808,"fn":1809,"description":1810,"org":1811,"tags":1812,"stars":1804,"repoUrl":1805,"updatedAt":1817},"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},[1813,1816],{"name":1814,"slug":1815,"type":13},"CI\u002FCD","ci-cd",{"name":1799,"slug":1800,"type":13},"2026-07-14T05:25:59.97109",{"slug":1819,"name":1819,"fn":1820,"description":1821,"org":1822,"tags":1823,"stars":1804,"repoUrl":1805,"updatedAt":1829},"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},[1824,1825,1826],{"name":1814,"slug":1815,"type":13},{"name":1799,"slug":1800,"type":13},{"name":1827,"slug":1828,"type":13},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1831,"name":1831,"fn":1832,"description":1833,"org":1834,"tags":1835,"stars":1804,"repoUrl":1805,"updatedAt":1841},"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},[1836,1837,1838],{"name":21,"slug":22,"type":13},{"name":1827,"slug":1828,"type":13},{"name":1839,"slug":1840,"type":13},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1843,"name":1843,"fn":1844,"description":1845,"org":1846,"tags":1847,"stars":1804,"repoUrl":1805,"updatedAt":1854},"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},[1848,1851],{"name":1849,"slug":1850,"type":13},"Best Practices","best-practices",{"name":1852,"slug":1853,"type":13},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1856,"name":1856,"fn":1857,"description":1858,"org":1859,"tags":1860,"stars":1804,"repoUrl":1805,"updatedAt":1868},"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},[1861,1864,1867],{"name":1862,"slug":1863,"type":13},"Machine Learning","machine-learning",{"name":1865,"slug":1866,"type":13},"Migration","migration",{"name":9,"slug":8,"type":13},"2026-07-17T06:07:11.777011",{"slug":1870,"name":1870,"fn":1871,"description":1872,"org":1873,"tags":1874,"stars":1804,"repoUrl":1805,"updatedAt":1879},"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},[1875,1878],{"name":1876,"slug":1877,"type":13},"QA","qa",{"name":1755,"slug":1756,"type":13},"2026-07-14T05:25:53.673039",{"slug":1881,"name":1881,"fn":1882,"description":1883,"org":1884,"tags":1885,"stars":1804,"repoUrl":1805,"updatedAt":1890},"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},[1886,1887],{"name":1799,"slug":1800,"type":13},{"name":1888,"slug":1889,"type":13},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1892,"name":1892,"fn":1893,"description":1894,"org":1895,"tags":1896,"stars":1804,"repoUrl":1805,"updatedAt":1904},"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},[1897,1900,1901],{"name":1898,"slug":1899,"type":13},"Code Review","code-review",{"name":1827,"slug":1828,"type":13},{"name":1902,"slug":1903,"type":13},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1906,"name":1906,"fn":1907,"description":1908,"org":1909,"tags":1910,"stars":1804,"repoUrl":1805,"updatedAt":1913},"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},[1911,1912],{"name":1876,"slug":1877,"type":13},{"name":1755,"slug":1756,"type":13},"2026-07-14T05:25:54.928983",{"slug":1915,"name":1915,"fn":1916,"description":1917,"org":1918,"tags":1919,"stars":1804,"repoUrl":1805,"updatedAt":1924},"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},[1920,1923],{"name":1921,"slug":1922,"type":13},"Automation","automation",{"name":1814,"slug":1815,"type":13},"2026-07-30T05:29:03.275638",496]