CtrlK
BlogDocsLog inGet started
Tessl Logo

cuopt-user-rules

Base rules for end users calling NVIDIA cuOpt (routing/LP/MILP/QP/install/server). Not for cuOpt internals — use cuopt-developer for those.

58

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/nvidia/skills/cuopt-user-rules/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-organized, actionable rule set with concrete commands, tables, and validation checkpoints, and it appropriately avoids teaching cuOpt basics. Its main weaknesses are redundancy across the several ask-first/permission sections (hurting conciseness), a solve workflow expressed narratively rather than as an explicit gated checklist, and inlined detail that could be split into reference files given there is no bundle to absorb it.

Suggestions

Consolidate the overlapping 'Ask Before Assuming', 'Handle Incomplete Questions', 'Ask Before Running', 'No Privileged Operations', and 'Never Install Packages Automatically' sections into one 'Clarify and confirm before acting' section to remove redundancy and tighten token use.

Express the core solve workflow as an explicit numbered checklist with a validation gate after each step (formulate → verify understanding → solve → validate status/objective → post-correction check) rather than a narrative paragraph.

Add a short worked end-to-end example (e.g. a small vehicle-routing or LP solve showing import, setup, solve, and result-summary) to lift actionability, and consider moving the package-by-interface tables into a separate INSTALL.md reference with a clear pointer, improving progressive disclosure.

DimensionReasoningScore

Conciseness

The body is mostly efficient and well-structured with tables and code blocks, but several sections restate obvious guidance ('Don't guess — ask', repeated 'ask before running' framing, multiple overlapping permission/clarify sections) that could be tightened or consolidated. It does not reach 4 because the repeated ask-first material across 'Ask Before Assuming', 'Handle Incomplete Questions', 'Ask Before Running', 'No Privileged Operations', and 'Never Install Packages Automatically' is noticeably redundant.

3 / 5

Actionability

It provides concrete, executable guidance: exact package names per interface, copy-paste verification commands (`import cuopt; print(cuopt.__version__)`, `curl /cuopt/health`), a clear package-by-interface table, and a mandatory result-summary template. It falls short of 5 because most code snippets are illustrative one-liners rather than complete worked examples (e.g. no end-to-end routing/LP solve snippet), and 'Provide diagnostic code snippets when helpful' is guidance rather than shown code.

4 / 5

Workflow Clarity

Multi-step workflows are sequenced with validation checkpoints: 'MUST Verify Understanding' before coding, a Formulate-solve-sanity-check workflow, and a mandatory 'Post-correction check' tied to skill-evolution. The 'Check Environment First' section is a clear numbered sequence. It does not reach 5 because the main solve workflow is described narratively rather than as an explicit numbered checklist with per-step validation gates, and result-status validation is a checklist of questions rather than an enforced loop.

4 / 5

Progressive Disclosure

Structure is decent with clear section headers and a Resources section linking out to docs/examples/support, and no bundle files exist so it is self-contained. However, several sections (the environment/package tables, the multiple permission sections) are inlined blocks that read like material that could be split into a reference file, and the skill references an external workflow path (`skills/skill-evolution/SKILL.md`) without signaling one-level-deep navigation. It does not reach 4 because organization is good but content placement is not cleanly separated into overview vs. detail.

3 / 5

Total

14

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific and well-scoped, clearly naming the cuOpt user domain and problem types while explicitly disambiguating from the developer skill via negative scoping. It is held below top marks by the absence of a positive 'Use when...' trigger clause and by trigger terms that lean on problem-type labels rather than the natural phrases and extensions users actually say.

Suggestions

Add an explicit positive trigger clause, e.g. 'Use when helping end users call the cuOpt SDK for routing or LP/MILP/QP problems, or to install/deploy the cuOpt server.'

Include user-natural terms and extensions alongside the problem labels — e.g. 'vehicle routing, time windows, .lp/.mps files, the cuopt Python package' — to broaden trigger coverage.

Reorder to lead with a concrete action verb phrase ('Guide end users calling NVIDIA cuOpt for routing/LP/MILP/QP, install, and server tasks') for stronger specificity.

DimensionReasoningScore

Specificity

The description lists several concrete action areas — routing/LP/MILP/QP/install/server — naming the domain and multiple specific problem types rather than generic language. It falls short of 5 because the actions are problem-domain labels rather than fully enumerated concrete operations, and 'install/server' are access modes rather than actions.

4 / 5

Completeness

It clearly states what the skill covers ('Base rules for end users calling NVIDIA cuOpt') and gives a when-ish boundary ('Not for cuOpt internals — use cuopt-developer for those'), so both what and when are present. The 'when' is a negative-scoping boundary rather than an explicit positive 'Use when...' trigger clause, which keeps it at 4 rather than 5; the rubric also notes a missing explicit 'Use when...' clause caps completeness, but a clear negative trigger is present.

4 / 5

Trigger Term Quality

Natural terms users would say are well covered — 'routing', 'LP', 'MILP', 'QP', 'install', 'server' — with good keyword coverage including problem-type synonyms. It does not reach 5 because it omits common user phrasings and file/package extensions (e.g. 'cuopt', 'vehicle routing', 'constraints') that users would naturally mention.

4 / 5

Distinctiveness Conflict Risk

The explicit 'Not for cuOpt internals — use cuopt-developer for those' carve-out makes it mostly distinct from its sibling developer skill with minor overlap risk. It does not reach 5 because the broad problem-type enumeration (routing/LP/MILP/QP) could still overlap with general optimization skills, and the positive trigger niche is less crisply defined than the negative one.

4 / 5

Total

16

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository
openai/plugins
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.