Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions skills/cuopt-multi-objective-exploration/BENCHMARK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Evaluation Report

Evaluation of the `cuopt-multi-objective-exploration` skill before publication through NVSkills-Eval.

This benchmark summarizes 3-Tier Evaluation from NVSkills-Eval results for the skill. The goal is to document whether the skill is safe, discoverable, effective, and useful for agents before it is published for broader workflow use.

## Evaluation Summary

- Skill: `cuopt-multi-objective-exploration`
- Evaluation date: 2026-06-04
- NVSkills-Eval profile: `external`
- Environment: `astra-sandbox`
- Dataset: 3 evaluation tasks
- Attempts per task: 2
- Pass threshold: 50%
- Overall verdict: PASS

## Agents Used

- `claude-code`
- `codex`

## Metrics Used

Reported benchmark dimensions:

- Security: checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access.
- Correctness: checks whether the agent follows the expected workflow and produces the correct final output.
- Discoverability: checks whether the agent loads the skill when relevant and avoids using it when irrelevant.
- Effectiveness: checks whether the agent performs measurably better with the skill than without it.
- Efficiency: checks whether the agent uses fewer tokens and avoids redundant work.

Underlying evaluation signals used in this run:

- `security` (Security): checks for unsafe operations, secret leakage, and unauthorized access.
- `skill_execution` (Skill Execution): verifies that the agent loaded the expected skill and workflow.
- `skill_efficiency` (Efficiency): checks routing quality, decoy avoidance, and redundant tool usage.
- `accuracy` (Accuracy): grades final-answer correctness against the reference answer.
- `goal_accuracy` (Goal Accuracy): checks whether the overall user task completed successfully.
- `behavior_check` (Behavior Check): verifies expected behavior steps, including safety expectations.
- `token_efficiency` (Token Efficiency): compares token usage with and without the skill.

## Test Tasks

The benchmark dataset contained 3 evaluation tasks:

- Positive tasks: 2 tasks where the skill was expected to activate.
- Negative tasks: 1 tasks where no skill was expected.
- Unlabeled tasks: 0 tasks where positive/negative intent could not be inferred.

Task composition is derived from the evaluation dataset when possible. Entries with `expected_skill` set are treated as positive skill-activation cases, while entries with `expected_skill: null` are treated as negative activation cases.

## Results

| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 6 | 100% (+0%) | 100% (+0%) |
| Correctness | 6 | 82% (+27%) | 78% (+15%) |
| Discoverability | 6 | 67% (+33%) | 64% (+23%) |
| Effectiveness | 6 | 87% (+16%) | 80% (+8%) |
| Efficiency | 6 | 71% (+22%) | 63% (+13%) |

Score values show skill-assisted performance. Values in parentheses show uplift versus the no-skill baseline when baseline data is available.

## Tier 1: Static Validation Summary

Tier 1 validation passed with observations. NVSkills-Eval ran 9 checks and found 9 total findings.

Top findings:

- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Instructions' (`skills/cuopt-multi-objective-exploration/SKILL.md`)
- MEDIUM SCHEMA/body_recommended_section: Missing recommended section: '## Examples' (`skills/cuopt-multi-objective-exploration/SKILL.md`)
- LOW QUALITY/quality_discoverability: Description doesn't mention WHEN to use this skill (`skills/cuopt-multi-objective-exploration/SKILL.md`)
- LOW QUALITY/quality_discoverability: No '## Purpose' section (`skills/cuopt-multi-objective-exploration/SKILL.md`)
- LOW QUALITY/quality_reliability: No mention of error handling or validation (`skills/cuopt-multi-objective-exploration/SKILL.md`)

## Tier 2: Deduplication Summary

Tier 2 validation passed. NVSkills-Eval ran 2 checks and found 0 total findings.

Notable observations:

- Context Deduplication: Collected 1 file(s)
- Inter-Skill Deduplication: Parsed skill 'cuopt-multi-objective-exploration': 145 char description

## Publication Recommendation

