一键导入
usd-paths
Use this skill when implementing or verifying USD path syntax, construction, and ordering.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when implementing or verifying USD path syntax, construction, and ordering.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Map unfamiliar or multi-repository codebases before refactoring, integration, or feature work. Use when Codex needs to analyze submodules, ownership boundaries, APIs, duplicate implementations, build/test surfaces, risk areas, and a practical refactor sequence before changing code.
Coordinate multiple AI agents or subagents on software work without duplicating effort or causing conflicts. Use when Codex is explicitly asked to delegate exploration, implementation, review, testing, integration, or parallel analysis across a codebase.
Maintain C ABIs and language bindings as exact, testable contracts. Use when evolving public headers, ctypes/cffi/pybind/Rust/JS bindings, shared libraries, struct layouts, GPU/native APIs, or any cross-language boundary where drift can cause crashes or silent corruption.
Debug rendering, viewer, shader, material, camera, lighting, and GPU integration bugs with reproducible visual evidence. Use when scenes render blank, only appear after camera motion, show incorrect shading, diverge across backends, crash in GUI mode, or need pixel/screenshot verification.
Refactor disjoint or duplicated projects into clear layered architecture with canonical contracts and thin adapters. Use when viewers, renderers, bindings, data libraries, plugins, or services overlap and need maintainable ownership boundaries without losing behavior.
Identify and remove obsolete legacy, fallback, staging, compatibility, duplicate, generated, and reference code before creating clean initial commits or new project history. Use when a repo is being reset, consolidated, or prepared for a cleaner public history.
| name | usd-paths |
| description | Use this skill when implementing or verifying USD path syntax, construction, and ordering. |
| metadata | {"author":"NVIDIA"} |
Use this skill when implementing or verifying USD path syntax, construction, and ordering.
specification/path_grammar/README.mdspecification/document_data_model/README.md section Speculative ObjectPath as a Core Specialized Typespecification/file_formats/README.md section Paths and Asset ReferencesPinned tag / commit: v1.0.1
/Path grammarPath grammarPaths are the unique identifiers for specs in a layer, and the USDA file format
uses the normative Path production for angle-bracket path references. The
document data model also defines a narrower ObjectPath specialized type for
absolute prim and property targets.
This prototype graph currently uses usd-tokens as the dependency that provides
a registered-string/component-identity capability. That does not require a path
implementation to expose or store concrete Token values. It may use any
target-native representation that satisfies the same identity constraints:
stable equality, stable hashing, and string recovery for reusable path
components. The required property is that hot path operations do not repeatedly
scan or duplicate raw component strings when canonical component identity is
available from the graph.
This skill consumes the identifier_scanner capability from
usd-identifiers-and-names. That consumption is stronger than merely depending
on the node. Path parsing owns path syntax such as /, ., relative-parent
segments, variant-selection punctuation, canonical path assembly, and
path-specific errors. UTF-8 decoding, XID start/continue policy, identifier
component validity, and namespaced property-name component validity remain owned
by usd-identifiers-and-names.
If the provider scanner interface would violate a declared path performance target, a target may use a declared local fast path only as a performance exception. That fast path must remain semantically bound to the identifier scanner contract, pass the provider conformance subset it consumes, pass the path conformance and performance targets, and be visible in the graph or target report. Prefer improving the provider API or adding a provider-owned fast entrypoint before forking local scanner logic.
Parsing must follow the normative Path grammar from the pinned spec for the
non-legacy grammar: absolute paths, relative paths, property-only relative
paths, namespaced properties, variant selections, whitespace allowed inside
variant selections, and UTF-8/XID identifiers. Compatibility-mode legacy path
extensions remain out of scope unless a golden explicitly adds them.
This skill also owns the Path handle contract in
contracts/handles/path.handle.json. That contract is the stable semantic
boundary for dependent skills and conformance tests. A PathHandle is an
opaque reference owned by a target-specific context; it is not a required class,
struct layout, pointer type, string representation, or product API.
This skill also owns the Path performance contract in
contracts/performance/path.performance.json. That contract is intentionally
limited to operations on pre-created path handles so parsing and string
validation costs do not hide whether the durable representation is structured.
Targets may implement whole paths as interned values, arena indices, parsed segments, parent-linked nodes, compact IDs, strings with cached component structure, or another representation. Reusable component names should be backed by the graph's component identity dependency rather than an unrelated parser-local string scheme. Targets must expose a conformance adapter for the handle operations required by the contract:
Path equality, hashing, prefix checks, parent/name derivation, and component iteration should be able to operate on canonical structure or component identity instead of reparsing or rescanning complete path strings. Stringification may be cached or assembled from components, but it should not be the only durable path representation for implementations that depend on this skill.
The durable path representation should avoid retaining the same text at multiple levels. Parser-local strings are acceptable while recognizing syntax, and a single cached canonical path string may be retained for lookup or stringification. Path nodes should not additionally retain raw component strings when component identity handles are already available; prefer parent id, final component identity, optional property identity, kind, depth, and cached hash.
The conformance benchmark for this skill compares shallow and deep path handles for equality, hashing, parent lookup, final-name lookup, and fixed-prefix checks. Passing the benchmark does not prescribe the native data structure, but it does require the hot operations to avoid complete path-string rescans or complete path-data copies once the handle exists.
Defer identifier character-class validation to usd-identifiers-and-names.
Consume the identifier_scanner capability for identifier recognition embedded
inside path parsing. Do not locally define UTF-8 decoding policy, XID
start/continue policy, or identifier validity unless declaring and justifying a
performance exception.
Defer component identity, equality, hashing, and string conversion for repeated path names to the graph-provided component identity dependency; do not create a separate parser-local atom table for path component strings unless the target explicitly declares why that domain is isolated and non-comparable with the dependency contract.
Do not implement composition namespace mapping, anchoring across layer stacks, asset resolution, relocates, or stage population.
Do not create a parser-local path representation inside usda-spec-parser.
Use the Path handle contract or generated target-native path dependency
instead.
//Root/Root/Child/Root.attr/Root.namespaced:attr..property..../..../.pointsDescendant/City{ selection = NewYork } canonicalized as /City{selection=NewYork}/City/Street{selection=5thAvenue}/City/Street{selection=}M\u00fcnchen/M\u00fcnchen/Cr\u00e8me.caf\u00e9 and /\u6771\u4eac{lod=\u9ad8}goldens/unit/usd-paths/path-handle.jsonbenchmarks/path/targets.json