Skip to content

skills: consolidate three numerical-optimization API skills into one#1489

Merged
ramakrishnap-nv merged 8 commits into
mainfrom
skills/consolidate-numerical-optimization-api
Jul 2, 2026
Merged

skills: consolidate three numerical-optimization API skills into one#1489
ramakrishnap-nv merged 8 commits into
mainfrom
skills/consolidate-numerical-optimization-api

Conversation

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator

Merges cuopt-numerical-optimization-api-python, -api-c, and -api-cli into a single cuopt-numerical-optimization-api skill.

  • Shared content (LP/MILP/QP selection, QP rules, dual values, common issues) in SKILL.md
  • Interface-specific syntax and examples in references/python_api.md, references/c_api.md, references/cli_api.md
  • Assets reorganized under assets/python/, assets/c/, assets/cli/
  • Evals merged (9 total)
  • Updated AGENTS.md, marketplace.json, and cross-references

🤖 Generated with Claude Code

@ramakrishnap-nv ramakrishnap-nv requested a review from a team as a code owner June 29, 2026 21:58
@ramakrishnap-nv ramakrishnap-nv requested a review from Iroy30 June 29, 2026 21:58
@coderabbitai

coderabbitai Bot commented Jun 29, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR consolidates cuOpt numerical optimization documentation into a single cuopt-numerical-optimization-api skill, adds shared Python/C/CLI references and evals, updates registry and dependent skill references, and removes legacy interface-specific skill content.

Changes

Unified numerical optimization skill

Layer / File(s) Summary
Skill doc and evals
skills/cuopt-numerical-optimization-api/SKILL.md, skills/cuopt-numerical-optimization-api/evals/evals.json
Adds the consolidated skill metadata and guidance, plus a 9-item eval set covering Python, C, and CLI numerical optimization cases.
Python and C references
skills/cuopt-numerical-optimization-api/references/python_api.md, skills/cuopt-numerical-optimization-api/references/c_api.md
Adds the Python and C reference docs with API usage, solver settings, QP constraints, dual-value rules, and reference model links.
CLI reference and cross-links
skills/cuopt-numerical-optimization-api/references/cli_api.md, .claude-plugin/marketplace.json, AGENTS.md, skills/cuopt-multi-objective-exploration/SKILL.md, skills/cuopt-skill-evolution/SKILL.md
Updates the CLI reference, marketplace entry, AGENTS guidance, and dependent skill references to use the consolidated numerical optimization API name and docs.
Legacy skill removal
skills/cuopt-numerical-optimization-api-python/*, skills/cuopt-numerical-optimization-api-c/*, skills/cuopt-numerical-optimization-api-cli/*
Removes the older interface-specific skill content, benchmarks, evals, examples, skill cards, and signatures.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • NVIDIA/cuopt#1495: Shares the same CLI skill artifacts and overlaps with the cuopt-numerical-optimization-api-cli documentation/content changes.

Suggested labels: non-breaking, Agentic

Suggested reviewers: cwilkinson76

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: consolidating three numerical-optimization API skills into one.
Description check ✅ Passed The description matches the changeset and accurately describes the consolidation, reorganized docs, assets, evals, and cross-references.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch skills/consolidate-numerical-optimization-api

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 97c51d1 and 7049317.

⛔ Files ignored due to path filters (5)
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/data/sample.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_production/production.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_simple/sample.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/milp_facility/facility.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/sample.mps is excluded by !**/*.mps
📒 Files selected for processing (67)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • skillcritic-report.txt
  • skills/cuopt-multi-objective-exploration/SKILL.md
  • skills/cuopt-numerical-optimization-api-c/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-c/SKILL.md
  • skills/cuopt-numerical-optimization-api-c/evals/evals.json
  • skills/cuopt-numerical-optimization-api-c/references/examples.md
  • skills/cuopt-numerical-optimization-api-c/skill-card.md
  • skills/cuopt-numerical-optimization-api-c/skill.oms.sig
  • skills/cuopt-numerical-optimization-api-cli/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-cli/SKILL.md
  • skills/cuopt-numerical-optimization-api-cli/evals/evals.json
  • skills/cuopt-numerical-optimization-api-cli/skill-card.md
  • skills/cuopt-numerical-optimization-api-cli/skill.oms.sig
  • skills/cuopt-numerical-optimization-api-python/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-python/SKILL.md
  • skills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.md
  • skills/cuopt-numerical-optimization-api-python/benchmark/evals.json
  • skills/cuopt-numerical-optimization-api-python/evals/evals.json
  • skills/cuopt-numerical-optimization-api-python/skill-card.md
  • skills/cuopt-numerical-optimization-api-python/skill.oms.sig
  • skills/cuopt-numerical-optimization-api/SKILL.md
  • skills/cuopt-numerical-optimization-api/assets/c/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_basic/lp_simple.c
  • skills/cuopt-numerical-optimization-api/assets/c/lp_duals/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_duals/lp_duals.c
  • skills/cuopt-numerical-optimization-api/assets/c/lp_warmstart/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_basic/milp_simple.c
  • skills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/milp_production.c
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/mps_solver.c
  • skills/cuopt-numerical-optimization-api/assets/cli/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_production/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_simple/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/milp_facility/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/least_squares/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/least_squares/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_basic/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_duals/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_duals/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/incumbent_callback.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/results.md
  • skills/cuopt-numerical-optimization-api/assets/python/portfolio/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/portfolio/model.py
  • skills/cuopt-numerical-optimization-api/evals/evals.json
  • skills/cuopt-numerical-optimization-api/references/c_api.md
  • skills/cuopt-numerical-optimization-api/references/cli_api.md
  • skills/cuopt-numerical-optimization-api/references/python_api.md
  • skills/cuopt-numerical-optimization-api/references/qp_examples.md
  • skills/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