The skill is suitable to proceed toward NVSkills-Eval publication based on this benchmark. Skill owners should keep this file with the skill and refresh it when the evaluation dataset, skill behavior, or target agents materially change.
1 change: 1 addition & 0 deletions skills/cuopt-multi-objective-exploration/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ metadata:

# Multi-Objective Exploration


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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check DCO sign-off trailers on PR commits =="
git log --format='%H%n%B%n----' | awk '
BEGIN{ok=1; RS="----\n"}
{
  if ($0 ~ /^[0-9a-f]{40}\n/ && $0 !~ /Signed-off-by:[[:space:]]+/) {
    split($0, a, "\n"); print "Missing Signed-off-by on commit: " a[1]; ok=0
  }
}
END{ if (ok) print "All commits include Signed-off-by trailer." ; else exit 1 }'

echo
echo "== Check PR comments for /nvskills-ci trigger =="
# Requires gh auth in the verification environment
gh pr view 1392 --repo NVIDIA/cuopt --comments --json comments \
  --jq '.comments[].body' | rg -n '/nvskills-ci' || {
    echo "No /nvskills-ci comment found on PR `#1392`"; exit 1;
  }

Repository: NVIDIA/cuopt

Length of output: 178


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check PR comments for /nvskills-ci trigger =="
# Use gh to check PR comments for NVSkills CI validation
gh pr view 1392 --repo NVIDIA/cuopt --json comments --jq '.comments[].body' | grep -c '/nvskills-ci' > /dev/null && {
  echo "/nvskills-ci validation comment found"
} || {
  echo "No /nvskills-ci validation comment found on PR"
}

Repository: NVIDIA/cuopt

Length of output: 143


Add DCO sign-off to commits before merging.

Commit f0ad3b7 is missing the required Signed-off-by trailer. Amend all commits with git commit --amend -s and force-push to satisfy DCO policy for **/* files.

🤖 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-multi-objective-exploration/SKILL.md` at line 20, The commit
f0ad3b7218abb88f84b882da7fcd016e76775994 is missing the Signed-off-by trailer;
amend that commit (and any other commits in this branch affecting **/*) by
running git commit --amend -s for the most recent commit or use git rebase -i to
edit older commits, add the Signed-off-by line, then force-push the branch (git
push --force) to update the PR.

cuOpt optimizes **one** objective per solve. Many real problems have several objectives that pull against each other — cost vs. service level, return vs. risk, makespan vs. overtime, distance vs. vehicle count. A single solve answers "what's optimal *for one particular weighting*," but it hides the tradeoff the user actually needs to see.

This skill turns a sequence of single-objective cuOpt solves into a **Pareto frontier** — the set of solutions where you can't improve one objective without giving up another — and gives the discipline to read it. It adds no solver features; it orchestrates the LP / MILP / QP solves already covered by the formulation and API skills.
Expand Down
81 changes: 81 additions & 0 deletions skills/cuopt-multi-objective-exploration/skill-card.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
## Description: <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 | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

REPO="NVIDIA/cuopt"
PR="1392"

