Best for
- Use when the user wants to create, edit, validate, or adapt an agent.
NVIDIA-NeMo/nemo-platform/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.md
Author and validate Platform-managed NeMo Agents agent.yaml files using the nemo-agents-spec-v1 format. Use when the user wants to create, edit, validate, or adapt an agent.yaml file, choose a supported harness, add instructions, skills, MCP servers, tools, environment, or telemetry.
Decision brief
Create or edit the Platform-managed agent.yaml for a NeMo Agent. This skill owns the machine-readable config shape for nemo-agents-spec-v1; nemo-build-agent owns the full build/deploy/eval workflow.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/NVIDIA-NeMo/nemo-platform --skill "sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config"Inspect the Agent Skill "nemo-agent-config" from https://github.com/NVIDIA-NeMo/nemo-platform/blob/f2d56031d6a584e8064024bbc3a8cad368ec33a7/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.md at commit f2d56031d6a584e8064024bbc3a8cad368ec33a7. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
If the user has an existing NAT workflow YAML and wants the new Platform-managed agent.yaml format, treat the migration as best-effort authoring. Do not overwrite the original NAT YAML unless the user explicitly asks.
The local config lives next to the human-readable agent spec:
1. Confirm the agent name and config path. Default to agents/-spec/agent.yaml. 2. Select one supported harness: - codex - hermes - deepagents - claude 3. Invoke nemo-model-selection to select and compatibility-test the model for the chosen harness. Configure models.default only…
Use this structure. Keep unknown fields out of the YAML; the Platform validator rejects unsupported fields instead of passing arbitrary execution config through.
Use a harness-local model only when that harness should override the default.
Permission review
The documentation includes network, browsing, or remote request actions.
valid inference request through the required wire API.Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 56 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Create or edit the Platform-managed agent.yaml for a NeMo Agent. This skill
owns the machine-readable config shape for nemo-agents-spec-v1; nemo-build-agent
owns the full build/deploy/eval workflow.
Use product-facing Platform language. Do not ask users to write raw Fabric SDK configuration. Fabric is an implementation dependency behind the Platform-managed agent config.
The local config lives next to the human-readable agent spec:
agents/<agent-name>-spec/
AGENT-SPEC.md
agent.yaml
The platform stores the parsed agent.yaml contents in the Agent.config
payload with:
config_format: nemo-agents-spec-v1
The canonical remote config location is derivable from workspace and agent name:
<workspace>/<agent-name>-spec#agent.yaml. Do not invent a separate ref field.
agents/<agent-name>-spec/agent.yaml.codexhermesdeepagentsclaudenemo-model-selection to select and compatibility-test the model for
the chosen harness. Configure models.default only after that skill returns
a verified provider and exact model name. Add a harness-local model
override only when that harness intentionally uses a different verified
provider, model, credential env var, or base URL.references/templates/agent.yaml unless the user is editing an
existing file. Write only the verified model fields returned in Step 3.instructions.system.content.agent.yaml.nemo agents create against the config. Do not treat a
successful create as validation of an unused or untested harness.For the standard subprocess or default-image deployment path, keep
skills.paths empty. Registration validates relative skill paths against the
authoring directory, but these deployment paths currently materialize only
agent.yaml and do not stage the referenced directories.
When non-empty skills.paths are required, each path must be relative to
agent.yaml, remain inside its packaging context, and contain SKILL.md.
Require the explicit image-packaging path before deployment:
IMAGE_TAG="${AGENT_NAME}:local"
.venv/bin/nemo agents package \
--agent "agents/$AGENT_NAME-spec/agent.yaml" \
--tag "$IMAGE_TAG"
Deploy that image with --mode docker --image "$IMAGE_TAG"; publish it first
and use the published tag for Kubernetes. Do not use a subprocess or
default-image deployment for an agent with relative skills.paths.
If the user has an existing NAT workflow YAML and wants the new Platform-managed
agent.yaml format, treat the migration as best-effort authoring. Do not
overwrite the original NAT YAML unless the user explicitly asks.
Map only fields with a clear Platform equivalent:
| NAT workflow concept | Platform agent.yaml target |
|---|---|
| LLM/provider/model block | models.default or a harness-local model |
| System prompt or workflow prompt | instructions.system.content |
| Workflow/tool loop choice | default_harness plus harnesses.<name>.kind |
| Tool/function references | skills.paths, mcp.servers, tools.blocked, or harness settings when clearly supported |
| Tracing or telemetry settings | telemetry |
For a NAT codex_agent workflow, apply this mapping instead of copying the
workflow fields into harnesses.codex.settings:
| NAT Codex field | Platform agent.yaml target |
|---|---|
working_directory | environment.workspace |
sandbox_mode | harnesses.codex.settings.sandbox |
approval_policy: never | harnesses.codex.settings.approval_mode: deny_all when the installed descriptor declares it; otherwise omit |
relay_atof_output_dir | environment.artifacts, telemetry.output_dir, and telemetry.atof |
skip_git_repo_check | Omit; removed CLI-only setting |
timeout_seconds | Omit unless the installed Codex adapter settings schema declares it |
max_output_chars | Omit; no current Codex adapter setting |
prefer_chatgpt_auth | Omit; authentication is selected by the Codex adapter and model configuration |
Treat the installed Fabric adapter descriptor's settings_schema as
authoritative. Only place keys declared under its properties in
harnesses.<name>.settings; do not preserve an unsupported NAT setting merely
because it existed in the source workflow. Surface omitted behavior in the
migration summary. For Codex, map never to deny_all only when
settings_schema.properties.approval_mode.enum includes deny_all.
If behavior does not map cleanly, say so directly and choose one:
agent.yaml starter for
manual completion.Never claim a mechanical one-to-one conversion for arbitrary NAT workflows.
Use this structure. Keep unknown fields out of the YAML; the Platform validator rejects unsupported fields instead of passing arbitrary execution config through.
config_format: nemo-agents-spec-v1
name: <agent-name>
description: <short description>
instructions:
system:
content: <system instructions>
default_harness: codex
harnesses:
codex:
kind: codex
settings:
sandbox: workspace-write
reasoning_effort: high
models:
default:
provider: <verified-provider>
model: <verified-platform-model-name>
api_key_env: <credential-env-var-if-needed>
skills:
paths: []
mcp:
servers: {}
tools:
blocked: []
environment:
workspace: ./workspace
artifacts: ./artifacts
telemetry:
enabled: false
provider: relay
output_dir: ./artifacts/relay
project: <agent-name>
Use a harness-local model only when that harness should override the default.
harnesses:
hermes:
kind: hermes
model:
provider: <verified-provider>
model: <verified-model-name>
api_key_env: <credential-env-var-if-needed>
base_url: <provider-base-url-if-needed>
temperature: 0.0
settings:
max_tokens: 512
reasoning_config:
effort: none
If base_url is needed, put it directly in the model block, not under
settings.
Use nemo-model-selection for every harness. It must verify the exact model
against that harness's model contract before returning it: Responses for
codex, the selected provider's chat path for hermes and deepagents, and
the native Anthropic provider contract for claude. Do not route Claude
through Platform IGW. Do not write or finalize agent.yaml if model selection
cannot establish a compatible model. For Platform-routed models, availability,
provider metadata, config validation, and Fabric planning do not replace a
valid inference request through the required wire API.
Before registering, validate the YAML shape with the Platform create path.
Immediately before running nemo agents create, show the command to the user,
ask for explicit confirmation, and wait for approval.
.venv/bin/nemo agents create \
--name "$AGENT_NAME" \
--agent-config "agents/$AGENT_NAME-spec/agent.yaml"
If validation fails, fix the named field in agent.yaml and retry. Do not
silence validation errors by moving unknown fields into settings.
After create succeeds, show the nemo agents deploy command to the user, ask
for explicit confirmation, and wait for approval before running it.
.venv/bin/nemo agents deploy \
--agent "$AGENT_NAME" \
--name "$AGENT_NAME-deployment"
The deploy command waits for running by default. After it succeeds, invoke the
same explicitly named deployment without another confirmation:
.venv/bin/nemo agents invoke \
--agent-deployment "$AGENT_NAME-deployment" \
--input "<test prompt>"
For local one-shot validation without registering an Agent entity, use this only when the selected model already has a directly usable provider endpoint and credentials. Platform IGW normalization is applied by the registered deployment path, not this local path:
.venv/bin/nemo agents invoke \
--agent-config "agents/$AGENT_NAME-spec/agent.yaml" \
--input "<test prompt>"
For a local persistent server, bind to loopback by default. Use an externally accessible host only when the user explicitly asks to expose the server:
.venv/bin/nemo agents run \
--agent-config "agents/$AGENT_NAME-spec/agent.yaml" \
--host 127.0.0.1 \
--port 8080
| Symptom | Cause | Recovery |
|---|---|---|
root must be a YAML mapping | Empty file or list/scalar at the root | Replace with the template shape |
extra fields not permitted | Unknown Platform config field | Remove it or map it into a supported field |
default_harness must reference one of harnesses | default_harness does not match a key under harnesses | Rename one side so they match |
Unsupported harness kind | Harness kind is not supported by the Platform translator | Pick codex, hermes, deepagents, or claude |
| Local file path missing in deployment | Referenced prompts, skills, or assets were not staged | Keep paths relative and package the complete agent bundle into the deployed image |
| Adapter import or binary missing | Selected harness dependency is not installed in the runtime | Install the selected adapter/runtime dependency or choose a harness already available |
config_format: nemo-agents-spec-v1.agent.yaml directory.instructions.system.content.prompts for the default path; top-level prompts are not translated yet.model always wins over
models.default.nemo agents create is the
user-facing validation command.agent.yaml is the implementation config, not the design spec.
AGENT-SPEC.md explains what the agent should do; agent.yaml tells the
Platform how to run it.nemo-build-agent and use its NAT template.Alternatives
drafthq/draft
Decompose project or track into modules with dependency mapping. Project scope updates architecture.md and derives .ai-context.md. Track scope generates hld.md (always) and lld.md (when --lld or High-complexity module triggers it) — design-mandated artifacts that drive implement, deploy-checklist, and upload sign-off.
JasonColapietro/suede-creator-skills
Suede-owned Instagram growth operating system for account-specific audits, Reels, carousels, Stories, conversion mapping, calendars, and daily candidate-production loops. Use when the user names Instagram, IG, Reels, Stories, asks to analyze recent posts, grow a handle, run a daily workflow, create or repurpose Instagram content, or distinguish views from follows, leads, and sales. NOT FOR: multi-platform organic strategy (use suede-social), full video rendering or editing (use suede-video), pai
mission69b/t2000
Publishing, upgrading, and deploying Sui Move packages. Use this skill when the user needs to publish a package, upgrade a published package, deploy to multiple networks, serialize transactions for multisig signing, run a local Sui network (localnet), prepare for Mainnet launch, monitor production deployments, or debug dry run failures. Also use when the user asks about sui client publish, sui client upgrade, UpgradeCap, upgrade policies, Published.toml, --serialize-output, localnet, mainnet lau
eugenelim/agent-ready-repo
Use to drive the deployed end-to-end validation outer loop — deploy the integrated whole to an ephemeral environment, run e2e, observe telemetry, feed deployed findings back to work-loop's inner loop, redeploy, and iterate until the deployed whole converges, then stop at the human consent gate for the prod ship. Run by the release-lead agent (a peer of work-loop's supervisor, not a work-loop mode). Triggers on "run the release loop", "deploy the integrated whole and iterate", "ship it to an ephe