Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 3 additions & 15 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,22 +33,10 @@
"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."
},
{
"name": "cuopt-numerical-optimization-api-python",
"source": "./skills/cuopt-numerical-optimization-api-python",
"name": "cuopt-numerical-optimization-api",
"source": "./skills/cuopt-numerical-optimization-api",
"skills": "./",
"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."
},
{
"name": "cuopt-numerical-optimization-api-c",
"source": "./skills/cuopt-numerical-optimization-api-c",
"skills": "./",
"description": "LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++."
},
{
"name": "cuopt-numerical-optimization-api-cli",
"source": "./skills/cuopt-numerical-optimization-api-cli",
"skills": "./",
"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."
"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."
},
{
"name": "cuopt-multi-objective-exploration",
Expand Down
6 changes: 2 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,8 @@ AI agent skills for NVIDIA cuOpt optimization engine. Skills live in **`skills/`
### Installation
- `skills/cuopt-install/` — User install for Python, C, and server (pip, conda, Docker, verification). For building cuOpt from source, see `skills/cuopt-developer/`.

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

Expand Down
17 changes: 17 additions & 0 deletions skillcritic-report.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
SkillCritic FAIL: cuopt-user-rules
Build: SkillCritic 0.5.0
Mode: llm
Skill category: procedural (70% confidence)
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.)
Consensus decision: fail
Complexity: very-high (10.0/10)
Loop boundedness: unbounded
Loop termination classes: unbounded
Stability: single-run
Findings: 2 high/critical, 2 medium, 2 low/info
- [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.
- [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.
- [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.
- [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.
- [HIGH/UNCERTAINTY] very-high-flow-complexity at skills/cuopt-user-rules/SKILL.md:19: Flow complexity is very-high with score 10.0/10.
- [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.
6 changes: 3 additions & 3 deletions skills/cuopt-multi-objective-exploration/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ sort the survivors to form the frontier

Practical notes:

- **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.
- **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.
- **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.
- **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.
- **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.
- **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.
- **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.
Expand All @@ -134,5 +134,5 @@ Practical notes:

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:

- `cuopt-numerical-optimization-api-python` / `-api-c` / `-api-cli` — LP, MILP, QP solves.
- `cuopt-numerical-optimization-api` — LP, MILP, QP solves (Python, C, CLI).
- `cuopt-routing-api-python` — the same frontier workflow applies to routing tradeoffs (distance vs. vehicles vs. time).
80 changes: 0 additions & 80 deletions skills/cuopt-numerical-optimization-api-c/BENCHMARK.md

This file was deleted.

64 changes: 0 additions & 64 deletions skills/cuopt-numerical-optimization-api-c/SKILL.md

This file was deleted.

54 changes: 0 additions & 54 deletions skills/cuopt-numerical-optimization-api-c/evals/evals.json

This file was deleted.

Loading