SKILL.md
SimReady Add Capability
Purpose
Use this skill when a new requirement does not fit an existing capability. A capability groups related requirements and their validators under nvcore/srspecs/docs/capabilities/.
After creating the capability, use simready-foundation-add-requirement for each requirement and simready-foundation-add-validator for executable checks.
Prerequisites
Before editing, read:
AGENTS.mdnvcore/srspecs/docs/guides/guides.mdnvcore/srspecs/docs/guides/naming_conventions.mdnvcore/srspecs/docs/guides/featuresexpansionworkflow.md- existing neighboring capability folders
nvcore/srspecs/docs/capabilities/capabilities.mdnvcore/srspecs/docs/capabilities/init.py
No network access, API key, or external service is required for the authoring pass.
Inputs
Collect or infer:
| Input | Requirement |
|---|---|
capability_group |
Existing top-level group such as physics_bodies, visualization, or a new group if justified. |
capability_slug |
Snake_case folder name. |
display_name |
Human-readable capability name. |
scope |
What requirement family belongs here. |
requirement_prefix |
Requirement code prefix, if new. |
initial_requirements |
Optional first requirement docs to add. |
validator_scope |
Whether validation is objective, manual, runtime, or deferred. |
Instructions
Use this checklist when changing the repository:
- Confirm no existing capability already covers the scope.
- Choose names using the naming guide:
- group folder: snakecase - folder: snakecase - overview: capability-<folder_name>.md - requirement docs: kebab-case
- Create the capability folder in the appropriate group; if the group is new, add the group landing page too.
- Add
capability-<slug>.mdwith purpose, scope, requirement table, related capabilities, and validation notes. - Add
requirements.mdwith{requirements-table}and a toctree for requirement docs. - Add an empty or initial
requirements/folder content only for real requirements. - Add
validation.pywith imports and placeholder structure only when validators are planned; otherwise document deferred validation in the capability overview. - Update parent group toctrees, group landing pages, and global capability indexes, including
capabilities.mdwhen needed. - Update
capabilities/init.pyimports when a new validation module must be registered. - Validate consistency:
- folder and overview names match - requirements index builds conceptually - validator registration path is documented - no duplicate requirement prefix or capability slug exists
Examples
Example request:
Add a SimReady capability for factory connection points, with requirement index registration and a validation plan.
Expected result summary:
capability_path: nv_core/sr_specs/docs/capabilities/<group>/<capability_slug>
overview_doc: capability-<capability_slug>.md
requirements_index: requirements.md
validation_module: validation.py or deferred
next_step: add concrete requirements with simready-foundation-add-requirement
Policies
- Prefer adding requirements to an existing capability when the domain already exists.
- Do not create a capability as a thin wrapper for one feature unless the requirement family is truly distinct.
- Keep capability docs about requirement families, not profile workflows.
- Make validation status explicit; incomplete validators are acceptable only when called out.
Limitations
- Do not create new feature or profile versions from this skill; hand off to the relevant add/update feature or profile skill.
- Do not invent requirement IDs when the capability scope is still ambiguous; record the naming question instead.
- Do not add executable validators unless the objective checks and registration path are clear.
Troubleshooting
- Error: an existing capability already owns the scope. Solution: update that capability instead of creating a parallel one.
- Error: the validator registration path is unclear. Solution: document deferred validation in the overview and list the exact follow-up.
- Error: indexes and folder names disagree. Solution: re-check the naming guide, then align folder, overview, requirements index, and imports.
Resources
assets/openai.yamlpreserves optional UI metadata for clients that read skill display hints. It is not required for the authoring workflow.
Summary Format
Report:
| Field | Meaning |
|---|---|
capability_path |
New capability folder. |
overview_doc |
Capability overview path. |
requirements_index |
Requirements index path. |
validation_module |
Validator path or deferred. |
initial_requirements |
Requirement IDs added, if any. |
indexes_changed |
Global/group index files changed. |
next_step |
Add requirements, validators, features, or review. |