Skip to content

Commit 3820cc6

Browse files
skills: consolidate numerical-optimization API skills into one
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>
1 parent 2ca56e7 commit 3820cc6

72 files changed

Lines changed: 596 additions & 2551 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/marketplace.json

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,10 @@
3333
"description": "Numerical optimization (LP, MILP, QP) — concepts, problem-text parsing, and formulation patterns. What LP, MILP, and QP are, required formulation questions, modeling elements, common patterns, and how to parse problem statements (parameters, constraints, decisions, objective). Domain concepts; no API or interface."
3434
},
3535
{
36-
"name": "cuopt-numerical-optimization-api-python",
37-
"source": "./skills/cuopt-numerical-optimization-api-python",
36+
"name": "cuopt-numerical-optimization-api",
37+
"source": "./skills/cuopt-numerical-optimization-api",
3838
"skills": "./",
39-
"description": "Solve LP, MILP, and QP (beta) with the Python API. Use when the user asks about optimization with linear or quadratic objectives, linear constraints, integer variables, scheduling, resource allocation, facility location, production planning, portfolio optimization, or least squares."
40-
},
41-
{
42-
"name": "cuopt-numerical-optimization-api-c",
43-
"source": "./skills/cuopt-numerical-optimization-api-c",
44-
"skills": "./",
45-
"description": "LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++."
46-
},
47-
{
48-
"name": "cuopt-numerical-optimization-api-cli",
49-
"source": "./skills/cuopt-numerical-optimization-api-cli",
50-
"skills": "./",
51-
"description": "LP, MILP, and QP (beta) with cuOpt — CLI only (MPS files, cuopt_cli). Use when the user is solving LP, MILP, or QP from MPS via command line."
39+
"description": "LP, MILP, and QP (beta) with cuOpt — Python, C, and CLI. Use when the user is solving LP, MILP, or QP with any cuOpt interface."
5240
},
5341
{
5442
"name": "cuopt-multi-objective-exploration",

AGENTS.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ AI agent skills for NVIDIA cuOpt optimization engine. Skills live in **`skills/`
1818
### Installation
1919
- `skills/cuopt-install/` — User install for Python, C, and server (pip, conda, Docker, verification). For building cuOpt from source, see `skills/cuopt-developer/`.
2020

21-
### API (implementation; one interface per skill)
22-
- `skills/cuopt-numerical-optimization-api-python/` (LP, MILP, QP)
23-
- `skills/cuopt-numerical-optimization-api-c/` (LP, MILP, QP)
24-
- `skills/cuopt-numerical-optimization-api-cli/` (LP, MILP, QP)
21+
### API (implementation)
22+
- `skills/cuopt-numerical-optimization-api/` (LP, MILP, QP — Python, C, CLI; interface-specific details in `references/`)
2523
- `skills/cuopt-routing-api-python/`
2624
- `skills/cuopt-server-api-python/` (deploy + client)
2725

skillcritic-report.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
SkillCritic FAIL: cuopt-user-rules
2+
Build: SkillCritic 0.5.0
3+
Mode: llm
4+
Skill category: procedural (70% confidence)
5+
Semantic agreement: 0.54 (Flow diagrams diverge: 53.8% semantic agreement, 48.7% weakest pair, 47.2% weakest topology, 47.6% weakest source coverage, 71.4% source-order agreement.)
6+
Consensus decision: fail
7+
Complexity: very-high (10.0/10)
8+
Loop boundedness: unbounded
9+
Loop termination classes: unbounded
10+
Stability: single-run
11+
Findings: 2 high/critical, 2 medium, 2 low/info
12+
- [MEDIUM/SOURCE_DEFECT] unbounded-correction-loop at /home/luffy/Projects/cuopt_5/skills/cuopt-user-rules/SKILL.md:122: The mandatory post-correction skill-evaluation loop has no hard bound on correction cycles; only advisory language ('avoid spinning through many model variants') limits retries.
13+
- [LOW/HYPOTHESIS] missing-verify-permission-denied-path at /home/luffy/Projects/cuopt_5/skills/cuopt-user-rules/SKILL.md:160: The skill requires asking before running verification commands but does not specify what to do if the user declines permission.
14+
- [LOW/RECONSTRUCTION_DEFECT] scope-gate-omitted-from-reconstruction at /home/luffy/Projects/cuopt_5/skills/cuopt-user-rules/SKILL.md:19: The reconstructed flow omits the source's required handoff for requests about modifying cuOpt internals.
15+
- [HIGH/UNCERTAINTY] flow-consensus at /home/luffy/Projects/cuopt_5/skills/cuopt-user-rules/SKILL.md:1: Flow diagrams diverge: 53.8% semantic agreement, 48.7% weakest pair, 47.2% weakest topology, 47.6% weakest source coverage, 71.4% source-order agreement.
16+
- [HIGH/UNCERTAINTY] very-high-flow-complexity at skills/cuopt-user-rules/SKILL.md:19: Flow complexity is very-high with score 10.0/10.
17+
- [MEDIUM/UNCERTAINTY] unbounded-cycle at skills/cuopt-user-rules/SKILL.md:127: The flow contains a cycle but the skill does not clearly bound the loop.

skills/cuopt-multi-objective-exploration/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ sort the survivors to form the frontier
116116

117117
Practical notes:
118118

119-
- **Warm-start LP sweeps.** For an LP frontier, carry the previous solve's PDLP warmstart data into the next to cut solve time. Per cuOpt this is **LP-only**: a MILP solve doesn't take a PDLP warmstart (you can optionally seed a MIP start instead). See `cuopt-numerical-optimization-api-python` for the calls.
120-
- **Cap each MILP solve.** Set a per-solve time limit on MILP sweeps (see `cuopt-numerical-optimization-api-python`) — a sweep is many solves, and branch-and-bound can over-spend certifying optimality past a tiny gap, while cuOpt sets no limit by default and won't warn. Report the points as optimal *to the gap you set*, not certified optimal.
119+
- **Warm-start LP sweeps.** For an LP frontier, carry the previous solve's PDLP warmstart data into the next to cut solve time. Per cuOpt this is **LP-only**: a MILP solve doesn't take a PDLP warmstart (you can optionally seed a MIP start instead). See `cuopt-numerical-optimization-api` for the calls.
120+
- **Cap each MILP solve.** Set a per-solve time limit on MILP sweeps (see `cuopt-numerical-optimization-api`) — a sweep is many solves, and branch-and-bound can over-spend certifying optimality past a tiny gap, while cuOpt sets no limit by default and won't warn. Report the points as optimal *to the gap you set*, not certified optimal.
121121
- **Filter dominated points.** A correct sweep can still emit dominated points (especially weighted-sum near the hull, or MILP). Drop them; they are not part of the frontier.
122122
- **Resolution is a budget.** Curve fidelity trades against solve count. Start coarse to see the shape, then refine the grid only where the curve bends.
123123
- **Spend the budget where the slope changes (LP/QP).** Because the ε-constraint dual is the frontier's local slope, compare it across solved points: where it barely changes, the curve is nearly straight — interpolate rather than add solves; where it jumps by more than the solve tolerance, the frontier bends between those points — refine there (smaller differences are solver noise, not curvature). This concentrates solves where the curve actually bends instead of spreading them over a uniform grid. On MILP, judge where to refine from the gaps between primal objective values instead.
@@ -134,5 +134,5 @@ Practical notes:
134134

135135
This skill is solver- and interface-agnostic. The per-solve mechanics — building the objective, adding the ε constraints, passing a warm start, reading status — live in the API skills:
136136

137-
- `cuopt-numerical-optimization-api-python` / `-api-c` / `-api-cli` — LP, MILP, QP solves.
137+
- `cuopt-numerical-optimization-api` — LP, MILP, QP solves (Python, C, CLI).
138138
- `cuopt-routing-api-python` — the same frontier workflow applies to routing tradeoffs (distance vs. vehicles vs. time).

skills/cuopt-numerical-optimization-api-c/BENCHMARK.md

Lines changed: 0 additions & 80 deletions
This file was deleted.

skills/cuopt-numerical-optimization-api-c/SKILL.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

skills/cuopt-numerical-optimization-api-c/evals/evals.json

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)