Comment thread skills/cuopt-numerical-optimization-api/evals/evals.json
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

CI Test Summary

1 failed · 17 passed · 3 skipped

@ramakrishnap-nv ramakrishnap-nv marked this pull request as draft June 30, 2026 14:26
@copy-pr-bot

copy-pr-bot Bot commented Jun 30, 2026

Copy link
Copy Markdown

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.

ramakrishnap-nv and others added 2 commits June 30, 2026 09:34
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>
@ramakrishnap-nv ramakrishnap-nv force-pushed the skills/consolidate-numerical-optimization-api branch from 7049317 to 53bca34 Compare June 30, 2026 14:34
@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

Skill evaluation — PR #1489 (merged cuopt-numerical-optimization-api) vs latest main

Ran an agent-based eval harness over 99 numeric LP/MILP benchmark problems (3 attempts each), comparing this PR's merged skill against main's separate skills and a no-skills baseline. Agent = Opus 4.8 via the NVIDIA inference endpoint with a run_python tool executing cuOpt in nvidia/cuopt:26.8.0a-cu13; a separate LLM judge verifies the objective value only. The PR config was run twice (unchanged) to gauge run-to-run variance.

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.mdreferences/python_api.md) to reach the Python details that main's self-contained SKILL.md delivers 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 into SKILL.md to remove it.
  • Benchmark note (not a skill issue): eval lpmilp-047 is 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.

@ramakrishnap-nv ramakrishnap-nv self-assigned this Jul 1, 2026
@ramakrishnap-nv ramakrishnap-nv added non-breaking Introduces a non-breaking change improvement Improves an existing functionality breaking Introduces a breaking change and removed non-breaking Introduces a non-breaking change labels Jul 1, 2026
@ramakrishnap-nv ramakrishnap-nv marked this pull request as ready for review July 1, 2026 20:41

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 7049317 and 53bca34.

