
Skill
simready-foundation-add-feature-adapter
mutate USD assets with feature adapters
Description
Use for adding SimReady feature adapters that mutate USD assets between exact feature or profile versions.
SKILL.md
SimReady Add Feature Adapter
Purpose
Use this skill to add a direct asset mutation path between feature versions or profile feature bundles. Feature adapters live under nv_core/cip_specs/asset_handler_modules/ and modify an output USD stage so an asset can move from an input feature/profile contract to a target one.
Use this after feature/profile differences are known. If no USD mutation is needed, document that no adapter is required.
Prerequisites
Before editing, read:
AGENTS.mdnv_core/sr_specs/docs/guides/feature_adapters/feature_adapters.md- source and target feature manifests
- source and target profile versions, if this is profile-driven
- existing adapters in the relevant asset handler module
Inputs
Collect or infer:
| Input | Requirement |
|---|---|
input_feature_id | Source feature ID. |
input_feature_version | Source feature version. |
output_feature_id | Target feature ID. |
output_feature_version | Target feature version. |
profile_path | Optional source/target profile upgrade path. |
mutation | Exact USD data changes required. |
module_path | Asset handler module directory. |
test_assets | Assets that pass input and should pass output after mutation. |
Instructions
Use this checklist when changing the repository:
- Compare source and target manifests. Identify only the requirements that differ.
- Decide whether a direct adapter is necessary. For profile transformations, every feature difference must have a direct adapter path or a documented blocker. If target requirements are documentation-only or already satisfied by source assets, document no-op behavior.
- Choose or create the asset handler module path.
- Add a Python adapter file with
@feature_adaptermetadata using exact feature IDs and versions. - Implement
modify_stage(input_stage, output_stage):- read source stage only when needed
- mutate output stage deterministically
- preserve unrelated authored data
- save output stage when complete
- Use native USD schemas and existing helper patterns from neighboring adapters.
- Add focused tests or manual validation notes:
- input validates against source feature/profile
- output validates against target feature/profile
- mutation is idempotent or safely repeatable where practical
- Update adapter indexes, imports, or registration files if the repo requires them.
- If the adapter is needed for a new profile version, update the profile docs or migration notes.
Examples
Example request:
Add a feature adapter that mutates assets from one exact SimReady feature/profile version to another.
Expected result summary:
changed_files: new docs, manifests, indexes, or validation scaffolding
validation: focused static checks and any relevant docs/build checks
remaining_gaps: requirement, validator, adapter, profile, or runtime-test follow-up
Policies
- Do not use adapters to hide invalid source assets; adapters should bridge defined feature differences.
- Do not mutate source stages in place.
- Do not invent property values that need user intent or prediction unless the adapter contract explicitly defines defaults.
- Keep profile upgrade paths direct: every changed feature needs a clear adapter path or a documented blocker.
Limitations
- Do not mutate published feature or profile versions in place.
- Do not invent requirement IDs or validator behavior when the contract is ambiguous; record the question.
- Do not skip index, manifest, validation, or downstream follow-up notes.
Troubleshooting
- Error: the new concept overlaps an existing artifact. Solution: update the existing capability, requirement, feature, profile, or adapter instead.
- Error: names or IDs conflict. Solution: re-check naming conventions and nearby indexes before editing further.
- Error: validation strategy is unclear. Solution: document deferred validation and the exact follow-up skill.
Resources
assets/openai.yamlpreserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.
Summary Format
Report:
| Field | Meaning |
|---|---|
adapter_name | Adapter identifier. |
adapter_path | Python file path. |
input_feature | Source feature ID/version. |
output_feature | Target feature ID/version. |
mutation_summary | USD opinions changed. |
profile_upgrade | Profile path supported, if any. |
validation | Tests/assets run and remaining gaps. |
More skills from the simready-foundation repository
View all 26 skillssimready-foundation-add-capability
add SimReady capability documentation
Jul 14DocumentationNVIDIASimulationsimready-foundation-add-feature
add SimReady features and documentation
Jul 14DocumentationEngineeringNVIDIASimulationsimready-foundation-add-profile
add SimReady profile versions
Jul 14DocumentationNVIDIASimulationValidationsimready-foundation-add-requirement
add atomic SimReady requirements
Jul 14DocumentationNVIDIASimulationValidationsimready-foundation-add-runtime-test
add SimReady runtime tests
Jul 14NVIDIASimulationTestingValidationsimready-foundation-add-validator
add executable SimReady validators
Jul 14EngineeringNVIDIASimulationValidation
More from NVIDIA
View publishernemoclaw-user-guide
retrieve NemoClaw documentation and configuration
NemoClaw
Jul 20DocumentationMCPSearchmcore-build-and-dependency
manage Megatron-LM development environments
Megatron-LM
Jul 14ContainersDeploymentPythonmcore-bump-base-image
update NVIDIA PyTorch base images
Megatron-LM
Jul 14CI/CDDeploymentmcore-cicd
manage CI/CD pipelines for Megatron-LM
Megatron-LM
Jul 14CI/CDDeploymentGitHubmcore-create-issue
investigate CI failures and create issues
Megatron-LM
Jul 14DebuggingGitHubTriagemcore-linting-and-formatting
lint and format Megatron-LM code
Megatron-LM
Jul 14Best PracticesCode Analysis