skills: consolidate three numerical-optimization API skills into one#1489
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR consolidates cuOpt numerical optimization documentation into a single ChangesUnified numerical optimization skill
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/cuopt-numerical-optimization-api/evals/evals.json`:
- Around line 3-129: The eval entries are still referencing removed
per-interface skill IDs instead of the consolidated cuOpt skill. Update every
expected_skill in this evals.json block to use cuopt-numerical-optimization-api
so the targets map to the merged registry entry. Keep the questions,
ground_truth, and expected_behavior unchanged; only swap the skill identifier
consistently across all affected eval cases.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 133bb99f-fdbe-436f-889c-2b2021476aae
⛔ Files ignored due to path filters (5)
skills/cuopt-numerical-optimization-api/assets/c/mps_solver/data/sample.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/lp_production/production.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/lp_simple/sample.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/milp_facility/facility.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/sample.mpsis excluded by!**/*.mps
📒 Files selected for processing (67)
.claude-plugin/marketplace.jsonAGENTS.mdskillcritic-report.txtskills/cuopt-multi-objective-exploration/SKILL.mdskills/cuopt-numerical-optimization-api-c/BENCHMARK.mdskills/cuopt-numerical-optimization-api-c/SKILL.mdskills/cuopt-numerical-optimization-api-c/evals/evals.jsonskills/cuopt-numerical-optimization-api-c/references/examples.mdskills/cuopt-numerical-optimization-api-c/skill-card.mdskills/cuopt-numerical-optimization-api-c/skill.oms.sigskills/cuopt-numerical-optimization-api-cli/BENCHMARK.mdskills/cuopt-numerical-optimization-api-cli/SKILL.mdskills/cuopt-numerical-optimization-api-cli/evals/evals.jsonskills/cuopt-numerical-optimization-api-cli/skill-card.mdskills/cuopt-numerical-optimization-api-cli/skill.oms.sigskills/cuopt-numerical-optimization-api-python/BENCHMARK.mdskills/cuopt-numerical-optimization-api-python/SKILL.mdskills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.mdskills/cuopt-numerical-optimization-api-python/benchmark/evals.jsonskills/cuopt-numerical-optimization-api-python/evals/evals.jsonskills/cuopt-numerical-optimization-api-python/skill-card.mdskills/cuopt-numerical-optimization-api-python/skill.oms.sigskills/cuopt-numerical-optimization-api/SKILL.mdskills/cuopt-numerical-optimization-api/assets/c/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_basic/lp_simple.cskills/cuopt-numerical-optimization-api/assets/c/lp_duals/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_duals/lp_duals.cskills/cuopt-numerical-optimization-api/assets/c/lp_warmstart/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_basic/milp_simple.cskills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/milp_production.cskills/cuopt-numerical-optimization-api/assets/c/mps_solver/README.mdskills/cuopt-numerical-optimization-api/assets/c/mps_solver/mps_solver.cskills/cuopt-numerical-optimization-api/assets/cli/README.mdskills/cuopt-numerical-optimization-api/assets/cli/lp_production/README.mdskills/cuopt-numerical-optimization-api/assets/cli/lp_simple/README.mdskills/cuopt-numerical-optimization-api/assets/cli/milp_facility/README.mdskills/cuopt-numerical-optimization-api/assets/python/README.mdskills/cuopt-numerical-optimization-api/assets/python/least_squares/README.mdskills/cuopt-numerical-optimization-api/assets/python/least_squares/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_basic/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_duals/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_duals/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/model.pyskills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/README.mdskills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/model.pyskills/cuopt-numerical-optimization-api/assets/python/milp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/python/milp_basic/incumbent_callback.pyskills/cuopt-numerical-optimization-api/assets/python/milp_basic/model.pyskills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/README.mdskills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/model.pyskills/cuopt-numerical-optimization-api/assets/python/mps_solver/README.mdskills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/README.mdskills/cuopt-numerical-optimization-api/assets/python/mps_solver/model.pyskills/cuopt-numerical-optimization-api/assets/python/mps_solver/results.mdskills/cuopt-numerical-optimization-api/assets/python/portfolio/README.mdskills/cuopt-numerical-optimization-api/assets/python/portfolio/model.pyskills/cuopt-numerical-optimization-api/evals/evals.jsonskills/cuopt-numerical-optimization-api/references/c_api.mdskills/cuopt-numerical-optimization-api/references/cli_api.mdskills/cuopt-numerical-optimization-api/references/python_api.mdskills/cuopt-numerical-optimization-api/references/qp_examples.mdskills/cuopt-skill-evolution/SKILL.md
💤 Files with no reviewable changes (17)
- skills/cuopt-numerical-optimization-api-cli/SKILL.md
- skills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.md
- skills/cuopt-numerical-optimization-api-c/evals/evals.json
- skills/cuopt-numerical-optimization-api-python/skill-card.md
- skills/cuopt-numerical-optimization-api-cli/evals/evals.json
- skills/cuopt-numerical-optimization-api-python/skill.oms.sig
- skills/cuopt-numerical-optimization-api-c/skill-card.md
- skills/cuopt-numerical-optimization-api-c/skill.oms.sig
- skills/cuopt-numerical-optimization-api-c/SKILL.md
- skills/cuopt-numerical-optimization-api-c/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-cli/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-python/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-python/evals/evals.json
- skills/cuopt-numerical-optimization-api-python/SKILL.md
- skills/cuopt-numerical-optimization-api-cli/skill.oms.sig
- skills/cuopt-numerical-optimization-api-c/references/examples.md
- skills/cuopt-numerical-optimization-api-cli/skill-card.md
CI Test Summary1 failed · 17 passed · 3 skipped |
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Merged cuopt-numerical-optimization-api-python, -api-c, and -api-cli into a single cuopt-numerical-optimization-api skill. Shared concepts (LP/MILP/QP selection, QP rules, dual values, common issues) live in SKILL.md; interface- specific syntax and examples move to references/python_api.md, references/c_api.md, and references/cli_api.md. Assets reorganized under assets/python/, assets/c/, and assets/cli/. Evals merged (9 total). Updated AGENTS.md, marketplace.json, and cross-references in cuopt-multi-objective-exploration and cuopt-skill-evolution. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7049317 to
53bca34
Compare
Skill evaluation — PR #1489 (merged
|
| Config | pass@1 | pass@3 | avg steps | avg tokens | avg wall |
|---|---|---|---|---|---|
| PR #1489 — run 1 | 83.8% | 91.9% | 4.4 | 33,938 | 68.7 s |
| PR #1489 — run 2 | 87.5% | 94.9% | 4.5 | 31,102 | 50.8 s |
latest main |
84.8% | 94.9% | 3.9 | 30,459 | 51.8 s |
| no-skills | 81.1% | 88.9% | 4.9 | 31,602 | 85.8 s |
Findings
- No regression from the consolidation. Across two full runs the merged skill matches main (pass@3 94.9% = 94.9%; pass@1 within noise). Both skill configs beat no-skills on accuracy, steps, and time.
- The earlier PR-vs-main gap was sampling noise — run-to-run swing is ~±3–4 pp. The 3 evals that flipped between the two identical PR runs (
lpmilp-020,lpmilp-047,lpmilp-060) are exactly the borderline ones. - The skill is used fully: the agent loads the merged skill at the same rate as main's separate skill and reliably opens
references/python_api.md— progressive disclosure works. - Minor structural token cost: the merged skill's routing needs a second tool call (
SKILL.md→references/python_api.md) to reach the Python details that main's self-containedSKILL.mddelivers in one load — i.e. ≥1 extra tool-call round when the skill is used. The effect is small (net ~+11% tokens, and it washed out in run 2). Optional: inline the common Python path intoSKILL.mdto remove it. - Benchmark note (not a skill issue): eval
lpmilp-047is a goal-programming problem — pass/fail is a coin-flip on whether the agent reports the goal-deviation objective (0, legitimately) vs the profit (11250, the ground truth).
Eval harness and raw per-attempt results available on request.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/cuopt-numerical-optimization-api/references/c_api.md`:
- Around line 73-81: Check the result of cuOptSolve in the sample before using
solution, since cuOptGetObjectiveValue and cuOptGetPrimalSolution should only be
called after a successful solve. Update the example around cuOptSolve,
cuOptGetObjectiveValue, and cuOptGetPrimalSolution to guard the subsequent reads
with a success check on status, and only then print the objective and primal
values to avoid using an invalid solution handle.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: e13a383e-c5d8-45b8-856d-711db363abcb
⛔ Files ignored due to path filters (5)
skills/cuopt-numerical-optimization-api/assets/c/mps_solver/data/sample.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/lp_production/production.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/lp_simple/sample.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/cli/milp_facility/facility.mpsis excluded by!**/*.mpsskills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/sample.mpsis excluded by!**/*.mps
📒 Files selected for processing (67)
.claude-plugin/marketplace.jsonAGENTS.mdskillcritic-report.txtskills/cuopt-multi-objective-exploration/SKILL.mdskills/cuopt-numerical-optimization-api-c/BENCHMARK.mdskills/cuopt-numerical-optimization-api-c/SKILL.mdskills/cuopt-numerical-optimization-api-c/evals/evals.jsonskills/cuopt-numerical-optimization-api-c/references/examples.mdskills/cuopt-numerical-optimization-api-c/skill-card.mdskills/cuopt-numerical-optimization-api-c/skill.oms.sigskills/cuopt-numerical-optimization-api-cli/BENCHMARK.mdskills/cuopt-numerical-optimization-api-cli/SKILL.mdskills/cuopt-numerical-optimization-api-cli/evals/evals.jsonskills/cuopt-numerical-optimization-api-cli/skill-card.mdskills/cuopt-numerical-optimization-api-cli/skill.oms.sigskills/cuopt-numerical-optimization-api-python/BENCHMARK.mdskills/cuopt-numerical-optimization-api-python/SKILL.mdskills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.mdskills/cuopt-numerical-optimization-api-python/benchmark/evals.jsonskills/cuopt-numerical-optimization-api-python/evals/evals.jsonskills/cuopt-numerical-optimization-api-python/skill-card.mdskills/cuopt-numerical-optimization-api-python/skill.oms.sigskills/cuopt-numerical-optimization-api/SKILL.mdskills/cuopt-numerical-optimization-api/assets/c/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_basic/lp_simple.cskills/cuopt-numerical-optimization-api/assets/c/lp_duals/README.mdskills/cuopt-numerical-optimization-api/assets/c/lp_duals/lp_duals.cskills/cuopt-numerical-optimization-api/assets/c/lp_warmstart/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_basic/milp_simple.cskills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/README.mdskills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/milp_production.cskills/cuopt-numerical-optimization-api/assets/c/mps_solver/README.mdskills/cuopt-numerical-optimization-api/assets/c/mps_solver/mps_solver.cskills/cuopt-numerical-optimization-api/assets/cli/README.mdskills/cuopt-numerical-optimization-api/assets/cli/lp_production/README.mdskills/cuopt-numerical-optimization-api/assets/cli/lp_simple/README.mdskills/cuopt-numerical-optimization-api/assets/cli/milp_facility/README.mdskills/cuopt-numerical-optimization-api/assets/python/README.mdskills/cuopt-numerical-optimization-api/assets/python/least_squares/README.mdskills/cuopt-numerical-optimization-api/assets/python/least_squares/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_basic/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_duals/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_duals/model.pyskills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/README.mdskills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/model.pyskills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/README.mdskills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/model.pyskills/cuopt-numerical-optimization-api/assets/python/milp_basic/README.mdskills/cuopt-numerical-optimization-api/assets/python/milp_basic/incumbent_callback.pyskills/cuopt-numerical-optimization-api/assets/python/milp_basic/model.pyskills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/README.mdskills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/model.pyskills/cuopt-numerical-optimization-api/assets/python/mps_solver/README.mdskills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/README.mdskills/cuopt-numerical-optimization-api/assets/python/mps_solver/model.pyskills/cuopt-numerical-optimization-api/assets/python/mps_solver/results.mdskills/cuopt-numerical-optimization-api/assets/python/portfolio/README.mdskills/cuopt-numerical-optimization-api/assets/python/portfolio/model.pyskills/cuopt-numerical-optimization-api/evals/evals.jsonskills/cuopt-numerical-optimization-api/references/c_api.mdskills/cuopt-numerical-optimization-api/references/cli_api.mdskills/cuopt-numerical-optimization-api/references/python_api.mdskills/cuopt-numerical-optimization-api/references/qp_examples.mdskills/cuopt-skill-evolution/SKILL.md
💤 Files with no reviewable changes (17)
- skills/cuopt-numerical-optimization-api-python/skill.oms.sig
- skills/cuopt-numerical-optimization-api-c/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-cli/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-c/skill-card.md
- skills/cuopt-numerical-optimization-api-c/evals/evals.json
- skills/cuopt-numerical-optimization-api-python/evals/evals.json
- skills/cuopt-numerical-optimization-api-cli/evals/evals.json
- skills/cuopt-numerical-optimization-api-cli/skill-card.md
- skills/cuopt-numerical-optimization-api-python/BENCHMARK.md
- skills/cuopt-numerical-optimization-api-cli/skill.oms.sig
- skills/cuopt-numerical-optimization-api-python/SKILL.md
- skills/cuopt-numerical-optimization-api-c/SKILL.md
- skills/cuopt-numerical-optimization-api-c/skill.oms.sig
- skills/cuopt-numerical-optimization-api-c/references/examples.md
- skills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.md
- skills/cuopt-numerical-optimization-api-cli/SKILL.md
- skills/cuopt-numerical-optimization-api-python/skill-card.md
✅ Files skipped from review due to trivial changes (5)
- skills/cuopt-numerical-optimization-api/references/cli_api.md
- skillcritic-report.txt
- skills/cuopt-multi-objective-exploration/SKILL.md
- AGENTS.md
- skills/cuopt-numerical-optimization-api/references/python_api.md
🚧 Files skipped from review as they are similar to previous changes (2)
- skills/cuopt-numerical-optimization-api/evals/evals.json
- .claude-plugin/marketplace.json
| status = cuOptSolve(problem, settings, &solution); | ||
|
|
||
| cuopt_float_t obj; | ||
| cuOptGetObjectiveValue(solution, &obj); | ||
| printf("Objective: %f\n", obj); | ||
|
|
||
| cuopt_float_t* sol = malloc(num_variables * sizeof(cuopt_float_t)); | ||
| cuOptGetPrimalSolution(solution, sol); | ||
| printf("x1=%f x2=%f\n", sol[0], sol[1]); |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the referenced doc sample with line numbers
sed -n '55,95p' skills/cuopt-numerical-optimization-api/references/c_api.md | cat -n
# Find the API declaration and any docs for cuOptSolve / objective / primal getters
rg -n "cuOptSolve|cuOptGetObjectiveValue|cuOptGetPrimalSolution|CUOPT_SUCCESS" -S .Repository: NVIDIA/cuopt
Length of output: 50370
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Read the API declarations and comments for solve/getters
sed -n '910,1005p' cpp/include/cuopt/mathematical_optimization/cuopt_c.h | cat -n
# Read the implementation around cuOptSolve / getters to see what happens on failure
sed -n '1070,1225p' cpp/src/pdlp/cuopt_c.cpp | cat -n
# Inspect the corresponding maintained example for the same pattern
sed -n '60,110p' skills/cuopt-numerical-optimization-api/assets/c/lp_basic/lp_simple.c | cat -nRepository: NVIDIA/cuopt
Length of output: 14214
Check cuOptSolve before reading solution.
cuOptGetObjectiveValue and cuOptGetPrimalSolution should only run when cuOptSolve(...) succeeds; otherwise solution may be invalid and the sample can crash or print garbage.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@skills/cuopt-numerical-optimization-api/references/c_api.md` around lines 73
- 81, Check the result of cuOptSolve in the sample before using solution, since
cuOptGetObjectiveValue and cuOptGetPrimalSolution should only be called after a
successful solve. Update the example around cuOptSolve, cuOptGetObjectiveValue,
and cuOptGetPrimalSolution to guard the subsequent reads with a success check on
status, and only then print the objective and primal values to avoid using an
invalid solution handle.
…merical-optimization-api Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com> # Conflicts: # skills/cuopt-numerical-optimization-api-cli/BENCHMARK.md # skills/cuopt-numerical-optimization-api-cli/SKILL.md # skills/cuopt-numerical-optimization-api-cli/skill-card.md # skills/cuopt-numerical-optimization-api-cli/skill.oms.sig
This SkillCritic tool output artifact was committed by mistake in the consolidation commit; it is not part of the skill and should not be tracked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
|
|
||
| ## Interface Selection | ||
|
|
||
| Choose the reference for the user's interface: |
There was a problem hiding this comment.
External modeling tools are also user interfaces to cuOpt, do we mention them here?
There was a problem hiding this comment.
We cover them as thirdparty in docs, but not here. It would be a good idea. should we add a section underneath this or a new skill would be better ?
There was a problem hiding this comment.
I don't think we need a new skill, just worth mentioning that the third party interfaces exist.
There was a problem hiding this comment.
Done — added a short note under Interface Selection that cuOpt works as a solver backend for AMPL, GAMS/GAMSPy, PuLP, and JuMP (near-zero code changes), pointing to the Third-Party Modeling Languages docs. No new skill, per your suggestion. Commit 6217a92.
…ion-api Address review feedback (@mlubin): note that cuOpt works as a solver backend for AMPL, GAMS/GAMSPy, PuLP, and JuMP with near-zero code changes, so users with an existing model in those tools need not port to the cuOpt API. Links to the Third-Party Modeling Languages docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
| If the interface is not yet clear, ask before writing any code. | ||
|
|
||
| **Already using a modeling language?** cuOpt also works as a solver backend for third-party | ||
| modeling tools — **AMPL, GAMS / GAMSPy, PuLP, and JuMP** — with near-zero code changes (point the |
There was a problem hiding this comment.
if it's an exhaustive list maybe we should add pyomo and cvxpy
There was a problem hiding this comment.
I was thinking same whether we want to maintain multiple lists, one in doc, readme and one here. May be for now I will add and we can revisit it
There was a problem hiding this comment.
Added Pyomo and CVXPY to the list under Interface Selection (commit 5403868). Verified both are real cuOpt interfaces — CVXPY is documented (LP/QP, plus beta QCQP/SOCP), and Pyomo has a CI-tested cuopt_direct integration. Agreed on the multiple-lists concern; noted to revisit consolidating the README/docs/skill lists later.
There was a problem hiding this comment.
Also propagated Pyomo and CVXPY to the docs so the skill and docs stay consistent (commit 71e2c37): added Pyomo + CVXPY sections on the Third-Party Modeling Languages page and to the introduction list, added Pyomo to the LP/MILP list in milp-features, and a Pyomo row to the convex-features table. CVXPY is intentionally left out of milp-features since it's convex-only (no MILP). Agree we should eventually maintain a single source for this list rather than three.
Address review feedback (@Iroy30): include Pyomo (cuopt_direct solver, CI-tested) and CVXPY (LP/QP, plus beta QCQP/SOCP) alongside AMPL/GAMS/PuLP/JuMP. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
Address review feedback (@Iroy30): list Pyomo and CVXPY alongside AMPL/GAMS/PuLP/JuMP across the docs so the skill and docs agree. - thirdparty_modeling_languages: new Pyomo and CVXPY sections - introduction: add both to the interfaces list - milp-features: add Pyomo (LP/MILP); CVXPY omitted here as it is convex-only (no MILP) - convex-features: add Pyomo row (CVXPY already listed) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
|
/ok to test 71e2c37 |
|
/nvskills-ci |
|
/nvskills-ci |
Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
|
/ok to test c0e777e |
cuopt PR NVIDIA/cuopt#1489 merged the three interface-specific skills (api-c, api-cli, api-python) into a single cuopt-numerical-optimization-api skill. Update the component config so the next sync pulls from the new path instead of the three now-removed ones. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
cuopt PR NVIDIA/cuopt#1489 merged the three interface-specific skills (api-c, api-cli, api-python) into a single cuopt-numerical-optimization-api skill. Update the component config so the next sync pulls from the new path instead of the three now-removed ones. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
cuopt-numerical-optimization-api-c and -cli were consolidated into cuopt-numerical-optimization-api upstream (NVIDIA/cuopt#1489) and delisted from components.d/cuopt.yml in #316. The sync deletes only within managed catalog_dirs, so these de-listed dirs lingered as orphans. Remove them. Note: -python is intentionally left; it is still referenced by the nvidia-skills plugin bundle and needs a coordinated bundle swap to the consolidated skill first. Signed-off-by: Moshe Abramovitch <moshea@nvidia.com>
Upstream (NVIDIA/cuopt#1489) merged the three cuopt-numerical-optimization-api-{c,cli,python} skills into a single cuopt-numerical-optimization-api, now live in the catalog. The nvidia-skills bundle still curated the old -python skill as its flagship cuOpt example, so the canonical -python dir couldn't be removed without breaking build-plugins.py and the Validate Plugins drift check. Swap plugins.d/nvidia-skills.yml include_skills from skills/cuopt-numerical-optimization-api-python/ to skills/cuopt-numerical-optimization-api/ and regenerate, mirroring the user-rules -> api-python swap in #305. Structural change (skill set changed) auto-bumps the plugin minor version 1.1.2 -> 1.2.0 via version-plugins.py, reflected in all three (Claude, Codex, Cursor) plugin manifests. With the include no longer pointing at it, the orphaned canonical -python dir can now be removed. Signed-off-by: Jason Dudash <jdudash@nvidia.com>
Merges
cuopt-numerical-optimization-api-python,-api-c, and-api-cliinto a singlecuopt-numerical-optimization-apiskill.SKILL.mdreferences/python_api.md,references/c_api.md,references/cli_api.mdassets/python/,assets/c/,assets/cli/AGENTS.md,marketplace.json, and cross-references🤖 Generated with Claude Code