Skip to content

Combine installation user skills into cuopt-install#1189

Merged
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
rgsl888prabhu:feat/combine-installation-skill
May 12, 2026
Merged

Combine installation user skills into cuopt-install#1189
rapids-bot[bot] merged 5 commits into
NVIDIA:mainfrom
rgsl888prabhu:feat/combine-installation-skill

Conversation

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator

@rgsl888prabhu rgsl888prabhu commented May 8, 2026

Summary

Collapses three user-facing install skills into one cuopt-install skill covering Python, C, and server across pip, conda, and Docker.

Old New
cuopt-installation-common (concepts) merged → cuopt-install
cuopt-installation-api-python merged → cuopt-install
cuopt-installation-api-c merged → cuopt-install
cuopt-installation-developer (build from source) unchanged here — being folded into cuopt-developer in #1176

Two commits:

  1. Consolidation — collapse the three user-install skills into a single cuopt-installation skill.
  2. Renamecuopt-installationcuopt-install (shorter, matches pip install mental model, removes residual audience ambiguity).

Why

Drive-by fixes (caught while drafting)

  • C API was missing pip support. libcuopt-cu12 and libcuopt-cu13 are real PyPI packages (see dependencies.yaml:436,441); the old cuopt-installation-api-c skill only documented conda.
  • C API conda command was wrong. Old skill said conda install ... cuopt, but cuopt is the Python conda package. The C package is libcuopt (dependencies.yaml:423).

Cross-refs updated

  • AGENTS.md — skill index reorganized; new "Installation" section with cuopt-install.
  • .claude-plugin/marketplace.json — three plugin entries → one.
  • skills/cuopt-installation-developer/evals/evals.json — two references in ground_truth / expected_behavior updated to cuopt-install.

Coordination with #1176

Both PRs touch AGENTS.md, .claude-plugin/marketplace.json, and skills/cuopt-installation-developer/evals/evals.json. Whichever lands second will need a small rebase (drop the eval edit since #1176 deletes that file; flip the "Installation" section in AGENTS.md). The merged eval cases that #1176 migrates into cuopt-developer/evals/evals.json may also need a one-line touch-up to point at cuopt-install rather than the old skill names.

Test plan

  • Skill registry loads — cuopt-install appears in available skills, the three old user-install names do not.
  • User asks "how do I install cuOpt for Python?" → activates cuopt-install, produces correct pip / conda command.
  • User asks "how do I install cuOpt for C?" → activates cuopt-install, produces correct libcuopt-cu12/13 pip command and libcuopt conda command.
  • User asks "how do I build cuOpt from source?" → still activates cuopt-installation-developer (or cuopt-developer post-Improve cuopt-developer skill content and sibling-skill routing #1176).

Collapses three install skills into a single user-facing skill:
- cuopt-installation-common (concepts) — system requirements + clarifying questions
- cuopt-installation-api-python (Python install)
- cuopt-installation-api-c (C install)
  → cuopt-installation (Python + C + server, pip/conda/Docker, verification)

cuopt-installation-developer (build from source) stays as a separate skill
for contributors and is referenced as "see also" from the merged skill.

Why one skill instead of three:
- System requirements, package-manager decisions, and verification surface
  are shared across interfaces; splitting created duplicated content and
  ambiguous activation.
- Both API skills already declared "Standalone; no common skill", so the
  common skill was vestigial.
- Mirrors the consolidation pattern from NVIDIA#1183 (numerical-optimization
  skill family).

Also fixes two bugs surfaced while drafting:
- C API was missing pip support; libcuopt-cu12 / libcuopt-cu13 are real
  PyPI packages (per dependencies.yaml:436,441).
- C API conda command pointed to "cuopt" (the Python package) instead of
  "libcuopt" (the C package, dependencies.yaml:423).

Cross-refs updated: AGENTS.md, .claude-plugin/marketplace.json, and
skills/cuopt-installation-developer/evals/evals.json (two references to
the old skill names in ground_truth and expected_behavior).
@rgsl888prabhu rgsl888prabhu requested a review from a team as a code owner May 8, 2026 15:31
@rgsl888prabhu rgsl888prabhu requested a review from Iroy30 May 8, 2026 15:31
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 8, 2026

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: 3c3ed3bb-0e02-4ffa-96f1-a7697fa16518

📥 Commits

Reviewing files that changed from the base of the PR and between b587b7b and 7f79927.

📒 Files selected for processing (3)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • skills/cuopt-developer/evals/evals.json
✅ Files skipped from review due to trivial changes (1)
  • skills/cuopt-developer/evals/evals.json

📝 Walkthrough

Walkthrough

This PR consolidates cuOpt's API-specific installation documentation into a unified cuopt-install user guide. Three separate skill docs are replaced by one, marketplace metadata and skills index are updated to reflect the new structure, and eval routing is redirected to the new consolidated skill.

Changes

Installation Documentation Consolidation

Layer / File(s) Summary
Marketplace Metadata and Plugins
.claude-plugin/marketplace.json
Marketplace metadata description updated from "Python/C/developer" to "user/developer"; three installation-specific plugins (cuopt-installation-common, cuopt-installation-api-python, cuopt-installation-api-c) consolidated into single cuopt-install entry.
Skills Directory Index
AGENTS.md
Repository layout reorganized to flat per-domain structure with explicit Installation section for skills/cuopt-install/ (user) and skills/cuopt-developer/ (build-from-source); installation entries removed from API skill list.
Unified Installation Guide
skills/cuopt-install/SKILL.md
New comprehensive installation guide with metadata, system requirements checklist, separate pip/conda install paths for Python and C APIs with CUDA 12/13 variants, REST server installation and Docker workflow, verification commands for each interface, common troubleshooting (missing module, CUDA availability, package mixing), and references to detailed recipes and developer build guide.
Deprecated API-Specific Docs
skills/cuopt-installation-common/SKILL.md, skills/cuopt-installation-api-python/SKILL.md, skills/cuopt-installation-api-python/resources/verification_examples.md, skills/cuopt-installation-api-c/SKILL.md
Four installation documentation files removed; content consolidated into unified guide.
Evaluation Routing Update
skills/cuopt-developer/evals/evals.json
inst-007-user-vs-dev-install eval entry updated to route "just use cuOpt" scenarios to cuopt-install for pre-built packages instead of API-specific installation skills.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Combine installation user skills into cuopt-install' directly and clearly describes the main change: consolidating three installation skills into one unified skill.
Description check ✅ Passed The description comprehensively explains the consolidation rationale, lists specific files changed, documents drive-by fixes, and provides a clear test plan aligned with the changeset.
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.

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

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
AGENTS.md (1)

3-3: ⚡ Quick win

Line 3 layout rule conflicts with the new installation model.

Line 3 says implementation skills are one-per-interface, but Lines 21-23 intentionally consolidate installation into a single multi-interface skill. Please adjust Line 3 to avoid routing ambiguity.

Suggested wording
-AI agent skills for NVIDIA cuOpt optimization engine. Skills live in **`skills/`** (repo root) and use a **flat layout**: per domain, a concept skill (formulation / problem types) plus implementation skills (one per interface — Python, C, CLI, server). Skills evolve through agent interactions — see `skills/skill-evolution/` for the evolution workflow.
+AI agent skills for NVIDIA cuOpt optimization engine. Skills live in **`skills/`** (repo root) and use a **flat layout**: per domain, a concept skill (formulation / problem types) plus implementation skills (typically one per interface — Python, C, CLI, server; installation is consolidated). Skills evolve through agent interactions — see `skills/skill-evolution/` for the evolution workflow.

As per coding guidelines, "Include clear descriptions of agent responsibilities and interfaces in AGENTS.md".

🤖 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 `@AGENTS.md` at line 3, Update the sentence in AGENTS.md that enforces "one per
interface" implementation skills: change it to describe a flat layout where each
domain has a concept skill (formulation/problem types) plus implementation
skills, but allow implementation skills to consolidate multiple interfaces
(e.g., a single installation/multi-interface skill) when appropriate; reference
the existing skills/ and skills/skill-evolution/ conventions and ensure the
wording removes the strict one-per-interface rule to avoid routing ambiguity.
🤖 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-installation/SKILL.md`:
- Line 121: Replace the incorrect error text `No module 'cuopt'` with Python's
actual import error wording `No module named 'cuopt'` in the SKILL.md entry (the
phrasing shown in the diff) so the documentation matches the real exception
message for easier searching.

---

Nitpick comments:
In `@AGENTS.md`:
- Line 3: Update the sentence in AGENTS.md that enforces "one per interface"
implementation skills: change it to describe a flat layout where each domain has
a concept skill (formulation/problem types) plus implementation skills, but
allow implementation skills to consolidate multiple interfaces (e.g., a single
installation/multi-interface skill) when appropriate; reference the existing
skills/ and skills/skill-evolution/ conventions and ensure the wording removes
the strict one-per-interface rule to avoid routing ambiguity.
🪄 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: ecee9812-e54d-43bc-9eda-87b93a3f9020

📥 Commits

Reviewing files that changed from the base of the PR and between f3ab099 and 86f2362.

📒 Files selected for processing (9)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • skills/cuopt-installation-api-c/SKILL.md
  • skills/cuopt-installation-api-python/SKILL.md
  • skills/cuopt-installation-api-python/resources/verification_examples.md
  • skills/cuopt-installation-common/SKILL.md
  • skills/cuopt-installation-developer/evals/evals.json
  • skills/cuopt-installation/SKILL.md
  • skills/cuopt-installation/resources/verification_examples.md
💤 Files with no reviewable changes (4)
  • skills/cuopt-installation-common/SKILL.md
  • skills/cuopt-installation-api-python/resources/verification_examples.md
  • skills/cuopt-installation-api-c/SKILL.md
  • skills/cuopt-installation-api-python/SKILL.md

Comment thread skills/cuopt-install/SKILL.md Outdated
@rgsl888prabhu rgsl888prabhu self-assigned this May 8, 2026
@rgsl888prabhu rgsl888prabhu added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels May 8, 2026
Shorter, matches the "pip install" mental model, and removes residual
ambiguity about audience now that cuopt-installation stands alone as the
user-facing install skill (the developer install is being folded into
cuopt-developer in NVIDIA#1176).

Updates skill folder name, frontmatter name, AGENTS.md, marketplace.json,
and the inst-007-user-vs-dev-install eval ground_truth /
expected_behavior references.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

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-install/SKILL.md`:
- Line 4: Replace the incorrect routing token "cuopt-developer" with the correct
"cuopt-installation-developer" in the SKILL.md description and any other
occurrences (the three spots flagged in the diff), i.e., find the string
"cuopt-developer" and update it to "cuopt-installation-developer" so
build-from-source/install-from-source users are routed to the
installation-specific skill.
🪄 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: 138bde5c-e73e-492f-9d01-29ebfd9dd02f

📥 Commits

Reviewing files that changed from the base of the PR and between 86f2362 and b69b236.

📒 Files selected for processing (5)
  • .claude-plugin/marketplace.json
  • AGENTS.md
  • skills/cuopt-install/SKILL.md
  • skills/cuopt-install/resources/verification_examples.md
  • skills/cuopt-installation-developer/evals/evals.json
✅ Files skipped from review due to trivial changes (2)
  • skills/cuopt-installation-developer/evals/evals.json
  • AGENTS.md

---
name: cuopt-install
version: "26.06.00"
description: Install cuOpt for Python, C, or as a server (pip, conda, Docker) — system requirements, install commands, and verification. Use when the user wants to install or verify cuOpt for any user-facing interface. For building cuOpt from source or contributing to cuOpt, see cuopt-developer.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Route build-from-source users to cuopt-installation-developer, not cuopt-developer.

These lines currently send build/install-from-source users to the general developer skill. That conflicts with this PR’s stated routing split and can misroute installation questions.

Suggested edit
-description: Install cuOpt for Python, C, or as a server (pip, conda, Docker) — system requirements, install commands, and verification. Use when the user wants to install or verify cuOpt for any user-facing interface. For building cuOpt from source or contributing to cuOpt, see cuopt-developer.
+description: Install cuOpt for Python, C, or as a server (pip, conda, Docker) — system requirements, install commands, and verification. Use when the user wants to install or verify cuOpt for any user-facing interface. For building cuOpt from source, see cuopt-installation-developer. For contributing to cuOpt internals, see cuopt-developer.
...
-Install cuOpt to *use* it from Python, C, or as a REST server. For building cuOpt from source to contribute or modify it, see `cuopt-developer`.
+Install cuOpt to *use* it from Python, C, or as a REST server. For building cuOpt from source, see `cuopt-installation-developer`.
...
-- `cuopt-developer` — build cuOpt from source and contribute to the codebase.
+- `cuopt-installation-developer` — build cuOpt from source and run developer setup.
+- `cuopt-developer` — contribute to the codebase internals.

Also applies to: 9-9, 128-128

🤖 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-install/SKILL.md` at line 4, Replace the incorrect routing token
"cuopt-developer" with the correct "cuopt-installation-developer" in the
SKILL.md description and any other occurrences (the three spots flagged in the
diff), i.e., find the string "cuopt-developer" and update it to
"cuopt-installation-developer" so build-from-source/install-from-source users
are routed to the installation-specific skill.

@rgsl888prabhu rgsl888prabhu changed the title Combine installation user skills into cuopt-installation Combine installation user skills into cuopt-install May 8, 2026
- 'No module cuopt' -> 'No module named cuopt' (Python's actual ImportError text).
- AGENTS.md line 3: loosen 'one per interface' rule to allow consolidated
  multi-interface skills like cuopt-install.
@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

Addressed CodeRabbit review in b587b7bb:

  • SKILL.md line 121 — fixed import-error wording: No module 'cuopt'No module named 'cuopt' (matches Python's actual ImportError text).
  • AGENTS.md line 3 — loosened the "one per interface" rule to allow consolidated multi-interface skills like cuopt-install.

Skipping one finding intentionally:

rgsl888prabhu and others added 2 commits May 11, 2026 20:26
The prior merge commit (766cf01) was made against a stale main that
predated NVIDIA#1176, so it dropped NVIDIA#1176's cuopt-developer rewrite: the new
resources/ files, the SKILL.md content, the 10 migrated inst-* eval
cases, and the cuopt-user-rules / cuopt-developer description updates.
This merge brings current origin/main in on top to restore them.

Conflict resolution:
- AGENTS.md: kept HEAD's removal of cuopt-installation-api-{python,c}
  from the API section (replaced by cuopt-install); dropped the
  cuopt-installation-developer line from the Installation section
  (skill deleted by NVIDIA#1176); pointed the Installation note at
  cuopt-developer for the from-source path.
- skills/cuopt-installation-developer/evals/evals.json: accepted
  origin/main's deletion; eval cases live in
  skills/cuopt-developer/evals/evals.json since NVIDIA#1176.
- skills/cuopt-developer/evals/evals.json: updated the migrated
  inst-007-user-vs-dev-install case to point at cuopt-install (not the
  removed cuopt-installation-api-python / -api-c names).
@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot rapids-bot Bot merged commit 81b9016 into NVIDIA:main May 12, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improves an existing functionality non-breaking Introduces a non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants