Note dual/sensitivity support per problem type in formulation skill#1393
Conversation
Educate the agent on what cuOpt exposes per problem type: LP and QP (continuous) have dual values (shadow prices) + reduced costs; MILP has none (integer optima are not continuous). Adds a "Duals / sensitivity" row to the problem-type table and a brief post-solve sensitivity note pointing to the lp_duals asset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: cafzal <cameron.afzal@gmail.com>
…ecifics The multi-objective skill PR (NVIDIA#1355) review asked to avoid maturity labels that go stale ("no need to mention beta ... text could get stale by the next release") and to keep concepts skills free of stale-prone specifics. This formulation skill is concepts-only (no API code), so: - drop the "(beta)" label on the QP duals cell (keep the capability statement) - remove specific method/asset names (lp_duals / get_dual_solution / get_reduced_cost / DualValue / ReducedCost); point to the language-specific API skills instead Keeps the per-type capability and the decision-language definitions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: cafzal <cameron.afzal@gmail.com>
📝 WalkthroughWalkthroughThis PR adds educational documentation content to the "Identifying problem type" section, introducing a new comparison row for dual information and sensitivity analysis capabilities. The changes clarify that LP and QP support post-solve sensitivity metrics (dual values, shadow prices, reduced costs) while MILP formulations do not expose dual values. ChangesProblem Type Identification Documentation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
skills/cuopt-numerical-optimization-formulation/SKILL.md (1)
1-40: Ensure merge gates forskills/changes are satisfied.Since this PR changes
skills/**, please make sure a maintainer runs/nvskills-ciand the signature commit remains in the PR, and confirm all commits are DCO signed (git commit -s) before merge. As per coding guidelines, “PRs that change content underskills/must be validated by NVSkills CI with maintainer/nvskills-cicomment before merge” and “Sign off all commits with DCO sign-off usinggit commit -s.”🤖 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-formulation/SKILL.md` around lines 1 - 40, This PR modifies content under skills/, so ensure a maintainer runs the NVSkills CI validation by adding the "/nvskills-ci" comment and confirm the signature commit remains in the PR; also verify every commit has a DCO sign-off (use git commit -s for any missing sign-offs) before merging so the skill change (SKILL.md) meets the merge gates.
🤖 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.
Nitpick comments:
In `@skills/cuopt-numerical-optimization-formulation/SKILL.md`:
- Around line 1-40: This PR modifies content under skills/, so ensure a
maintainer runs the NVSkills CI validation by adding the "/nvskills-ci" comment
and confirm the signature commit remains in the PR; also verify every commit has
a DCO sign-off (use git commit -s for any missing sign-offs) before merging so
the skill change (SKILL.md) meets the merge gates.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 1ea475be-1cda-4813-8328-a5465f2a9983
📒 Files selected for processing (1)
skills/cuopt-numerical-optimization-formulation/SKILL.md
|
@rgsl888prabhu For visibility: Here's a minor skill addition to clarify dual/sensitivity support. |
|
/ok to test a401504 |
|
/merge |
Description
Adds a per-problem-type dual / sensitivity capability note to the concepts-only
cuopt-numerical-optimization-formulationskill, so the agent guides users correctly on what cuOpt exposes after a solve:Two edits: a
Duals / sensitivityrow in the LP/MILP/QP comparison table, and a short post-solve note giving the decision meaning — shadow price = where to invest (marginal objective gain from relaxing a binding constraint) and reduced cost = near-miss (how far a left-out option must improve before it enters the solution). As a concepts skill it states what's supported per type and what it means, and defers how to read them to the language-specific API skills (no API symbols inlined).Why. Surfaced from real integration use — wiring solver-exact sensitivity/explainability into a downstream multi-objective decision layer. The formulation skill covered how to formulate but not which problem types yield sensitivity information, which is exactly what a user needs before relying on it (e.g. not expecting duals off a MILP).
The note also reflects the review feedback on #1355: a concepts skill carries no maturity ("beta") labels and no specific API symbols — both drift out of date, with no CI to catch the staleness.
Validation & gating.
ci/utils/validate_skills.shpasses (skill structure, marketplace manifest,AGENTS.mdreferences). The NVSkills-Eval pipeline — which also (re)generatesBENCHMARK.md, the skill card, and the signature — is the gate and is pending:skills/**CI needs a maintainer and cannot be triggered from a fork branch.Related.
Checklist