⛔ Files ignored due to path filters (5)
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/data/sample.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_production/production.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_simple/sample.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/cli/milp_facility/facility.mps is excluded by !**/*.mps
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/sample.mps is excluded by !**/*.mps
📒 Files selected for processing (67)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • skillcritic-report.txt
  • skills/cuopt-multi-objective-exploration/SKILL.md
  • skills/cuopt-numerical-optimization-api-c/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-c/SKILL.md
  • skills/cuopt-numerical-optimization-api-c/evals/evals.json
  • skills/cuopt-numerical-optimization-api-c/references/examples.md
  • skills/cuopt-numerical-optimization-api-c/skill-card.md
  • skills/cuopt-numerical-optimization-api-c/skill.oms.sig
  • skills/cuopt-numerical-optimization-api-cli/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-cli/SKILL.md
  • skills/cuopt-numerical-optimization-api-cli/evals/evals.json
  • skills/cuopt-numerical-optimization-api-cli/skill-card.md
  • skills/cuopt-numerical-optimization-api-cli/skill.oms.sig
  • skills/cuopt-numerical-optimization-api-python/BENCHMARK.md
  • skills/cuopt-numerical-optimization-api-python/SKILL.md
  • skills/cuopt-numerical-optimization-api-python/benchmark/SOURCES.md
  • skills/cuopt-numerical-optimization-api-python/benchmark/evals.json
  • skills/cuopt-numerical-optimization-api-python/evals/evals.json
  • skills/cuopt-numerical-optimization-api-python/skill-card.md
  • skills/cuopt-numerical-optimization-api-python/skill.oms.sig
  • skills/cuopt-numerical-optimization-api/SKILL.md
  • skills/cuopt-numerical-optimization-api/assets/c/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_basic/lp_simple.c
  • skills/cuopt-numerical-optimization-api/assets/c/lp_duals/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/lp_duals/lp_duals.c
  • skills/cuopt-numerical-optimization-api/assets/c/lp_warmstart/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_basic/milp_simple.c
  • skills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/milp_production_planning/milp_production.c
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/README.md
  • skills/cuopt-numerical-optimization-api/assets/c/mps_solver/mps_solver.c
  • skills/cuopt-numerical-optimization-api/assets/cli/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_production/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/lp_simple/README.md
  • skills/cuopt-numerical-optimization-api/assets/cli/milp_facility/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/least_squares/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/least_squares/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_basic/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_duals/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_duals/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/lp_warmstart/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/maximization_workaround/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/incumbent_callback.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_basic/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/milp_production_planning/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/data/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/model.py
  • skills/cuopt-numerical-optimization-api/assets/python/mps_solver/results.md
  • skills/cuopt-numerical-optimization-api/assets/python/portfolio/README.md
  • skills/cuopt-numerical-optimization-api/assets/python/portfolio/model.py
  • skills/cuopt-numerical-optimization-api/evals/evals.json
  • skills/cuopt-numerical-optimization-api/references/c_api.md
  • skills/cuopt-numerical-optimization-api/references/cli_api.md
  • skills/cuopt-numerical-optimization-api/references/python_api.md
  • skills/cuopt-numerical-optimization-api/references/qp_examples.md
  • skills/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

Comment on lines +73 to +81
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]);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 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 -n

Repository: 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.

@ramakrishnap-nv ramakrishnap-nv requested a review from mlubin July 1, 2026 20:54
ramakrishnap-nv and others added 2 commits July 1, 2026 15:54
…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:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

External modeling tools are also user interfaces to cuOpt, do we mention them here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need a new skill, just worth mentioning that the third party interfaces exist.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if it's an exhaustive list maybe we should add pyomo and cvxpy

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Iroy30 Iroy30 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor comment, looks good

ramakrishnap-nv and others added 2 commits July 1, 2026 16:54
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>
@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/ok to test 71e2c37

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Jul 2, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/ok to test c0e777e

@ramakrishnap-nv ramakrishnap-nv merged commit 87bc8f8 into main Jul 2, 2026
24 checks passed
ramakrishnap-nv added a commit to ramakrishnap-nv/skills that referenced this pull request Jul 2, 2026
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>
mosheabr pushed a commit to NVIDIA/skills that referenced this pull request Jul 6, 2026
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>
mosheabr added a commit to NVIDIA/skills that referenced this pull request Jul 6, 2026
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>
mosheabr pushed a commit to NVIDIA/skills that referenced this pull request Jul 7, 2026
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>
@ramakrishnap-nv ramakrishnap-nv added this to the 26.08 milestone Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Introduces a breaking change improvement Improves an existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants