Skip to content

skills/cuopt-skill-evolution: add eval - #1337

Merged
ramakrishnap-nv merged 2 commits into
mainfrom
skills-cuopt-skill-evolution-eval
May 29, 2026
Merged

skills/cuopt-skill-evolution: add eval#1337
ramakrishnap-nv merged 2 commits into
mainfrom
skills-cuopt-skill-evolution-eval

Conversation

@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator

Restore the eval that was deleted during the rename from skill-evolution to cuopt-skill-evolution (#1330). Updated expected_skill and references to the new name.

Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code owner May 29, 2026 02:39
@ramakrishnap-nv
ramakrishnap-nv requested a review from tmckayus May 29, 2026 02:39
@ramakrishnap-nv ramakrishnap-nv self-assigned this May 29, 2026
@ramakrishnap-nv ramakrishnap-nv added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels May 29, 2026
@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a new eval case for cuopt-skill-evolution routing, updates the skill’s benchmark (verdict, findings, publication recommendation), edits skill-card metadata/output format, and refreshes the DSSE signature bundle.

Changes

Cuopt skill evolution edits

Layer / File(s) Summary
Trigger recognition evaluation case
skills/cuopt-skill-evolution/evals/evals.json
New evaluation entry (evo-eval-001-trigger-recognized) documents recognized-correction trigger routing to cuopt-skill-evolution, expected routing to cuopt-routing-api-python, a four-field proposal format, required user approval before applying changes, and no self-modification of cuopt-skill-evolution.
Benchmark verdict and findings update
skills/cuopt-skill-evolution/BENCHMARK.md
Changes overall verdict from PASS to FAIL, removes one MEDIUM SQP finding from Tier 1 top findings, and replaces the publication recommendation with a requirement to review and rerun after fixes.
Skill card metadata and output format
skills/cuopt-skill-evolution/skill-card.md
Updates license label, revises Use Case text, changes Reference to SKILL.md, sets Output Format to plain [Markdown], and clears the “Other Properties Related to Output” field.
DSSE signature bundle refresh
skills/cuopt-skill-evolution/skill.oms.sig
Replaces the DSSE envelope payload and corresponding signature bytes; bundle structure unchanged but embedded digests/signature updated.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • NVIDIA/cuopt#1330: Renames/relocates the evo-eval-001-trigger-recognized evaluation case to skills/cuopt-skill-evolution/evals/evals.json.

Suggested labels

non-breaking, improvement

Suggested reviewers

  • Iroy30
  • tmckayus
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'skills/cuopt-skill-evolution: add eval' clearly and specifically identifies the primary change: adding an evaluation case to the cuopt-skill-evolution skill directory.
Description check ✅ Passed The description is directly related to the changeset, explaining the restoration of a deleted eval and the updates made to references during the skill rename.
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
  • Commit unit tests in branch skills-cuopt-skill-evolution-eval

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

@coderabbitai coderabbitai Bot 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.

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-skill-evolution/evals/evals.json`:
- Line 7: Update the eval description in the "ground_truth" text inside
evals.json to reflect the five-field "Skill update proposal" contract (Target,
Trigger, Scored, Removal, Diff) instead of four fields, and append the
CI/request instructions to ask for "/nvskills-ci" and to run "pre-commit run
--all-files --show-diff-on-failure"; locate the string in
skills/cuopt-skill-evolution/evals/evals.json (the "ground_truth" value) and the
SKILL.md "Skill update proposal" reference to ensure wording matches exactly.
🪄 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: 6393cc30-0804-4f23-8c3b-6c793e521037

📥 Commits

Reviewing files that changed from the base of the PR and between b1703b2 and 6866379.

📒 Files selected for processing (1)
  • skills/cuopt-skill-evolution/evals/evals.json

"question": "I corrected your last answer because you suggested an API method that doesn't exist in cuopt-routing. You then found the right method. Should you do anything else?",
"expected_skill": "cuopt-skill-evolution",
"expected_script": null,
"ground_truth": "Yes. The user correction is a trigger for the cuopt-skill-evolution workflow. After solving the user's original task, the agent distills the generalizable learning, targets the single highest-impact skill (here cuopt-routing-api-python — the API skill where the missing method lives), and presents a proposal in the four-field format (Target, Trigger, Scored, Diff) for the user to approve before any change is applied.",

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 | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Extract the proposal format specification from SKILL.md

rg -A 10 'Proposal format' skills/cuopt-skill-evolution/SKILL.md

Repository: NVIDIA/cuopt

Length of output: 638


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== skills/cuopt-skill-evolution/SKILL.md: Proposal format section ==="
# Print a bit more context around the proposal format text
rg -n "Proposal format" skills/cuopt-skill-evolution/SKILL.md
sed -n '1,200p' skills/cuopt-skill-evolution/SKILL.md | head -n 220

echo
echo "=== skills/cuopt-skill-evolution/evals/evals.json: lines 1-40 ==="
nl -ba skills/cuopt-skill-evolution/evals/evals.json | sed -n '1,60p'

echo
echo "=== occurrences of 'four-field' and 'Removal' in evals.json ==="
rg -n "four-field|Removal|Diff" skills/cuopt-skill-evolution/evals/evals.json || true

Repository: NVIDIA/cuopt

Length of output: 14265


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== skills/cuopt-skill-evolution/SKILL.md: lines 110-150 ==="
sed -n '110,150p' skills/cuopt-skill-evolution/SKILL.md

echo
echo "=== skills/cuopt-skill-evolution/evals/evals.json: lines 1-25 (with line numbers via python) ==="
python3 - <<'PY'
import itertools, json
path = "skills/cuopt-skill-evolution/evals/evals.json"
with open(path, "r", encoding="utf-8") as f:
    lines = f.readlines()
for i, line in enumerate(lines[:25], start=1):
    print(f"{i:>3}: {line.rstrip()}")
PY

echo
echo "=== occurrences in evals.json of key field terms ==="
rg -n "four-field|Removal|Diff" skills/cuopt-skill-evolution/evals/evals.json || true

Repository: NVIDIA/cuopt

Length of output: 4490


Fix eval’s “four-field format” wording to include Removal (per SKILL.md proposal contract)

skills/cuopt-skill-evolution/evals/evals.json describes a “four-field format (Target, Trigger, Scored, Diff)”, but skills/cuopt-skill-evolution/SKILL.md’s “Skill update proposal” block includes Removal: no|yes as well (Target/Trigger/Scored/Removal/Diff). Also request /nvskills-ci and ensure pre-commit run --all-files --show-diff-on-failure is run.

🔧 Proposed fix to include all five fields
-    "ground_truth": "Yes. The user correction is a trigger for the cuopt-skill-evolution workflow. After solving the user's original task, the agent distills the generalizable learning, targets the single highest-impact skill (here cuopt-routing-api-python — the API skill where the missing method lives), and presents a proposal in the four-field format (Target, Trigger, Scored, Diff) for the user to approve before any change is applied.",
+    "ground_truth": "Yes. The user correction is a trigger for the cuopt-skill-evolution workflow. After solving the user's original task, the agent distills the generalizable learning, targets the single highest-impact skill (here cuopt-routing-api-python — the API skill where the missing method lives), and presents a proposal in the five-field format (Target, Trigger, Scored, Removal, Diff) for the user to approve before any change is applied.",
     "expected_behavior": [
       "Identifies the user correction as a cuopt-skill-evolution trigger and targets the cuopt-routing-api-python skill",
-      "Presents a proposal in the four-field format (Target, Trigger, Scored, Diff) and does not apply the change without user approval",
+      "Presents a proposal in the five-field format (Target, Trigger, Scored, Removal, Diff) and does not apply the change without user approval",
       "Does not propose modifying cuopt-skill-evolution itself (self-modify is forbidden)"
     ]
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"ground_truth": "Yes. The user correction is a trigger for the cuopt-skill-evolution workflow. After solving the user's original task, the agent distills the generalizable learning, targets the single highest-impact skill (here cuopt-routing-api-python — the API skill where the missing method lives), and presents a proposal in the four-field format (Target, Trigger, Scored, Diff) for the user to approve before any change is applied.",
"ground_truth": "Yes. The user correction is a trigger for the cuopt-skill-evolution workflow. After solving the user's original task, the agent distills the generalizable learning, targets the single highest-impact skill (here cuopt-routing-api-python — the API skill where the missing method lives), and presents a proposal in the five-field format (Target, Trigger, Scored, Removal, Diff) for the user to approve before any change is applied.",
"expected_behavior": [
"Identifies the user correction as a cuopt-skill-evolution trigger and targets the cuopt-routing-api-python skill",
"Presents a proposal in the five-field format (Target, Trigger, Scored, Removal, Diff) and does not apply the change without user approval",
"Does not propose modifying cuopt-skill-evolution itself (self-modify is forbidden)"
]
🤖 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-skill-evolution/evals/evals.json` at line 7, Update the eval
description in the "ground_truth" text inside evals.json to reflect the
five-field "Skill update proposal" contract (Target, Trigger, Scored, Removal,
Diff) instead of four fields, and append the CI/request instructions to ask for
"/nvskills-ci" and to run "pre-commit run --all-files --show-diff-on-failure";
locate the string in skills/cuopt-skill-evolution/evals/evals.json (the
"ground_truth" value) and the SKILL.md "Skill update proposal" reference to
ensure wording matches exactly.

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

copy-pr-bot Bot commented May 29, 2026

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.

@coderabbitai coderabbitai Bot 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.

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-skill-evolution/skill-card.md`:
- Line 29: The documentation is inconsistent: the "Risk: Review before
execution..." note in the skill-card.md (the Risk paragraph) indicates proposals
require explicit user approval, but "Other Properties Related to Output"
currently shows "[None]"; either reflect that approval is required by adding a
property like "proposals require explicit user approval before application"
under the Other Properties Related to Output section, or if approval is no
longer required, remove/update the Risk line to match the new workflow—edit the
"Other Properties Related to Output" heading or the "Risk: Review before
execution..." line so both state the same approval requirement.
🪄 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: a85d1108-1ed2-4855-92e3-4e13936e2388

📥 Commits

Reviewing files that changed from the base of the PR and between 6866379 and 93a80e3.

📒 Files selected for processing (3)
  • skills/cuopt-skill-evolution/BENCHMARK.md
  • skills/cuopt-skill-evolution/skill-card.md
  • skills/cuopt-skill-evolution/skill.oms.sig


## Evaluation Tasks: <br>
NVSkills-Eval `external` profile, 3-Tier evaluation. Overall verdict: PASS. Tier 1 static validation: 9 checks (passed with observations). Tier 2 deduplication: 2 checks (passed). <br>
**Other Properties Related to Output:** [None] <br>

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 | 🟠 Major | ⚡ Quick win

Potential inconsistency between risk documentation and output properties.

Line 29 now states [None] for "Other Properties Related to Output," removing the previous documentation that "proposals require explicit user approval before application." However, line 18 still documents: "Risk: Review before execution as proposals could introduce incorrect or misleading guidance into skills."

If proposals from this skill require review/approval before execution (as line 18 suggests), this property should be documented in the output properties section. Changing it to [None] may mislead users about the approval workflow.

Please verify whether:

  1. The skill output no longer requires approval (in which case line 18 should also be updated), or
  2. Approval is still required (in which case line 29 should document this property)
🤖 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-skill-evolution/skill-card.md` at line 29, The documentation is
inconsistent: the "Risk: Review before execution..." note in the skill-card.md
(the Risk paragraph) indicates proposals require explicit user approval, but
"Other Properties Related to Output" currently shows "[None]"; either reflect
that approval is required by adding a property like "proposals require explicit
user approval before application" under the Other Properties Related to Output
section, or if approval is no longer required, remove/update the Risk line to
match the new workflow—edit the "Other Properties Related to Output" heading or
the "Risk: Review before execution..." line so both state the same approval
requirement.

@ramakrishnap-nv
ramakrishnap-nv merged commit 4f0e6db into main May 29, 2026
4 checks passed
@ramakrishnap-nv
ramakrishnap-nv deleted the skills-cuopt-skill-evolution-eval branch July 9, 2026 18:34
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