diff --git a/AGENTS.md b/AGENTS.md index 60b08a90da..6f6d47a911 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -94,7 +94,7 @@ Both `HEAD~n` and `git rebase -i HEAD~n` are safe because they only operate on c ## Setting up the local platform -Before doing anything that requires a running NeMo platform (`nemo services`, `nemo agents invoke`, etc.), follow [SETUP.md](SETUP.md). It covers `make bootstrap`, the data-dir layout, DB reset, and the manual `nemo services run` path. The same content is symlinked into `.agents/skills/nemo-setup/SKILL.md` so coding agents pick it up automatically — you do not need to install it via `nemo skills install`. +Before doing anything that requires a running NeMo platform (`nemo services`, `nemo agents invoke`, etc.), follow [skills/nemo-setup/SKILL.md](skills/nemo-setup/SKILL.md). It covers `make bootstrap`, the data-dir layout, DB reset, and the manual `nemo services run` path. You do not need to install it via `nemo skills install`. ## NeMo CLI diff --git a/README.md b/README.md index 0d3df056e7..e6a1a437e0 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ nemo setup `nemo setup` starts local services, registers your LLM provider, discovers available models, installs agent skills, and deploys a sample agent (see more below). -See **[SETUP.md](SETUP.md)** for the full setup playbook (local data dir, DB reset, manual service start, troubleshooting). Coding agents pick the same playbook up automatically via `.agents/skills/nemo-setup/SKILL.md`. +See **[skills/nemo-setup/SKILL.md](skills/nemo-setup/SKILL.md)** for the full setup playbook (local data dir, DB reset, manual service start, troubleshooting). Verify: diff --git a/packages/nemo_platform_ext/src/nemo_platform_ext/skills/inference/SKILL.md b/packages/nemo_platform_ext/src/nemo_platform_ext/skills/inference/SKILL.md index d2a38b34c2..958c476884 100644 --- a/packages/nemo_platform_ext/src/nemo_platform_ext/skills/inference/SKILL.md +++ b/packages/nemo_platform_ext/src/nemo_platform_ext/skills/inference/SKILL.md @@ -11,7 +11,7 @@ description: > OpenAI/Anthropic cross-format setups), making inference calls through IGW, or debugging routing and translation failures locally. For platform startup, Switchyard install, and DB-reset prerequisites, see the `nemo-setup` skill - (repo-level `SETUP.md`, mirrored at `.agents/skills/nemo-setup/SKILL.md`). + (`skills/nemo-setup/SKILL.md`). user-invocable: true allowed-tools: Bash, Read, Grep --- @@ -23,7 +23,7 @@ allowed-tools: Bash, Read, Grep This skill assumes the platform is already running and any required plugins (`nemo-switchyard`, `nemo-guardrails`) are loaded. For local-platform startup, Switchyard install, and DB-reset choices, follow the **`nemo-setup` skill** -(`SETUP.md` at the repo root, also at `.agents/skills/nemo-setup/SKILL.md`) +(`skills/nemo-setup/SKILL.md`) first and then return here. ## API key environment variables @@ -66,7 +66,7 @@ printf '%s' "$INFERENCE_NVIDIA_API_KEY" | nemo secrets create nvidia-inference-k - Workspace: `my-workspace` (substitute as needed; `default` also works) - Backend: `https://inference-api.nvidia.com/v1` -For platform startup (`nemo services run`), Switchyard install, and state reset, see the `nemo-setup` skill (`SETUP.md` at the repo root). +For platform startup (`nemo services run`), Switchyard install, and state reset, see the `nemo-setup` skill (`skills/nemo-setup/SKILL.md`). --- diff --git a/packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-teardown/SKILL.md b/packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-teardown/SKILL.md index db8a8190fc..3c524e06df 100644 --- a/packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-teardown/SKILL.md +++ b/packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-teardown/SKILL.md @@ -121,7 +121,7 @@ case "$DATA_DIR" in esac # Verify the platform is fully down BEFORE wiping; otherwise the running process keeps # its file descriptors open against the old inode (the "macOS unlinked-inode gotcha" -# in SETUP.md) and the next run sees ghost state. +# in skills/nemo-setup/SKILL.md) and the next run sees ghost state. lsof -iTCP:8080 -sTCP:LISTEN >/dev/null 2>&1 && { echo "PLATFORM_STILL_RUNNING — abort before wipe"; exit 1; } rm -rf "$DATA_DIR" ``` diff --git a/plugins/nemo-auditor/README.md b/plugins/nemo-auditor/README.md index 98051636bf..2b868b49fa 100644 --- a/plugins/nemo-auditor/README.md +++ b/plugins/nemo-auditor/README.md @@ -11,7 +11,7 @@ Before running the `nemo auditor configs create` and `nemo auditor targets create` commands below, make sure you have: - **NeMo CLI installed and platform running** — follow - [SETUP.md](../../SETUP.md) (`make bootstrap` + `nemo setup`). + [skills/nemo-setup/SKILL.md](../../skills/nemo-setup/SKILL.md) (`make bootstrap` + `nemo setup`). - **CLI pointed at the platform** — `nemo setup` configures `http://localhost:8080` automatically; otherwise set it explicitly with `nemo config set --base-url `. diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer b/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer new file mode 120000 index 0000000000..1f10b51561 --- /dev/null +++ b/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer @@ -0,0 +1 @@ +../../../../../skills/nemo-data-designer-plugin \ No newline at end of file diff --git a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin b/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin new file mode 120000 index 0000000000..3b8e3317c7 --- /dev/null +++ b/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin @@ -0,0 +1 @@ +../../../../../skills/nemo-evaluator-plugin \ No newline at end of file diff --git a/sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.md b/sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.md index d2a38b34c2..958c476884 100644 --- a/sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.md +++ b/sdk/python/nemo-platform/src/nemo_platform/skills/inference/SKILL.md @@ -11,7 +11,7 @@ description: > OpenAI/Anthropic cross-format setups), making inference calls through IGW, or debugging routing and translation failures locally. For platform startup, Switchyard install, and DB-reset prerequisites, see the `nemo-setup` skill - (repo-level `SETUP.md`, mirrored at `.agents/skills/nemo-setup/SKILL.md`). + (`skills/nemo-setup/SKILL.md`). user-invocable: true allowed-tools: Bash, Read, Grep --- @@ -23,7 +23,7 @@ allowed-tools: Bash, Read, Grep This skill assumes the platform is already running and any required plugins (`nemo-switchyard`, `nemo-guardrails`) are loaded. For local-platform startup, Switchyard install, and DB-reset choices, follow the **`nemo-setup` skill** -(`SETUP.md` at the repo root, also at `.agents/skills/nemo-setup/SKILL.md`) +(`skills/nemo-setup/SKILL.md`) first and then return here. ## API key environment variables @@ -66,7 +66,7 @@ printf '%s' "$INFERENCE_NVIDIA_API_KEY" | nemo secrets create nvidia-inference-k - Workspace: `my-workspace` (substitute as needed; `default` also works) - Backend: `https://inference-api.nvidia.com/v1` -For platform startup (`nemo services run`), Switchyard install, and state reset, see the `nemo-setup` skill (`SETUP.md` at the repo root). +For platform startup (`nemo services run`), Switchyard install, and state reset, see the `nemo-setup` skill (`skills/nemo-setup/SKILL.md`). --- diff --git a/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.md b/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.md index db8a8190fc..3c524e06df 100644 --- a/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.md +++ b/sdk/python/nemo-platform/src/nemo_platform/skills/nemo-teardown/SKILL.md @@ -121,7 +121,7 @@ case "$DATA_DIR" in esac # Verify the platform is fully down BEFORE wiping; otherwise the running process keeps # its file descriptors open against the old inode (the "macOS unlinked-inode gotcha" -# in SETUP.md) and the next run sees ghost state. +# in skills/nemo-setup/SKILL.md) and the next run sees ghost state. lsof -iTCP:8080 -sTCP:LISTEN >/dev/null 2>&1 && { echo "PLATFORM_STILL_RUNNING — abort before wipe"; exit 1; } rm -rf "$DATA_DIR" ``` diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/SKILL.md b/skills/nemo-data-designer-plugin/SKILL.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/SKILL.md rename to skills/nemo-data-designer-plugin/SKILL.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/nemo-platform-plugin-additions.md b/skills/nemo-data-designer-plugin/references/nemo-platform-plugin-additions.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/nemo-platform-plugin-additions.md rename to skills/nemo-data-designer-plugin/references/nemo-platform-plugin-additions.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/person-sampling.md b/skills/nemo-data-designer-plugin/references/person-sampling.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/person-sampling.md rename to skills/nemo-data-designer-plugin/references/person-sampling.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/preview-review.md b/skills/nemo-data-designer-plugin/references/preview-review.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/preview-review.md rename to skills/nemo-data-designer-plugin/references/preview-review.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/seed-datasets.md b/skills/nemo-data-designer-plugin/references/seed-datasets.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/references/seed-datasets.md rename to skills/nemo-data-designer-plugin/references/seed-datasets.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/scripts/get_person_object_schema.py b/skills/nemo-data-designer-plugin/scripts/get_person_object_schema.py similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/scripts/get_person_object_schema.py rename to skills/nemo-data-designer-plugin/scripts/get_person_object_schema.py diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/workflows/autopilot.md b/skills/nemo-data-designer-plugin/workflows/autopilot.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/workflows/autopilot.md rename to skills/nemo-data-designer-plugin/workflows/autopilot.md diff --git a/plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/workflows/interactive.md b/skills/nemo-data-designer-plugin/workflows/interactive.md similarity index 100% rename from plugins/nemo-data-designer/src/nemo_data_designer_plugin/skills/data-designer/workflows/interactive.md rename to skills/nemo-data-designer-plugin/workflows/interactive.md diff --git a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/SKILL.md b/skills/nemo-evaluator-plugin/SKILL.md similarity index 100% rename from plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/SKILL.md rename to skills/nemo-evaluator-plugin/SKILL.md diff --git a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/api-auth.md b/skills/nemo-evaluator-plugin/resources/api-auth.md similarity index 88% rename from plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/api-auth.md rename to skills/nemo-evaluator-plugin/resources/api-auth.md index b6ab0530da..56182dc2a9 100644 --- a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/api-auth.md +++ b/skills/nemo-evaluator-plugin/resources/api-auth.md @@ -8,6 +8,6 @@ Use the correct `model.api_key_secret` (if `model` is used) for the evaluator ex The remote job runtime cannot read local environment variables. In remote mode, if a model sets `api_key_secret`, create or verify the platform secret before submitting the job: ```bash -nemo secrets create nvidia-api-key --value "$NVIDIA_API_KEY" +printf '%s' "$NVIDIA_API_KEY" | nemo secrets create nvidia-api-key --from-file - nemo secrets list ``` diff --git a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/llm-judge.md b/skills/nemo-evaluator-plugin/resources/llm-judge.md similarity index 100% rename from plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/llm-judge.md rename to skills/nemo-evaluator-plugin/resources/llm-judge.md diff --git a/plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/troubleshooting.md b/skills/nemo-evaluator-plugin/resources/troubleshooting.md similarity index 100% rename from plugins/nemo-evaluator/src/nemo_evaluator/skills/evaluator-plugin/resources/troubleshooting.md rename to skills/nemo-evaluator-plugin/resources/troubleshooting.md diff --git a/SETUP.md b/skills/nemo-setup/SKILL.md similarity index 95% rename from SETUP.md rename to skills/nemo-setup/SKILL.md index 11f0bb35f7..4ae072cd3e 100644 --- a/SETUP.md +++ b/skills/nemo-setup/SKILL.md @@ -8,7 +8,7 @@ version: "0.1" Get a local NeMo platform running on `localhost:8080`. Work through the prereq questions below before bootstrapping — they shape which services start and what state survives the run. When setup is finished, [What's next?](#whats-next) maps the user's stated goal to the right follow-up skill. -> This document is the canonical setup guide. It lives at the repository root as `SETUP.md` and is symlinked into `.agents/skills/nemo-setup/SKILL.md` so coding agents (Claude Code, Cursor, Codex, OpenCode) load the same content. Unlike the other skills, it is **not** installed by `nemo skills install` — it has to be available before the platform is bootstrapped, when the CLI may not yet exist. +> This document is the canonical setup guide at `skills/nemo-setup/SKILL.md`. Unlike the other skills, it is **not** installed by `nemo skills install` — it has to be available before the platform is bootstrapped, when the CLI may not yet exist. ## Question 1 — Is a NeMo platform already running locally? @@ -177,7 +177,7 @@ CLI built-ins (always present): - **`inference`** — ModelProvider + VirtualModel + Switchyard reference. End-to-end inference flow, routing patterns, middleware ordering, troubleshooting. -> Setup itself (this document) lives at the repo root as `SETUP.md` rather than as a CLI-installable skill, since coding agents need it before the platform is bootstrapped. After `make bootstrap`, agents pick it up via `.agents/skills/nemo-setup/SKILL.md` (a symlink to `SETUP.md`). +> Setup lives at `skills/nemo-setup/SKILL.md` rather than as a CLI-installable skill, since coding agents need it before the platform is bootstrapped. Plugin-provided (appear once the plugin is installed):