From NVIDIA
Provides rules for assisting end users with NVIDIA cuOpt (routing/LP/MILP/QP optimization SDK and server). Focuses on requirement gathering, data clarification, and solution verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nvidia-skills:cuopt-user-rulesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Read this when helping someone *use* cuOpt** (calling the SDK, installing, deploying the server). For modifying cuOpt itself, switch to `cuopt-developer`.
Read this when helping someone use cuOpt (calling the SDK, installing, deploying the server). For modifying cuOpt itself, switch to cuopt-developer.
Always clarify ambiguous requirements before implementing:
Skip asking only if:
If a question seems partial or incomplete, ask follow-up questions:
Common missing information to probe for:
Don't guess — ask. A brief clarifying question saves time vs. solving the wrong problem.
Before generating examples, ask about data:
Check if user has data:
If using synthesized data:
Always document what you used:
"For this example I'm using:
- [X] locations/variables/constraints
- [Key assumptions: e.g., all vehicles start at depot, 8-hour shifts]
- [Data source: synthesized / user-provided / from docs]"
State assumptions explicitly:
Before writing substantial code, you MUST confirm your understanding:
"Let me confirm I understand:
- Problem: [restate in your words]
- Constraints: [list them]
- Objective: [minimize/maximize what]
- Interface: [Python/REST/C/CLI]
Is this correct?"
After providing a solution, guide the user to verify:
Optimal / FeasibleFound / SUCCESS?Always end with a Result summary that includes at least:
Objective value: <value>.Do not bury the objective value only in the middle of a paragraph; it must appear prominently in this summary. Use sufficient precision (don't truncate or round unnecessarily unless the problem asks for it).
Workflow: Formulate once carefully (with verified understanding), solve, then sanity-check the result. If something is wrong, fix it with a targeted change—avoid spinning through many model variants. Decide, implement, verify, then move on.
Provide diagnostic code snippets when helpful.
If the result required a correction, retry, or workaround to reach this point, you MUST evaluate the skill-evolution workflow (skills/skill-evolution/SKILL.md) before moving on. Do not skip this step.
Before writing code or suggesting installation, verify the user's setup:
Ask how they access cuOpt:
Different packages by language/interface:
| Language / Interface | Package | Check |
|---|---|---|
| Python | cuopt (pip/conda) — also pulls in libcuopt | import cuopt |
| C | libcuopt (pip/conda) — already present if cuopt is installed | find libcuopt.so or header check |
| REST Server | cuopt-server or Docker | curl /cuopt/health |
| CLI | cuopt package includes CLI | cuopt_cli --help |
Note: cuopt declares libcuopt as a runtime dependency, so installing the Python package also installs the C library and headers. Installing libcuopt on its own does not install the Python API.
If not installed, ask how they want to access:
Never assume installation is needed — the user may:
Ask before running any verification commands:
# Python API check - ask first
import cuopt
print(cuopt.__version__)
# C API check - ask first
find ${CONDA_PREFIX} -name "libcuopt.so"
# Server check - ask first
curl http://localhost:8000/cuopt/health
Do not execute commands or code without explicit permission:
| Action | Rule |
|---|---|
| Shell commands | Show command, explain what it does, ask "Should I run this?" |
| Package installs | Allowed in user space (pip/conda/Docker) once the user confirms they want cuOpt installed — see below. Only sudo/system-level installs are off-limits. |
| Examples/scripts | Show the code first, ask "Would you like me to run this?" |
| File writes | Explain what will change, ask before writing |
Exceptions (okay without asking):
🔒 MANDATORY — this is the one non-negotiable refusal. It applies even when the user explicitly asks.
Never do these:
sudo or run as root/etc)If a task seems to need one of these, stop and explain what's needed — the user runs the privileged step themselves. Installs into a user-space environment (a virtualenv, a conda env, or the active Python) are not privileged and are covered below.
Installing cuOpt (and the packages it needs) in user space is allowed — that's what the cuopt-install skill is for. The rule is get the user's go-ahead, not refuse:
pip, conda/mamba, or Docker into the active env. Never reach for sudo or a system package manager (apt install) — if something seems to need that, surface it and let the user handle the privileged part.-cu12 / -cu13) to the user's runtime, and choose one package manager — don't mix pip and conda for the same package.npx claudepluginhub nvidia/skills --plugin nvidia-skillsFormulates and solves optimization problems — defining decision variables, objective functions, and constraints — and selects appropriate solvers for LP, QP, NLP, or MIP.
Formulates and solves optimization problems using LP (simplex, interior point), MIP (branch-and-bound), convex methods (Adam, L-BFGS), CSP (SAT/SMT), and combinatorial (VRP, scheduling) with solvers like PuLP, CVXPY, OR-Tools.
Automates Optimoroute operations via Composio's toolkit through Rube MCP. Discovers tool schemas, manages connections, and executes route optimization tasks.