·
Last changedVersion:
This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 1. Classified findings closed: 1. Classified findings remaining: 0. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 8.
1
None
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Closed |
1 finding
Solve LP, MILP, and QP problems from MPS or LP files via cuopt_cli. The same command and options apply across all three; QP is supported in both MPS (QPS) and LP files.
Confirm problem type and formulation (variables, objective, constraints, variable types) before coding.
This skill is CLI only (MPS or LP file input).
The first positional argument is the input file. The format is chosen automatically from the extension — MPS, QPS, and LP files are all accepted (including .gz / .bz2 compressed variants); run cuopt_cli --help for the exact list of supported extensions.
cuopt_cli --help is the authoritative list — don't work from a hard-coded subset. The CLI exposes every solver setting as a flag, generated from the parameter list at runtime: take any parameter documented in the cuOpt settings reference and replace underscores with hyphens (time_limit → --time-limit, mip_relative_gap → --mip-relative-gap). So if a parameter is documented, the flag exists; --help and the solver-settings docs are the sources of truth for names, meanings, and defaults.
A few options are CLI-specific (not solver parameters) and worth knowing because you wouldn't derive them from a parameter name:
--params-file <file> — supply many parameters from a key = value config file instead of repeating flags.--relaxation — solve the continuous relaxation of a MILP (drop integrality).--initial-solution <file> — warm-start from a solution file.Run cuopt_cli --help for the complete, current set.
MPS, QPS, and LP are precise, externally-specified file formats. Don't hand-author them from memory or from a partial recollection of the layout — column-position rules, marker conventions, the quadratic-objective encoding, and sign/scaling conventions are easy to get subtly wrong, and a malformed file either fails to parse or silently encodes a different model than intended.
If you're building a model from data (rather than solving a file you already have), define the problem through the cuOpt Python API or your preferred modeling interface — don't generate an MPS or LP file by hand to feed the CLI. These interfaces take coefficients, bounds, and variable types as native data structures, so there's no text format to get wrong. The cuOpt Python API solves and returns the solution in the same program (see the cuopt-numerical-optimization-api-python skill); a separate modeling library (e.g. PuLP, Pyomo, JuMP) can export a valid file for the CLI or call its own solver. Reach for cuopt_cli when you already have a model file — e.g. a benchmark instance or a file exported by one of these tools.
When a file is genuinely the right artifact, still generate it programmatically rather than by hand:
model.writeMPS("problem.mps") (emits a valid MPS file, including the quadratic objective for QP) and solve with cuopt_cli problem.mps.cuopt_cli.If you must read or write these formats by hand anyway, work from the format's full specification (and the cuOpt repo docs at docs/cuopt/source/cuopt-cli/ for cuOpt-specific conventions such as the quadratic-objective encoding) — not from an example alone.
Either way, validate before trusting the result: cuopt_cli logs Read file ... on a successful parse, and reports the variable/constraint counts and objective — sanity-check those against your intended model.
QP notes (beta): quadratic objectives are MINIMIZE only (for maximization, negate the objective, including the quadratic terms) and require continuous variables only (no integer variables mixed with a quadratic objective). Check cuopt_cli --help for QP-specific flags.
.lp vs .mps/.qps); an unrecognized extension is rejected before parsing. The parser error names the offending line — fix it against the format spec, or (more reliably) regenerate the file from a modeling tool rather than patching it by hand.CLI is included with the Python package (cuopt). Install via pip or conda; then run cuopt_cli --help to verify.
Get started with chainctlchainctl skill install public/nvidia/cuopt-numerical-optimization-api-cli:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/nvidia/skills/cuopt-numerical-optimization-api-cli:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
LICENSE
SKILL.md
assets/README.md
assets/lp_production/README.md
assets/lp_production/production.mps
assets/lp_simple/README.md
assets/lp_simple/sample.mps
assets/milp_facility/README.md
assets/milp_facility/facility.mps
evals/evals.json
skill-card.md
skill.oms.sig