# Usd Inherits Namespace Source

> Use this skill when implementing or verifying the first inherits-composition namespace source backed by a composed base namespace source.

- Skill: `nvidia-omniverse/usd-inherits-namespace-source` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nvidia-omniverse/usd-inherits-namespace-source`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nvidia-omniverse/usd-inherits-namespace-source/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: NVIDIA-Omniverse (https://skillmd.com/u/nvidia-omniverse)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nvidia-omniverse/usd-inherits-namespace-source

---


# usd-inherits-namespace-source

Use this skill when implementing or verifying the first inherits-composition
namespace source backed by a composed base namespace source.

## Spec Sources

- `aousd/specifications-public@v1.0.1:specification/composition/README.md`
  inherits, namespace mapping, implied inherits, and strength ordering
- `aousd/specifications-public@v1.0.1:specification/glossary/README.md`
  `Inherits` and `LIVERPS`
- `aousd/specifications-public@v1.0.1:specification/document_data_model/README.md`
  `inheritPaths`
- `aousd/specifications-public@v1.0.1:specification/file_formats/README.md`
  `InheritsMetadata`
- `aousd/specifications-public@v1.0.1:specification/stage_population/README.md`
  stage population consumption

Pinned tag: `v1.0.1`

Pinned tag / commit: `v1.0.1`

## Provides

- A `NamespaceSource` capability with direct inheritPaths composition
- Inherit path discovery from the base source's exposed `inheritPaths` field
- Inherited source prim and descendant mapping onto the inherit-authoring prim
- Recursive direct inherit expansion through inherited source prims
- Implied inherit arcs from upstream layer-stack sites at the same inherited
  source path
- Path-valued field contents such as relationship `targetPaths` and attribute
  `connectionPaths` remapped into the inherit-authoring namespace
- Same-path local layer-stack target opinions stronger than inherited opinions
- Implied upstream inherited opinions stronger than weaker reference-introduced
  target opinions
- Inherited opinions stronger than variants, relocates, references, and
  payloads by LIVERPS strength placement
- Composed child and property names across local and inherited specs
- Diagnostics for invalid inherit paths and missing inherited prims

## Contract

This skill owns `contracts/handles/inherits-namespace-source.handle.json` and
implements the shared namespace-source capability described by
`contracts/capabilities/namespace-source.json`. It also follows
`contracts/capabilities/semantic-runtime-types.json`.

The first version is an in-memory direct inherits provider. It consumes a
composed base namespace source, currently `usd-relocates-namespace-source` in
the bounded graph, and applies direct `inheritPaths` entries exposed on base
prim inputs. It does not open files, resolve assets, evaluate inherits authored
inside selected variants, or perform full value resolution.

The source exposes capabilities:

- `mode`: `composed_namespace`
- `composition`: `partial`
- `value_resolution`: `partial`
- `payload_loading`: `absent`
- `instancing`: `absent`
- `schema_fallbacks`: `absent`
- `child_ordering`: `composed`
- `property_ordering`: `composed`

`partial` composition means source-visible direct inherit paths plus recursive
direct inherit paths reachable through inherited source prims, and implied
inherit arcs for upstream layer-stack sites represented by the base source.
Inherits authored inside selected variants remain inert until a selected-variant
recursive composition contract exists.

## Composition Rules

Inherit arcs are read from the base source's source-visible `inheritPaths`
field. This first contract consumes the source-exposed listOp value and
preserves `explicit` entries when present, otherwise `prepend` followed by
`append`. Cross-layer inherit listOp composition remains owned by the base
source or a later composition contract.

Each inherit path item must be a prim path and must not be a property path. If
the inherited prim does not exist in the base namespace source, source
construction fails with a diagnostic naming both the inherit-authoring prim path
and inherited source path.

The inherited source prim maps to the inherit-authoring prim path. Descendant
prims and properties below the inherited source are mapped by replacing the
inherited source prefix with the inherit-authoring prim path.

Direct inherit expansion is transitive. If an inherited source prim also has
`inheritPaths`, those inherited source opinions contribute through the same
mapping, weaker than the source prim's own opinions. Implementations must track
semantic inherit-authoring path, inherited source path, and mapping context for
cycle detection; cycles are diagnostics and must not recurse unboundedly.

Inherited source resolution is source-visible and layer-stack aware. When a
referenced asset authors an inherit to an absolute class path, stronger
upstream layer stacks that contribute specs at that class path create implied
inherit contributors. Do not resolve the target only in the asset layer when
the applicable composed/layer-stack context has stronger opinions at that same
source path.
Do not flatten weaker reference-introduced target fields ahead of those implied
upstream inherited fields; the provider or composition arbitrator must retain enough
provenance to apply the LIVERPS placement.

Path-valued field contents authored under inherited source specs are mapped the
same way before fields are emitted. Each ObjectPath under the inherited source
subtree is projected under the inherit-authoring prim path. For `targetPaths`
and `connectionPaths`, ObjectPaths outside the inherited source subtree remain
in the shared composed namespace for direct inherits rather than being pruned or
remapped.

Inherit source runtime records must retain inherit-authoring prim paths,
inherited source paths, and mapped contributor paths as path handles/references.
String spellings are acceptable for adapter summaries, diagnostics, and
temporary path construction, but not as authoritative USD object identity.
Contributing source provenance must be stored as typed records containing a
source/layer identifier and a semantic spec path. Do not store or later parse
composite strings such as `asset.usda:/Prim` in domain logic; those are adapter
or diagnostic renderings only.

Same-path local layer-stack target opinions are stronger than inherited
opinions. Stronger `over` specs may override weaker inherited `def` specs
without erasing the effective definition. Weaker reference-introduced target
opinions do not automatically outrank implied upstream inherited opinions.

Child prim names are composed from inherited contributors first, then local
target contributors, applying local ordering after local contribution. Property
names are the union of inherited and local properties, sorted with `usd-paths`
path-element ordering, then reordered by the strongest local `propertyOrder` if
present.

Inherits are stronger than variants, relocates, references, payloads, and
specializes in LIVERPS strength order. The bounded generated graph evaluates
inherits after relocates so the provider can see source opinions supplied by
the preceding bounded providers. Payload opinions remain separate until
`usd-composition-arbitrator` merges them with the terminal composed namespace source.
Specializes consumes the inherits provider when direct specializes are in
scope, and variants consume specializes as the terminal non-variant source:

```text
usd-layer-stack-namespace-source
  -> usd-reference-namespace-source
  -> usd-relocates-namespace-source
  -> usd-inherits-namespace-source
  -> usd-specializes-namespace-source
  -> usd-variant-namespace-source
```

Graph order here is evaluation order, not field strength order.

## Boundary Guards

Consume `usd-relocates-namespace-source` or another composed namespace source
for base opinions. Do not bypass the source boundary to read parser-local
structures.

Consume `usd-paths` and `usd-tokens` for path and token identity. Adapter
strings are boundary inputs only.

Do not perform asset resolution, layer opening, recursive specializes
expansion, recursive variant expansion, value clips, schema fallback
evaluation, stage population, model hierarchy traversal, instancing, or
attribute value interpolation.

## Test Obligations

- source capability declaration reports `composed_namespace`
- direct inherits contribute prim, property, and child opinions
- chained inherits contribute transitive source opinions
- implied upstream inherit opinions contribute across represented reference
  layer-stack sites
- same-path local layer-stack target opinions remain stronger than inherited
  opinions
- weaker reference-introduced target opinions do not override implied upstream
  inherited opinions
- missing inherited prims fail clearly
- the integration golden demonstrates stage population consuming the inherits
  namespace source
- all cases in
  `goldens/unit/usd-inherits-namespace-source/inherits-namespace-source.json`

