SimReady Add Requirement
Purpose
Use this skill to add one new atomic, testable requirement to an existing SimReady capability. A requirement is the smallest stable contract that features can include and validators can report.
If no existing capability fits, use simready-foundation-add-capability first. If the requirement changes behavior for an existing rule, use simready-foundation-update-requirement.
Prerequisites
Before editing, read:
AGENTS.md
nv_core/sr_specs/docs/guides/guides.md
nv_core/sr_specs/docs/guides/features/features.md
nv_core/sr_specs/docs/guides/features_expansion_workflow.md
nv_core/sr_specs/docs/guides/naming_conventions.md
- target capability
capability-*.md, requirements.md, existing requirements/*.md, and validation.py
Inputs
Collect or infer:
| Input |
Requirement |
capability_path |
Existing capability folder under nv_core/sr_specs/docs/capabilities/. |
requirement_slug |
Kebab-case filename without .md. |
requirement_code |
Stable code such as RB.011 or NVM.006; must not already exist. |
summary |
One-sentence rule statement. |
description |
Precise asset condition being checked. |
compatibility |
OpenUSD, PhysX, Isaac Sim, MDL, or other relevant compatibility tier. |
tags |
Essential, correctness, portability, performance, or another existing tag. |
examples |
Valid and invalid USDA or structured examples. |
validator_plan |
Existing validator, new validator needed, manual-only, or runtime-only. |
Instructions
Use this checklist when changing the repository:
- Confirm the target capability exists and the requirement code is unused across
nv_core/sr_specs/docs.
- Create
requirements/<requirement_slug>.md using the repository's requirement metadata table style: Code, Validator, Compatibility, and Tags.
- Include
Summary, Description, Why, Examples, How to comply, and relevant USD or runtime references.
- Add valid and invalid examples that show the smallest meaningful pass/fail distinction.
- Add the requirement filename to the capability
requirements.md toctree or requirements table.
- If the capability overview lists requirements directly, update
capability-<slug>.md too.
- If an objective rule can be implemented now, hand off to
simready-foundation-add-validator.
- If an existing or new feature should include this requirement, hand off to
simready-foundation-add-feature or simready-foundation-update-feature.
- Validate consistency:
- requirement code is unique
- requirement file is reachable from the capability index
- examples align with the described rule
- validator status is stated honestly
Examples
Example request:
Add a new atomic requirement for factory connection point direction metadata.
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
- Requirements must be atomic. Split compound rules into separate requirement IDs.
- Do not create a requirement just to mirror a feature name; define the concrete asset rule.
- Prefer native USD concepts before custom metadata.
- Any new custom USD property or attribute named by the requirement must follow
naming_conventions.md namespace rules.
- Use warnings or manual review for subjective guidance; reserve failures for objective contract violations.
- Do not list a requirement in a feature until its intended validation status is clear.
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.yaml preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.
Summary Format
Report:
| Field |
Meaning |
requirement_code |
New requirement ID. |
requirement_doc |
Markdown path. |
capability |
Capability folder updated. |
index_updates |
Requirement index/overview files updated. |
validator_plan |
New validator, existing validator, manual review, or runtime test. |
feature_followup |
Feature(s) that should include the requirement. |
validation |
Checks run and remaining gaps. |
1---2name: simready-foundation-add-requirement3description: Use for adding atomic SimReady requirements with stable IDs, docs, examples, indexes, and validator follow-up.4license: Apache-2.05---678# SimReady Add Requirement910## Purpose11Use this skill to add one new atomic, testable requirement to an existing SimReady capability. A requirement is the smallest stable contract that features can include and validators can report.1213If no existing capability fits, use `simready-foundation-add-capability` first. If the requirement changes behavior for an existing rule, use `simready-foundation-update-requirement`.1415## Prerequisites16Before editing, read:1718- `AGENTS.md`19- `nv_core/sr_specs/docs/guides/guides.md`20- `nv_core/sr_specs/docs/guides/features/features.md`21- `nv_core/sr_specs/docs/guides/features_expansion_workflow.md`22- `nv_core/sr_specs/docs/guides/naming_conventions.md`23- target capability `capability-*.md`, `requirements.md`, existing `requirements/*.md`, and `validation.py`2425## Inputs2627Collect or infer:2829| Input | Requirement |30|---|---|31| `capability_path` | Existing capability folder under `nv_core/sr_specs/docs/capabilities/`. |32| `requirement_slug` | Kebab-case filename without `.md`. |33| `requirement_code` | Stable code such as `RB.011` or `NVM.006`; must not already exist. |34| `summary` | One-sentence rule statement. |35| `description` | Precise asset condition being checked. |36| `compatibility` | OpenUSD, PhysX, Isaac Sim, MDL, or other relevant compatibility tier. |37| `tags` | Essential, correctness, portability, performance, or another existing tag. |38| `examples` | Valid and invalid USDA or structured examples. |39| `validator_plan` | Existing validator, new validator needed, manual-only, or runtime-only. |4041## Instructions4243Use this checklist when changing the repository:44451. Confirm the target capability exists and the requirement code is unused across `nv_core/sr_specs/docs`.462. Create `requirements/<requirement_slug>.md` using the repository's requirement metadata table style: `Code`, `Validator`, `Compatibility`, and `Tags`.473. Include `Summary`, `Description`, `Why`, `Examples`, `How to comply`, and relevant USD or runtime references.484. Add valid and invalid examples that show the smallest meaningful pass/fail distinction.495. Add the requirement filename to the capability `requirements.md` toctree or requirements table.506. If the capability overview lists requirements directly, update `capability-<slug>.md` too.517. If an objective rule can be implemented now, hand off to `simready-foundation-add-validator`.528. If an existing or new feature should include this requirement, hand off to `simready-foundation-add-feature` or `simready-foundation-update-feature`.539. Validate consistency:54 - requirement code is unique55 - requirement file is reachable from the capability index56 - examples align with the described rule57 - validator status is stated honestly5859## Examples6061Example request:6263```text64Add a new atomic requirement for factory connection point direction metadata.65```6667Expected result summary:6869```text70changed_files: new docs, manifests, indexes, or validation scaffolding71validation: focused static checks and any relevant docs/build checks72remaining_gaps: requirement, validator, adapter, profile, or runtime-test follow-up73```7475## Policies7677- Requirements must be atomic. Split compound rules into separate requirement IDs.78- Do not create a requirement just to mirror a feature name; define the concrete asset rule.79- Prefer native USD concepts before custom metadata.80- Any new custom USD property or attribute named by the requirement must follow `naming_conventions.md` namespace rules.81- Use warnings or manual review for subjective guidance; reserve failures for objective contract violations.82- Do not list a requirement in a feature until its intended validation status is clear.8384## Limitations8586- Do not mutate published feature or profile versions in place.87- Do not invent requirement IDs or validator behavior when the contract is ambiguous; record the question.88- Do not skip index, manifest, validation, or downstream follow-up notes.8990## Troubleshooting9192- Error: the new concept overlaps an existing artifact. Solution: update the existing capability, requirement, feature, profile, or adapter instead.93- Error: names or IDs conflict. Solution: re-check naming conventions and nearby indexes before editing further.94- Error: validation strategy is unclear. Solution: document deferred validation and the exact follow-up skill.9596## Resources9798- `assets/openai.yaml` preserves optional UI metadata for clients that read skill display hints. It is not required for the workflow.99100## Summary Format101102Report:103104| Field | Meaning |105|---|---|106| `requirement_code` | New requirement ID. |107| `requirement_doc` | Markdown path. |108| `capability` | Capability folder updated. |109| `index_updates` | Requirement index/overview files updated. |110| `validator_plan` | New validator, existing validator, manual review, or runtime test. |111| `feature_followup` | Feature(s) that should include the requirement. |112| `validation` | Checks run and remaining gaps. |