Skip to content

Add a skill for evolving skills or adding new skills based on interaction#952

Merged
rapids-bot[bot] merged 15 commits intoNVIDIA:mainfrom
rgsl888prabhu:add_skill_evolution
Mar 17, 2026
Merged

Add a skill for evolving skills or adding new skills based on interaction#952
rapids-bot[bot] merged 15 commits intoNVIDIA:mainfrom
rgsl888prabhu:add_skill_evolution

Conversation

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator

Description

The new skill will try to propose a change or new skills so that it can capture generic patterns to help next developer

Checklist

  • I am familiar with the Contributing Guidelines.
  • Testing
    • New or existing tests cover these changes
    • Added tests
    • Created an issue to follow-up
    • NA
  • Documentation
    • The documentation is up to date with these changes
    • Added new documentation
    • NA

@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot bot commented Mar 11, 2026

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.

@rgsl888prabhu rgsl888prabhu self-assigned this Mar 11, 2026
@rgsl888prabhu rgsl888prabhu added non-breaking Introduces a non-breaking change improvement Improves an existing functionality labels Mar 11, 2026
@anandhkb anandhkb added this to the 26.04 milestone Mar 12, 2026
@rgsl888prabhu rgsl888prabhu marked this pull request as ready for review March 12, 2026 21:23
@rgsl888prabhu rgsl888prabhu requested review from a team as code owners March 12, 2026 21:23
@rgsl888prabhu rgsl888prabhu requested a review from tmckayus March 12, 2026 21:23
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 12, 2026

📝 Walkthrough

Walkthrough

Adds a Skill Evolution framework: registers a new plugin and cursor rule, introduces comprehensive skill-evolution docs and workflows, updates agent documentation and CI validation docs, and inserts post-correction hooks and modeling guidance into existing skills.

Changes

Cohort / File(s) Summary
Plugin & marketplace
.claude-plugin/marketplace.json
Adds a new skill-evolution plugin entry referencing ./skills/skill-evolution with description and always-active intent.
Cursor rule
.cursor/rules/skill-evolution.mdc
Adds a new rule that triggers the skill-evolution workflow after resolving non-trivial problems; marked alwaysApply.
Agent docs / redirect
.claude/CLAUDE.md, agents/AGENTS.md
Updates a relative reference in .claude/CLAUDE.md and adds agents/AGENTS.md as a redirect file pointing to ../AGENTS.md.
Top-level agent docs
AGENTS.md
Expands top-level agent documentation with skill evolution description, a rules entry for the skill-evolution directory, and a mandatory post-correction hook section describing evaluation timing and conditions.
CI docs
ci/README.md
Adds a "Skill validation" section documenting existing tests for skills/ (scripts and invocation instructions).
Skill assets — new framework
skills/skill-evolution/SKILL.md
Adds a comprehensive Skill Evolution specification: triggers, three-phase workflow (learning/inference/offline reflection), placement rules, proposal formats, provenance tagging, security constraints, distillation checklist, and CI validation steps.
Skill assets — updates / hooks
skills/cuopt-user-rules/SKILL.md, skills/lp-milp-formulation/SKILL.md
Inserts a mandatory post-correction check into cuopt-user-rules and extends lp-milp-formulation with sections on piecewise-linear integers, cutting-stock, goal programming (preemptive/lexicographic), multi-period inventory, and blending linearizations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly summarizes the main change: introducing a new skill framework for evolving and adding skills based on interactions.
Description check ✅ Passed The PR description is related to the changeset, explaining that the new skill proposes changes or new skills to capture generic patterns.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

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

Tip

CodeRabbit can use Trivy to scan for security misconfigurations and secrets in Infrastructure as Code files.

Add a .trivyignore file to your project to customize which findings Trivy reports.

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 the current code and only fix it if needed.

Inline comments:
In `@skills/skill-evolution/SKILL.md`:
- Line 84: Add language identifiers to the two fenced code blocks in SKILL.md
that currently lack them: locate the fence under the "Skill update proposal:"
block and the fence under the "Skill insight (unscored):" block and change the
opening triple backticks from ``` to ```text so both code blocks are labeled
(for example, use the "text" tag) to satisfy markdownlint MD040.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ddc77017-3ae3-4df1-827c-9bbec706998f

📥 Commits

Reviewing files that changed from the base of the PR and between d531ad1 and e53e5c4.

📒 Files selected for processing (10)
  • .claude-plugin/marketplace.json
  • .claude/CLAUDE.md
  • .cursor/rules/skill-evolution.mdc
  • AGENTS.md
  • agents/AGENTS.md
  • agents/AGENTS.md
  • ci/README.md
  • skills/cuopt-user-rules/SKILL.md
  • skills/lp-milp-formulation/SKILL.md
  • skills/skill-evolution/SKILL.md


The user may approve, decline, or defer for offline reflection.

## Phase 3: Offline reflection
Copy link
Copy Markdown
Contributor

@hlinsen hlinsen Mar 12, 2026

Choose a reason for hiding this comment

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

Few questions:

  1. For training the agent should have a clear context for each new prompt.
  2. The agent has seen the ground truths and would be jumping to inference without clearing context. I think we need state it explicitly and check that it works otherwise it may not be possible to do in the same active session.
  3. I think we need an evaluate.py that sets up the train pipeline. I don't think it can go over a dataset and understand what is train and test with the skill only. You can take a look at: https://github.com/karpathy/autoresearch/blob/master/prepare.py
  4. Should we provide a parser.py? The data is either in json or csv for outbound skill refinement: https://github.com/NVIDIA/cuopt-examples/tree/main/cuopt-agent/cuopt_agent/data/max_supply_what_ifs/eval

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I am currently working on eval part where I will try to evolve skill based on industry or dataset and then run again with updated ones. And also run this against the optmath and other dataset to see if it provides better performance.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@hlinsen I agree, evaluation and evolution script needs to be separate. There is a on going discussion on how to tackle this, may be we can work on this as follow-up.

@Iroy30
Copy link
Copy Markdown
Member

Iroy30 commented Mar 16, 2026

@rgsl888prabhu Is there a way to ensure that the new edits being added is not extensive and also not specific. I remember when I was trying to do the same with industryor it updated skills to be very specific wrt the currency and terminology used to perform better to that specific benchmark

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

@rgsl888prabhu Is there a way to ensure that the new edits being added is not extensive and also not specific. I remember when I was trying to do the same with industryor it updated skills to be very specific wrt the currency and terminology used to perform better to that specific benchmark

I have added specific rules so that it will not add very specific details, but a human needs to be in the loop to make sure these edits are not of that nature. That's why in normal circumstances, it proposes edits to the user and user needs to verify before adding those.

Currently we are working on evaluation methods that should help us mitigate these issue more robustly.

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.

♻️ Duplicate comments (1)
skills/lp-milp-formulation/SKILL.md (1)

176-192: ⚠️ Potential issue | 🔴 Critical

Missing <!-- skill-evolution:end --> marker.

The goal programming section has a start marker at line 177 but no corresponding end marker before the separator at line 193. All other skill-evolution sections in this file have matching start/end markers. This inconsistency will likely break any automated processing that relies on these markers.

🔧 Proposed fix
 
 **Default:** If the problem does not specify timing within a period, use **only** end-of-period capacity (`stock[t] <= capacity`). Add the after-purchase constraint only if the problem explicitly requires it.
+<!-- skill-evolution:end -->
 
 ---

Note: This issue was previously flagged in past reviews and remains unresolved.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/lp-milp-formulation/SKILL.md` around lines 176 - 192, The goal
programming section has a start marker "<!-- skill-evolution:start — goal
programming section -->" but is missing the matching end marker; add the
corresponding "<!-- skill-evolution:end -->" immediately after the goal
programming block (before the following separator/next section) so the start/end
marker pair is balanced and automated processing can detect the section
correctly.
🧹 Nitpick comments (1)
skills/lp-milp-formulation/SKILL.md (1)

141-148: Consider adding language specifiers to fenced code blocks.

The fenced code blocks at lines 141, 160, and 166 lack language specifiers. While the content is clear, adding specifiers (e.g., text or pseudocode) would satisfy markdown linting rules and improve consistency.

✨ Example fix

For line 141:

-```
+```text
 x_total  — INTEGER (total production of a product)

Similarly for lines 160 and 166.

Also applies to: 160-170

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/lp-milp-formulation/SKILL.md` around lines 141 - 148, Update the three
fenced code blocks that document segment variables so they include a markdown
language specifier (e.g., use ```text or ```pseudocode) to satisfy linting;
specifically edit the block containing "x_total — INTEGER" and the blocks
referencing "s1, s2, …" (the blocks around the symbols x_total, s1, s2 and the
other two fenced examples noted) to prepend a language token after the opening
backticks so the blocks render consistently and pass markdown lints.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@skills/lp-milp-formulation/SKILL.md`:
- Around line 176-192: The goal programming section has a start marker "<!--
skill-evolution:start — goal programming section -->" but is missing the
matching end marker; add the corresponding "<!-- skill-evolution:end -->"
immediately after the goal programming block (before the following
separator/next section) so the start/end marker pair is balanced and automated
processing can detect the section correctly.

---

Nitpick comments:
In `@skills/lp-milp-formulation/SKILL.md`:
- Around line 141-148: Update the three fenced code blocks that document segment
variables so they include a markdown language specifier (e.g., use ```text or
```pseudocode) to satisfy linting; specifically edit the block containing
"x_total — INTEGER" and the blocks referencing "s1, s2, …" (the blocks around
the symbols x_total, s1, s2 and the other two fenced examples noted) to prepend
a language token after the opening backticks so the blocks render consistently
and pass markdown lints.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7d05ebfc-31cd-4fc4-a9ff-2d0c083e8154

📥 Commits

Reviewing files that changed from the base of the PR and between 6c19aeb and 0e3d480.

📒 Files selected for processing (1)
  • skills/lp-milp-formulation/SKILL.md

Copy link
Copy Markdown
Contributor

@hlinsen hlinsen left a comment

Choose a reason for hiding this comment

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

Thanks @rgsl888prabhu!
As discussed in comments, the skill could be further tuned but we already see performance benefits with this version.

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

Created an issue to follow-up on the discussions #965

@rgsl888prabhu
Copy link
Copy Markdown
Collaborator Author

/merge

@rapids-bot rapids-bot bot merged commit 591ac5f into NVIDIA:main Mar 17, 2026
371 of 383 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.

5 participants