Skip to content

cuopt-numerical-optimization-api-python: catalog onboarding prep - #1344

Merged
ramakrishnap-nv merged 2 commits into
mainfrom
skills/onboarding-cuopt-numerical-optimization-api-python
May 29, 2026
Merged

cuopt-numerical-optimization-api-python: catalog onboarding prep#1344
ramakrishnap-nv merged 2 commits into
mainfrom
skills/onboarding-cuopt-numerical-optimization-api-python

Conversation

@ramakrishnap-nv

@ramakrishnap-nv ramakrishnap-nv commented May 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

Shorten the SKILL.md description to fit the 50-150 char range the NV-BASE quality scorer recommends — the previous CI run reported "Description very long" (NVIDIA Agent Skills Publishing Onboarding Guide § "Writing Skills for Good Agent Triggering").

No behavior change; documentation/metadata only.

Split out from #1310.

Test plan

  • Static checks pass (skillspector)
  • Description scorer no longer flags "Description very long"

🤖 Generated with Claude Code

@ramakrishnap-nv
ramakrishnap-nv requested a review from a team as a code owner May 29, 2026 15:43
@ramakrishnap-nv
ramakrishnap-nv requested a review from Iroy30 May 29, 2026 15:43
ramakrishnap-nv added a commit that referenced this pull request May 29, 2026
Aligns with the NVIDIA Agent Skills Publishing Onboarding Guide:

* Add top-level SECURITY.md so the catalog's "Getting Help &
  Contributing" links resolve once this repo is registered in
  components.d/<slug>.yml (guide §"Recommended Repository Layout").

* Wire .github/CODEOWNERS and .github/workflows/pr.yaml so doc-only
  edits to SECURITY.md don't trigger the full CI matrix (cpp-build,
  python-build, docs-build, conda-build path-filter blocks).