gh pr view "$PR" --repo "$REPO" --json comments,commits,statusCheckRollup \
| jq -r '
  def maintainer: .=="OWNER" or .=="MEMBER" or .=="COLLABORATOR";

  "Maintainer /nvskills-ci comments:",
  (
    [.comments[]?
      | select((.body | test("^/nvskills-ci\\b")) and (.authorAssociation | maintainer))
      | (.author.login + " [" + .authorAssociation + "]")]
    | if length==0 then "NONE" else .[] end
  ),

  "",
  "Commits missing DCO Signed-off-by:",
  (
    [.commits[]?
      | select(((.messageBody // "") | test("(?m)^Signed-off-by:\\s+.+<.+>$")) | not)
      | .oid[0:7]]
    | if length==0 then "NONE" else .[] end
  ),

  "",
  "Status checks:",
  (.statusCheckRollup[]? | (.context + ": " + (.state // "UNKNOWN")))
'

Repository: NVIDIA/cuopt

Length of output: 446


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Get full-ish objects for status checks (trim fields to keep output small)
gh pr view "$PR" --repo "$REPO" --json statusCheckRollup \
| jq -r '
  "statusCheckRollup_count=" + ((.statusCheckRollup|length|tostring)),
  (.statusCheckRollup[]? 
    | {context:(.context//null), state:(.state//null), description:(.description//null), detailsUrl:(.detailsUrl//null), checkSuite:(.checkSuiteId//null), checkRun:(.checkRunId//null)}
    | tojson
  )
'

Repository: NVIDIA/cuopt

Length of output: 3852


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Check for /nvskills-ci comments with authorAssociation and exact body text
gh pr view "$PR" --repo "$REPO" --json comments \
| jq -r '
  "nvskills-ci comments:",
  ([.comments[]?
    | select(.body|test("^/nvskills-ci\\b"))
    | {login:.author.login, assoc:.authorAssociation, body:.body}]
   | sort_by(.login)
   | .[]
  ] | .)
'

Repository: NVIDIA/cuopt

Length of output: 194


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Validate which commit(s) are missing DCO and show their Signed-off-by lines presence
gh pr view "$PR" --repo "$REPO" --json commits \
| jq -r '
  "Total commits=" + ((.commits|length|tostring)),
  ([
    .commits[]?
    | {oid:(.oid//""|tostring), short:(.oid[0:7]//""), hasDco:(((.messageBody//"")|test("(?m)^Signed-off-by:\\s+.+<.+>$")))}
    | select(.hasDco==false)
    | .oid[0:7]
  ] | if length==0 then "DCO: NONE_MISSING" else ("Commits missing DCO Signed-off-by: " + (join(", "))) end),
  # Show the commit messageBody for the missing ones (truncated)
  ([
    .commits[]?
    | select(((.messageBody//"")|test("(?m)^Signed-off-by:\\s+.+<.+>$"))|not)
    | {oid:(.oid|tostring), messageBody:(.messageBody//""|gsub("\n";"\\n")|.[:600])}
  ] | .[])
'

Repository: NVIDIA/cuopt

Length of output: 249


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Pull richer check data (often `statusCheckRollup` lacks context/state)
gh pr view "$PR" --repo "$REPO" --json checks,checkSuites,commits \
| jq -r '
  "checks_count=" + ((.checks|length|tostring)),
  (.checks[]?
    | {name:(.name//null), conclusion:(.conclusion//null), status:(.status//null), detailsUrl:(.detailsUrl//null), checkSuite:(.checkSuite?.name//null), checkRun:(.checkRunId//null)}
    | tojson
  ),
  "",
  "checkSuites_count=" + ((.checkSuites|length|tostring)),
  (.checkSuites[]?
    | {name:(.name//null), state:(.state//null), conclusion:(.conclusion//null), status:(.status//null), detailsUrl:(.detailsUrl//null)}
    | tojson
  )
'

Repository: NVIDIA/cuopt

Length of output: 724


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Search comments timeline for /nvskills-ci and for any response text mentioning success/failure
gh pr view "$PR" --repo "$REPO" --json comments \
| jq -r '
  ([.comments[]?
    | select((.body//""|test("/nvskills-ci\\b")))
    | {login:.author.login, assoc:(.authorAssociation//null), body:(.body//""|gsub("\n";"\\n")|.[:200])}
   ])
'

Repository: NVIDIA/cuopt

Length of output: 154


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

# Get PR head SHA
SHA="$(gh pr view "$PR" --repo "$REPO" --json headRefOid -q .headRefOid)"
echo "headRefOid=$SHA"

# Find any NVSkills-related success/failure text in PR comments
gh pr view "$PR" --repo "$REPO" --json comments \
| jq -r '
  [ .comments[]?
    | {login:.author.login, assoc:(.authorAssociation//""), body:(.body//"")}
    | select((.body|ascii_downcase|test("nvskills")) or (.body|ascii_downcase|test("skills ci")) or (.body|ascii_downcase|test("validated")) or (.body|ascii_downcase|test("\\bpassed\\b|\\bpass\\b")) or (.body|ascii_downcase|test("\\bfailed\\b|\\bfail\\b")) or (.body|ascii_downcase|test("success")) or (.body|ascii_downcase|test("failure")) or (.body|ascii_downcase|test("validation")) or (.body|ascii_downcase|test("^/nvskills-ci\\b"))
  ]
  | map({login,assoc,body:(.body|gsub("\n";"\\n")|.[:220])})
  | sort_by(.login)
  | .[]
'

Repository: NVIDIA/cuopt

Length of output: 281


🏁 Script executed:

#!/bin/bash
set -euo pipefail
REPO="NVIDIA/cuopt"
PR="1392"

SHA="$(gh pr view "$PR" --repo "$REPO" --json headRefOid -q .headRefOid)"
echo "headRefOid=$SHA"

# List check-runs on the PR head commit; filter for NVSkills/skills-related names.
gh api "repos/${REPO}/commits/${SHA}/check-runs" --paginate \
| jq -r '
  .check_runs? // [] 
  | map({
      name:(.name//null),
      status:(.status//null),
      conclusion:(.conclusion//null)
    })
  | map(select((.name|ascii_downcase|test("nvskills|skills"))))
  | (if length==0 then [{name:"NONE_MATCHING",status:null,conclusion:null}] else . end)
  | .[]
  | tojson
'

Repository: NVIDIA/cuopt

Length of output: 165


Fix required: missing DCO sign-off and NVSkills CI validation not evidenced for skills/** change

  • /nvskills-ci trigger present (rgsl888prabhu [COLLABORATOR]), but no NVSkills/skills-related check-runs were found on the PR head SHA, so successful validation isn’t evidenced.
  • DCO sign-off missing: commit f0ad3b7 (no Signed-off-by: line in its message body).
🤖 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-multi-objective-exploration/skill-card.md` at line 1, The PR
lacks a DCO sign-off on commit f0ad3b7 and shows no NVSkills CI validation for
changes under skills/**; fix by amending the commit message for f0ad3b7 to add a
"Signed-off-by: Your Name <you@domain>" line (git commit --amend --no-edit then
git push --force) so the DCO check can pass, and ensure the NVSkills CI runs
against the PR head SHA by re-triggering the /nvskills-ci workflow (or creating
a new empty commit/force-push) so the NVSkills/skills-related check-runs appear
on the PR; verify the check-runs complete successfully before marking resolved.

Trace and interpret the Pareto frontier across competing objectives using repeated single-objective cuOpt solves (weighted-sum and ε-constraint). <br>

This skill is ready for commercial/non-commercial use. <br>

## Owner
NVIDIA <br>

### License/Terms of Use: <br>
Apache 2.0 <br>
## Use Case: <br>
Developers and optimization engineers exploring multi-objective tradeoffs across LP, MILP, QP, and routing problems to present decision-makers with the full Pareto frontier rather than a single collapsed optimum. <br>

### Deployment Geography for Use: <br>
Global <br>

## Known Risks and Mitigations: <br>
Risk: Review before execution as proposals could introduce incorrect or misleading guidance into skills. <br>
Mitigation: Review and scan skill before deployment. <br>

## Reference(s): <br>
- [cuOpt User Guide](https://docs.nvidia.com/cuopt/user-guide/latest/introduction.html) <br>
- [cuopt-examples](https://github.com/NVIDIA/cuopt-examples) <br>


## Skill Output: <br>
**Output Type(s):** [Analysis, Code] <br>
**Output Format:** [Markdown with inline code blocks] <br>
**Output Parameters:** [1D] <br>
**Other Properties Related to Output:** [None] <br>

## Evaluation Agents Used: <br>
- Claude Code (`claude-code`) <br>
- Codex (`codex`) <br>



## Evaluation Tasks: <br>
Evaluated against 3 internal evaluation tasks (2 positive skill-activation, 1 negative) with 2 attempts per task. <br>

## Evaluation Metrics Used: <br>
Reported benchmark dimensions: <br>
- Security: Checks whether skill-assisted execution avoids unsafe behavior such as secret leakage, destructive commands, or unauthorized access. <br>
- Correctness: Checks whether the agent follows the expected workflow and produces the correct final output. <br>
- Discoverability: Checks whether the agent loads the skill when relevant and avoids using it when irrelevant. <br>
- Effectiveness: Checks whether the agent performs measurably better with the skill than without it. <br>
- Efficiency: Checks whether the agent uses fewer tokens and avoids redundant work. <br>

Underlying evaluation signals used in this run: <br>
- `security`: Checks for unsafe operations, secret leakage, and unauthorized access. <br>
- `skill_execution`: Verifies that the agent loaded the expected skill and workflow. <br>
- `skill_efficiency`: Checks routing quality, decoy avoidance, and redundant tool usage. <br>
- `accuracy`: Grades final-answer correctness against the reference answer. <br>
- `goal_accuracy`: Checks whether the overall user task completed successfully. <br>
- `behavior_check`: Verifies expected behavior steps, including safety expectations. <br>
- `token_efficiency`: Compares token usage with and without the skill. <br>



## Evaluation Results: <br>
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 6 | 100% (+0%) | 100% (+0%) |
| Correctness | 6 | 82% (+27%) | 78% (+15%) |
| Discoverability | 6 | 67% (+33%) | 64% (+23%) |
| Effectiveness | 6 | 87% (+16%) | 80% (+8%) |
| Efficiency | 6 | 71% (+22%) | 63% (+13%) |

## Testing Completed: <br>
Comment on lines +60 to +69
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

Add blank lines around the table to satisfy markdownlint (MD058).

Suggested fix
 ## Evaluation Results: <br>
+
 | Dimension | Num | `claude-code` | `codex` |
 |---|---:|---:|---:|
 | Security | 6 | 100% (+0%) | 100% (+0%) |
 | Correctness | 6 | 82% (+27%) | 78% (+15%) |
 | Discoverability | 6 | 67% (+33%) | 64% (+23%) |
 | Effectiveness | 6 | 87% (+16%) | 80% (+8%) |
 | Efficiency | 6 | 71% (+22%) | 63% (+13%) |
+
 ## Testing Completed: <br>
📝 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
## Evaluation Results: <br>
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 6 | 100% (+0%) | 100% (+0%) |
| Correctness | 6 | 82% (+27%) | 78% (+15%) |
| Discoverability | 6 | 67% (+33%) | 64% (+23%) |
| Effectiveness | 6 | 87% (+16%) | 80% (+8%) |
| Efficiency | 6 | 71% (+22%) | 63% (+13%) |
## Testing Completed: <br>
## Evaluation Results: <br>
| Dimension | Num | `claude-code` | `codex` |
|---|---:|---:|---:|
| Security | 6 | 100% (+0%) | 100% (+0%) |
| Correctness | 6 | 82% (+27%) | 78% (+15%) |
| Discoverability | 6 | 67% (+33%) | 64% (+23%) |
| Effectiveness | 6 | 87% (+16%) | 80% (+8%) |
| Efficiency | 6 | 71% (+22%) | 63% (+13%) |
## Testing Completed: <br>
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 61-61: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 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-multi-objective-exploration/skill-card.md` around lines 60 - 69,
The markdown table under the "## Evaluation Results:" header violates MD058 by
not having blank lines surrounding it; fix by inserting a blank line immediately
after the "## Evaluation Results:" line and another blank line immediately
before the "## Testing Completed:" header so the table (the rows starting with
"| Dimension | Num | `claude-code` | `codex` |" through the final efficiency
row) is separated by blank lines from surrounding content.

**[x] Agent Red-Teaming** <br>
**[ ] Network Security** <br>
**[ ] Product Security** <br>

## Skill Version(s): <br>
26.08.00 (source: frontmatter) <br>

## Ethical Considerations: <br>
NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their internal team to ensure this skill meets requirements for the relevant industry and use case and addresses unforeseen product misuse. <br>

(For Release on NVIDIA Platforms Only) <br>
Please report quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail). <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 | 🟡 Minor | ⚡ Quick win

Use descriptive link text instead of “here” (MD059).

Suggested fix
-Please report quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail). <br>
+Please report quality, risk, security vulnerabilities, or NVIDIA AI concerns through the [NVIDIA Vulnerability Disclosure Program portal](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail). <br>
📝 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
Please report quality, risk, security vulnerabilities or NVIDIA AI Concerns [here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail). <br>
Please report quality, risk, security vulnerabilities, or NVIDIA AI concerns through the [NVIDIA Vulnerability Disclosure Program portal](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail). <br>
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 81-81: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 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-multi-objective-exploration/skill-card.md` at line 81, Replace
the ambiguous link text "here" with descriptive link text that explains the
destination and purpose (e.g., "report NVIDIA AI concerns on Intigriti" or
"report vulnerabilities on Intigriti"), updating the markdown in skill-card.md
where the current sentence contains "Please report quality, risk, security
vulnerabilities or NVIDIA AI Concerns
[here](https://app.intigriti.com/programs/nvidia/nvidiavdp/detail)". Ensure the
link text is meaningful for screen readers and satisfies MD059 by describing the
link target and context.

1 change: 1 addition & 0 deletions skills/cuopt-multi-objective-exploration/skill.oms.sig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY3VvcHQtbXVsdGktb2JqZWN0aXZlLWV4cGxvcmF0aW9uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlhYWE2M2VmODg5ZGJlZDNiMjBmY2IzNWNhOTRmNmRmMWM4OTY1MDY1MGU0Y2UzNTI2MjVhZTE0NWNjMzdiYzQiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vbW9kZWxfc2lnbmluZy9zaWduYXR1cmUvdjEuMCIsCiAgInByZWRpY2F0ZSI6IHsKICAgICJyZXNvdXJjZXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJCRU5DSE1BUksubWQiLAogICAgICAgICJkaWdlc3QiOiAiZDYzNDAwMDQ5NWY2ODIwMjRhMTk4YzE2YzQ2YjI0NjQ2NDBmYzdmMDQ2YTZjNWI2Y2U2YzA2YmJjMWFiY2ViMyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJTS0lMTC5tZCIsCiAgICAgICAgImRpZ2VzdCI6ICIyZTU1ZTQ4OTJkNWFiNGM3MmUxMzExM2U0N2JhYjMxNzllNTY1MmQ2YjkxMDkxYjUzY2Q1YzRiNWYyZTQ0NjFhIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIKICAgICAgfSwKICAgICAgewogICAgICAgICJuYW1lIjogImV2YWxzL2V2YWxzLmpzb24iLAogICAgICAgICJkaWdlc3QiOiAiYmQyNDZhMGIwZjI3ZDc2ZWM1NWY0ZTQ0ZmI0YTY5OWExYjA5MGEzMWViNTM3ZWQxZDFlNjcxNzVhZjcwY2NkNCIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIiwKICAgICAgICAiZGlnZXN0IjogImIyZWM0OTliY2I3MTZkNmY2MTZmYjllZTdjYjRjNDIzOTk5OTRmNGQxYjRjZjc5ZDU2NWFhMzQyMmY2MDAwYjUiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IgogICAgICB9CiAgICBdLAogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJoYXNoX3R5cGUiOiAic2hhMjU2IiwKICAgICAgIm1ldGhvZCI6ICJmaWxlcyIsCiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXQiLAogICAgICAgICIuZ2l0YXR0cmlidXRlcyIsCiAgICAgICAgIi5naXRpZ25vcmUiLAogICAgICAgICIuZ2l0aHViIgogICAgICBdLAogICAgICAiYWxsb3dfc3ltbGlua3MiOiBmYWxzZQogICAgfQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGYCMQDC6YZ+JneK1xyVbw54nL0CZSx3RVTz41x3nuBTevnIbJRA6KL3BBgi9w0U04hXgyMCMQCCLUgA2q2sIYRXxKqsYGgLh1ZpDxZvIrw42soe+x/ALAia5+KlXRVi0yHqXEx+tQw=","keyid":""}]}}