Skip to content

skills: allow user-space env setup; refuse only sudo/system-level ops - #1448

Merged
ramakrishnap-nv merged 4 commits into
mainfrom
skills/allow-userspace-env-setup
Jun 22, 2026
Merged

skills: allow user-space env setup; refuse only sudo/system-level ops#1448
ramakrishnap-nv merged 4 commits into
mainfrom
skills/allow-userspace-env-setup

Conversation

@ramakrishnap-nv

@ramakrishnap-nvramakrishnap-nv commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

The cuopt-developer skill forbade all package installs, which contradicted its own pre-flight check requiring the agent to create and activate the conda env. Agents (e.g. Codex) read this literally and refused to bootstrap conda or build a clean dev env.

This narrows the one non-negotiable refusal to privileged/system-level ops (sudo, root, /etc, drivers, system repos). User-space env setup — create/activate the conda env from conda/environments/*.yaml, pip/conda/mamba installs into the env, bootstrap miniforge into $HOME — is now explicitly allowed. The same relaxation applies to cuopt-user-rules.

The cuopt-developer skill forbade all package installs ("Never run the
install — no exceptions"), which contradicted its own pre-flight check
requiring the agent to create and activate the conda env. A literal
reading made agents refuse to bootstrap conda or create the dev env on
a clean machine.
Narrow the non-negotiable refusal to privileged/system-level operations
(sudo, root, /etc, drivers, system repos). Environment setup is now
explicitly allowed: create/activate the conda env from the checked-in
conda/environments/*.yaml, pip/conda/mamba installs into the user-space
env, and bootstrap miniforge into $HOME. Keep the dependencies.yaml
workflow as guidance for permanent project deps.
Apply the same relaxation to the end-user rules (cuopt-user-rules):
user-space installs are allowed once the user confirms; only
sudo/system-level (apt) is off-limits.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code ownerJune 22, 2026 19:47
@ramakrishnap-nvramakrishnap-nv self-assigned this Jun 22, 2026
@ramakrishnap-nvramakrishnap-nv added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Jun 22, 2026
@ramakrishnap-nv

Copy link
Copy Markdown
CollaboratorAuthor

/nvskills-ci

Comment threadskills/cuopt-developer/SKILL.md Outdated
Behavior Rule #5 restated the Refusal Rules in the same file; reduce it
to a one-line pointer.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@coderabbitai

coderabbitaiBot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 227730e9-3046-46bf-9d4b-8b28509e8829

📥 Commits

Reviewing files that changed from the base of the PR and between 606c2d8 and 01d08e4.

📒 Files selected for processing (6)
  • skills/cuopt-developer/BENCHMARK.md
  • skills/cuopt-developer/skill-card.md
  • skills/cuopt-developer/skill.oms.sig
  • skills/cuopt-user-rules/BENCHMARK.md
  • skills/cuopt-user-rules/skill-card.md
  • skills/cuopt-user-rules/skill.oms.sig

📝 Walkthrough

Walkthrough

Updates to cuOpt skill documentation refine privilege refusal rules and package installation policies, expand conda environment setup guidance, and refresh benchmark metadata and evaluation results across both the cuopt-developer and cuopt-user-rules skills.

Changes

Skill Documentation Policy and Evaluation Updates

Layer / File(s)Summary
Privilege refusal rules and package install policy
skills/cuopt-developer/SKILL.md, skills/cuopt-user-rules/SKILL.md
cuopt-developer Refusal Rules section is rewritten to block only sudo/system-level operations while explicitly permitting user-space conda env setup and dependency installs. cuopt-user-rules package installs table row is updated to allow user-space installs after confirmation; the old blanket no-auto-install block is replaced with a mandatory No Privileged Operations section (forbidding sudo/root, system file changes, repo/key additions, firewall/network/driver changes) and an Installing Packages section with confirm-first flow, CUDA-suffix matching, and single package-manager enforcement.
Developer environment setup and pre-flight guidance
skills/cuopt-developer/SKILL.md, skills/cuopt-developer/references/first_time_setup.md
The "Still ask before" list is narrowed to git write operations and destructive commands; the No Privileged Operations bullet is rewritten with a cross-link to Refusal Rules. An explicit conda/mamba env create and conda activate bash snippet is added to the pre-flight step using a local prefix (./.cuopt_env). A footer cross-reference line gains "conda-env" in its policy category list. The first_time_setup.md walk-through adds a user-space Miniforge bootstrap instruction and updates the pre-flight checks step to describe conda env creation from conda/environments/all_cuda-*.yaml before the first build.
cuOpt developer skill documentation and evaluation metadata
skills/cuopt-developer/skill-card.md, skills/cuopt-developer/BENCHMARK.md, skills/cuopt-developer/skill.oms.sig
License format updated to "Apache-2.0"; Use Case description now explicitly covers contributor activities and scope (C++/CUDA, Python, server, CI, docs). Reference links revised with architecture, troubleshooting, and numerical methodology entries. Evaluation metadata reformatted with NVSkills-Eval external profile description and 3 internal tasks in astra-sandbox. Evaluation Results table replaced with updated Security/Correctness/Discoverability/Effectiveness/Efficiency percentages. BENCHMARK.md evaluation date set to 2026-06-22 and attempts-per-task reduced to 1; Tier 1 static validation findings refreshed with missing sections and unexpected root files; Tier 2 deduplication marked as not run. Sigstore bundle updated with new DSSE envelope and signature.
cuOpt user-rules skill documentation and evaluation metadata
skills/cuopt-user-rules/skill-card.md, skills/cuopt-user-rules/BENCHMARK.md, skills/cuopt-user-rules/skill.oms.sig
Description refined to emphasize structured guidance (problem formulation, environment setup, API usage, result verification) across routing/LP/MILP/QP optimization interfaces. Evaluation Agents Used section added naming claude-code and codex; Evaluation Tasks updated to reference NVSkills-Eval external profile positive skill-activation case. Evaluation Results replaced with tabular breakdown by dimension showing per-agent percentages and deltas. BENCHMARK.md header updated with evaluation date and explicit agent list; Results table refreshed with new dimensions (Security, Skill Execution, Skill Efficiency, Accuracy/Goal Accuracy, Behavior Check, Token Efficiency) and per-agent scores; Tier 1 findings reduced and Tier 2 marked as not run. Sigstore bundle replaced with updated DSSE envelope and cryptographic material.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • NVIDIA/cuopt#1308: Adds an eval case in skills/cuopt-user-rules/evals/evals.json that tests the "ask before assuming/clarify before code" behavior described by the updated package installation policy.

Suggested reviewers

  • Iroy30
  • tmckayus
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly summarizes the main change: narrowing refusals from all package installs to only system-level operations while allowing user-space environment setup.
Description check✅ PassedThe description directly explains the problem (contradictory blanket ban on installs) and the solution (allowing user-space setup while refusing only sudo/system ops).
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
  • Commit unit tests in branch skills/allow-userspace-env-setup

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

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
skills/cuopt-developer/SKILL.md (1)

77-88: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Structure improvement: deduplication and clarity in Developer Behavior.

Line 88's cross-reference to Refusal Rules (instead of restating privilege restrictions) is good practice — maintains a single source of truth and avoids drift. The "OK to run" and "Still ask before" categories are now cleanly separated, with the new pre-commit setup guidance sitting between them. This structure is workable, though you may want to consider whether the pre-commit section (lines 79–80) could move into its own subsection (e.g., after "Still ask before") to keep "OK to run" and "Still ask before" as parallel categories. Not a blocker, but worth noting if clarity is a priority.

🤖 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-developer/SKILL.md` around lines 77 - 88, The "Set up pre-commit
hooks" section (around lines 79-80) is currently positioned between the
"Environment setup" (OK to run operations) and "Still ask before" sections,
which breaks the parallel structure of those two main categories. Move the
pre-commit setup section to after the "Still ask before" section, either as a
continuation or as its own subsection, so that "OK to run" and "Still ask
before" remain cleanly separated as parallel categories without interruption.
🤖 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-developer/SKILL.md`:
- Around line 77-88: The "Set up pre-commit hooks" section (around lines 79-80)
is currently positioned between the "Environment setup" (OK to run operations)
and "Still ask before" sections, which breaks the parallel structure of those
two main categories. Move the pre-commit setup section to after the "Still ask
before" section, either as a continuation or as its own subsection, so that "OK
to run" and "Still ask before" remain cleanly separated as parallel categories
without interruption.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 209a3adc-565f-4f52-992b-cb84aa152968

📥 Commits

Reviewing files that changed from the base of the PR and between 8c79892 and 3bf6e6c.

📒 Files selected for processing (3)
  • skills/cuopt-developer/SKILL.md
  • skills/cuopt-developer/references/first_time_setup.md
  • skills/cuopt-user-rules/SKILL.md

Address review: the pre-flight conda command now matches CONTRIBUTING.md
(conda env create -p ./.cuopt_env ...) instead of a named env.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@ramakrishnap-nv

Copy link
Copy Markdown
CollaboratorAuthor

/nvskills-ci

Signed-off-by: nvskills-svc-account <svc-nvskills-signing@nvidia.com>
@copy-pr-bot

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ramakrishnap-nv
ramakrishnap-nv merged commit da4612b into mainJun 22, 2026
3 of 4 checks passed
@ramakrishnap-nvramakrishnap-nv added this to the 26.08 milestone Jul 8, 2026
@ramakrishnap-nv
ramakrishnap-nv deleted the skills/allow-userspace-env-setup branch July 9, 2026 18:36
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.

4 participants

@ramakrishnap-nv@tmckayus@mlubin@svc-nvskills-signing