* Shorten cuopt-skill-evolution SKILL.md description to fit the
  50-150 char range the NV-BASE quality scorer recommends. The
  previous CI run reported "Description very long" (guide §"Writing
  Skills for Good Agent Triggering").

Per-skill description and PII-array changes for the other skills
moved to dedicated follow-up PRs (#1343, #1344, #1345, #1346) so
each PR's CI scope is limited to one skill.

No behavior change; documentation/metadata only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@coderabbitai

coderabbitai Bot commented May 29, 2026

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: 35499b9d-194f-44d3-9bcb-87ad676fb17d

📥 Commits

Reviewing files that changed from the base of the PR and between f32426a and 2b99489.

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

📝 Walkthrough

Walkthrough

This PR updates the cuOpt numerical optimization Python skill docs: shortens the SKILL.md front-matter description, reformats a large-expression example, revises the skill card and BENCHMARK evaluation content, and regenerates the skill.oms.sig DSSE attestation bundle.

Changes

Documentation & attestation updates

Layer / File(s) Summary
SKILL front-matter and example
skills/cuopt-numerical-optimization-api-python/SKILL.md
Shortened YAML description to summarize LP/MILP/QP support and reformatted coeffs_list from a single-line array to a multi-line list preserving values.
Skill card metadata and evaluation
skills/cuopt-numerical-optimization-api-python/skill-card.md
Updated top-line summary, use case wording, reordered references, changed Skill Output wording (output types and solver-output phrasing), adjusted pass-threshold phrasing, and updated per-dimension evaluation metrics.
Benchmark metrics and findings
skills/cuopt-numerical-optimization-api-python/BENCHMARK.md
Refreshed NVSkills-Eval metric table and revised Tier 1/Tier 2 “Top findings” content and counts.
Regenerated attestation bundle
skills/cuopt-numerical-optimization-api-python/skill.oms.sig
Replaced DSSE envelope payload digests and updated the signature value in the sigstore/DSSE bundle.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • NVIDIA/cuopt#1301: Related documentation changes for resources/...references/... renaming affecting SKILL.md and skill-card.md.
  • NVIDIA/cuopt#1332: Related updates to the same skill’s documentation and regenerated skill.oms.sig.
  • NVIDIA/cuopt#1308: Related regeneration of the skill.oms.sig attestation bundle for the cuOpt Python skill.

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 'cuopt-numerical-optimization-api-python: catalog onboarding prep' accurately describes the main objective of shortening documentation for catalog/onboarding purposes.
Description check ✅ Passed The description clearly explains the purpose (shortening SKILL.md description to meet NV-BASE quality scorer recommendation), confirms no behavior changes, and outlines the test plan.
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/onboarding-cuopt-numerical-optimization-api-python

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: 2

🧹 Nitpick comments (1)
skills/cuopt-numerical-optimization-api-python/assets/portfolio/model.py (1)

18-20: ⚡ Quick win

Use descriptive return parameter names with units/context.

At Line 18–20, r1/r2/r3 obscures meaning. Prefer names like return_stock_a, return_stock_b, return_stock_c (or similar) to make problem-space and units explicit.

As per coding guidelines, for **/*.{cu,cuh,hpp,cpp,py}: “Flag misleading names hiding GPU/CPU boundaries, units, or problem-space context”.

🤖 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-numerical-optimization-api-python/assets/portfolio/model.py`
around lines 18 - 20, The variables r1, r2, r3 are ambiguous; rename them to
descriptive, unit-aware names (e.g., annual_return_stock_a,
annual_return_stock_b, annual_return_stock_c or return_pct_stock_a etc.) inside
model.py and update all references in the same module (and any functions/classes
that use r1/r2/r3 such as the portfolio construction or expected return
calculations) so names convey asset identity and units (percent/decimal) and
preserve existing numeric values and types.
🤖 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-numerical-optimization-api-python/assets/portfolio/model.py`:
- Around line 18-20: The change in model.py introduced/edited the constants r1,
r2, r3; add pytest unit tests under python/cuopt/cuopt/tests that import the
module (e.g., from
skills.cuopt_numerical_optimization_api_python.assets.portfolio import model or
the correct package path) and assert the expected numeric values for r1, r2, r3
(0.12, 0.08, 0.05) and any related behavior/usage of those constants; name the
test file something like test_model_constants.py and include clear assertions
and minimal fixtures to keep examples validated as they evolve.

In `@skills/cuopt-numerical-optimization-api-python/SKILL.md`:
- Line 4: Add the required NVSkills CI trigger and signature check before
merging: post a PR comment containing the exact text "/nvskills-ci" and verify
the signature commit referenced in this
skills/cuopt-numerical-optimization-api-python/SKILL.md change (the signature
commit that signed the skills/** files) is still present in the PR commits; only
merge after adding the comment and confirming the signature commit exists.

---

Nitpick comments:
In `@skills/cuopt-numerical-optimization-api-python/assets/portfolio/model.py`:
- Around line 18-20: The variables r1, r2, r3 are ambiguous; rename them to
descriptive, unit-aware names (e.g., annual_return_stock_a,
annual_return_stock_b, annual_return_stock_c or return_pct_stock_a etc.) inside
model.py and update all references in the same module (and any functions/classes
that use r1/r2/r3 such as the portfolio construction or expected return
calculations) so names convey asset identity and units (percent/decimal) and
preserve existing numeric values and types.
🪄 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: f9adcb5a-5245-4511-96aa-d722baad09a0

📥 Commits

Reviewing files that changed from the base of the PR and between ea7acf0 and 90cb95f.

📒 Files selected for processing (4)
  • skills/cuopt-numerical-optimization-api-python/SKILL.md
  • skills/cuopt-numerical-optimization-api-python/assets/mps_solver/results.md
  • skills/cuopt-numerical-optimization-api-python/assets/portfolio/model.py
  • skills/cuopt-numerical-optimization-api-python/references/qp_examples.md

Comment on lines +18 to +20
r1 = 0.12
r2 = 0.08
r3 = 0.05

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

Add/adjust Python unit tests for this code change.

This .py change should be accompanied by tests under python/cuopt/cuopt/tests to keep examples validated as they evolve.

As per coding guidelines, for **/*.{cpp,cc,cxx,c,h,hpp,py}: “Add unit tests for code changes; refer to python/cuopt/cuopt/tests for Python pytest examples”.

🤖 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-numerical-optimization-api-python/assets/portfolio/model.py`
around lines 18 - 20, The change in model.py introduced/edited the constants r1,
r2, r3; add pytest unit tests under python/cuopt/cuopt/tests that import the
module (e.g., from
skills.cuopt_numerical_optimization_api_python.assets.portfolio import model or
the correct package path) and assert the expected numeric values for r1, r2, r3
(0.12, 0.08, 0.05) and any related behavior/usage of those constants; name the
test file something like test_model_constants.py and include clear assertions
and minimal fixtures to keep examples validated as they evolve.

name: cuopt-numerical-optimization-api-python
version: "26.08.00"
description: Solve Linear Programming (LP), Mixed-Integer Linear Programming (MILP), and Quadratic Programming (QP, beta) with the Python API. Use when the user asks about optimization with linear or quadratic objectives, linear constraints, integer variables, scheduling, resource allocation, facility location, production planning, portfolio optimization, or least squares.
description: Solve LP, MILP, QP (beta) with cuOpt Python APIlinear/quadratic objectives, integer variables, scheduling, portfolio, least squares.

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

Trigger NVSkills CI validation for this skills/ PR.

Please add a PR comment with /nvskills-ci and confirm the signature commit is still present before merge.

As per coding guidelines, for skills/**/*: “request NVSkills CI validation by commenting /nvskills-ci and ensure the signature commit remains in the PR”.

🤖 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-numerical-optimization-api-python/SKILL.md` at line 4, Add the
required NVSkills CI trigger and signature check before merging: post a PR
comment containing the exact text "/nvskills-ci" and verify the signature commit
referenced in this skills/cuopt-numerical-optimization-api-python/SKILL.md
change (the signature commit that signed the skills/** files) is still present
in the PR commits; only merge after adding the comment and confirming the
signature commit exists.

Shorten the SKILL.md description to fit the 50-150 char range the
NV-BASE quality scorer recommends. The previous CI run reported
"Description very long" (NVIDIA Agent Skills Publishing Onboarding
Guide § "Writing Skills for Good Agent Triggering").

No behavior change; documentation/metadata only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Ramakrishna Prabhu <ramakrishnap@nvidia.com>
@ramakrishnap-nv
ramakrishnap-nv force-pushed the skills/onboarding-cuopt-numerical-optimization-api-python branch from 90cb95f to f32426a Compare May 29, 2026 16:09
@ramakrishnap-nv

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

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.

@ramakrishnap-nv
ramakrishnap-nv merged commit b0791ac into main May 29, 2026
3 of 4 checks passed
@ramakrishnap-nv
ramakrishnap-nv deleted the skills/onboarding-cuopt-numerical-optimization-api-python 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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants