Skip to content

evals: add eval suite for cuopt-install skill - #1205

Merged
rapids-bot[bot] merged 3 commits into
NVIDIA:mainfrom
ramakrishnap-nv:feat/cuopt-install-evals
May 12, 2026
Merged

evals: add eval suite for cuopt-install skill#1205
rapids-bot[bot] merged 3 commits into
NVIDIA:mainfrom
ramakrishnap-nv:feat/cuopt-install-evals

Conversation

@ramakrishnap-nv

@ramakrishnap-nvramakrishnap-nv commented May 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds skills/cuopt-install/evals/evals.json with 15 behavior-style evals for the cuopt-install skill. Coverage: required questions, Python/C/server install (pip/conda/Docker), CUDA suffix matching, verification, the mandatory no-auto-install rule, GPU Compute Capability requirements, and the redirect to cuopt-developer for from-source builds.
  • Corrects a factual error in cuopt-install/SKILL.md (3 lines) and cuopt-user-rules/SKILL.md (table + note): cuopt-cuXX declares libcuopt-cuXX as a runtime dependency (see python/cuopt/pyproject.toml:26), so the C library and headers are already installed alongside the Python package. The skills previously stated the Python and C packages were strictly separate; the reverse (libcuopt alone, no Python) is the only true standalone case.

cuopt-install was the only user-facing skill without an evals directory; this closes that gap. cuopt-user-rules has no evals (rules skill, not API), so no eval changes needed there.

Style of the new evals matches cuopt-developer/evals/evals.json (question + ground-truth narrative + expected_behavior list).

Test plan

  • JSON validates (python -m json.tool skills/cuopt-install/evals/evals.json)
  • Eval IDs are unique within the file
  • Eval harness picks up the new file
  • Spot-check install-005 against the corrected SKILL.md / user-rules guidance

Add 15 behavior-style evals covering required questions, Python/C/server
installs, CUDA suffix matching, verification, the no-auto-install rule,
GPU compute capability, and the redirect to cuopt-developer for from-source
builds. Matches the question/expected_behavior style used by cuopt-developer.
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@copy-pr-bot

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-nvramakrishnap-nv self-assigned this May 12, 2026
@ramakrishnap-nvramakrishnap-nv added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels May 12, 2026
cuopt-cuXX declares libcuopt-cuXX as a runtime dependency (see
python/cuopt/pyproject.toml), so installing the Python package also
installs the C headers and shared library. The skill previously stated
the two were strictly separate installables. Update the three relevant
lines in SKILL.md and the corresponding install-005 eval to reflect
that the C API is available after a Python install, while libcuopt
alone still does not provide the Python bindings.
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
The package table and accompanying note implied the Python and C
packages were independent installs. Reflect that cuopt declares
libcuopt as a runtime dependency, so a Python install also provides
the C library; only the reverse (libcuopt alone, no Python) is a true
separate install. Mirrors the SKILL.md fix in cuopt-install.
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@ramakrishnap-nv
ramakrishnap-nv marked this pull request as ready for review May 12, 2026 18:39
@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code ownerMay 12, 2026 18:39
@coderabbitai

Copy link
Copy Markdown

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 901860ba-474a-4bbf-b24c-9ff3a3f56d97

📥 Commits

Reviewing files that changed from the base of the PR and between 3df9b05 and d02c97b.

📒 Files selected for processing (3)
  • skills/cuopt-install/SKILL.md
  • skills/cuopt-install/evals/evals.json
  • skills/cuopt-user-rules/SKILL.md

📝 Walkthrough

Walkthrough

This PR clarifies cuOpt installation documentation and adds comprehensive evaluation scenarios. It updates multiple skill docs to explicitly state that installing the Python cuopt-cuXX package transitively includes the C library, while standalone C package installation does not provide Python bindings. A new evaluation dataset with 15 test cases specifies expected agent behavior across installation workflows, including prerequisite checks, CUDA variants, pip/conda selection, GPU requirements, verification, server setup, diagnostics, and remote-server patterns.

Changes

Installation Dependency Documentation and Evaluation

Layer / File(s)Summary
Python/C API dependency clarification in SKILL.md
skills/cuopt-install/SKILL.md, skills/cuopt-user-rules/SKILL.md
Updated documentation across two skill files to state that installing cuopt-cuXX transitively provides libcuopt-cuXX (C library and headers), while installing libcuopt alone does not include Python bindings. Replaces ambiguous "mixing" language with explicit transitive-dependency wording.
Installation behavior evaluation scenarios in evals.json
skills/cuopt-install/evals/evals.json
Adds 15 evaluation cases spanning prerequisite questioning, CUDA 12/13 pip installation with NVIDIA PyPI index, pip vs conda mutual exclusion, C API transitive availability, GPU compute capability (>= 7.0), installation verification (import/version/GPU access), REST server setup (Docker and pip), environment mismatch diagnostics, agent non-installation constraint, source-build redirection, CUDA package suffix mismatch resolution, client-only remote-server setup, and conda installation with automatic CUDA variant selection.

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title 'evals: add eval suite for cuopt-install skill' directly and specifically summarizes the primary change in the PR: adding 15 behavior-style evals for the cuopt-install skill.
Description check✅ PassedThe description clearly explains the key changes: adding the eval suite, correcting factual documentation errors about package dependencies, and noting that this fills a gap.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@ramakrishnap-nv

Copy link
Copy Markdown
CollaboratorAuthor

/merge

@rapids-bot
rapids-botBot merged commit de8e107 into NVIDIA:mainMay 12, 2026
43 checks passed
chris-maes pushed a commit to chris-maes/cuopt that referenced this pull request May 18, 2026
## Summary
- Adds `skills/cuopt-install/evals/evals.json` with 15 behavior-style evals for the `cuopt-install` skill. Coverage: required questions, Python/C/server install (pip/conda/Docker), CUDA suffix matching, verification, the mandatory no-auto-install rule, GPU Compute Capability requirements, and the redirect to `cuopt-developer` for from-source builds.
- Corrects a factual error in `cuopt-install/SKILL.md` (3 lines) and `cuopt-user-rules/SKILL.md` (table + note): `cuopt-cuXX` declares `libcuopt-cuXX` as a runtime dependency (see `python/cuopt/pyproject.toml:26`), so the C library and headers are already installed alongside the Python package. The skills previously stated the Python and C packages were strictly separate; the reverse (`libcuopt` alone, no Python) is the only true standalone case.
`cuopt-install` was the only user-facing skill without an evals directory; this closes that gap. `cuopt-user-rules` has no evals (rules skill, not API), so no eval changes needed there.
Style of the new evals matches `cuopt-developer/evals/evals.json` (question + ground-truth narrative + `expected_behavior` list).
## Test plan
- [ ] JSON validates (`python -m json.tool skills/cuopt-install/evals/evals.json`)
- [ ] Eval IDs are unique within the file
- [ ] Eval harness picks up the new file
- [ ] Spot-check install-005 against the corrected SKILL.md / user-rules guidance
Authors:
- Ramakrishnap (https://github.com/rgsl888prabhu)
Approvers:
- Trevor McKay (https://github.com/tmckayus)
URL: NVIDIA#1205
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvementImproves an existing functionalitynon-breakingIntroduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ramakrishnap-nv@tmckayus