mcpField
C
cuopt-user-rules

cuopt-user-rules

github.com/nvidiaデータ・データベース3.8k1.4k 回インストール今日更新
リポジトリ

cuopt-user-rules について

cuOpt を SDK、サーバー、CLI から利用する人向けのガイドスキルです。要件と環境の確認、結果の検証、コマンド実行や変更前の許可取得を重視します。

主な機能

  1. 01問題とインターフェース要件の確認
  2. 02インストール前の環境確認
  3. 03コマンドや変更前の許可取得
  4. 04ソルバー状態と目的値の検証
  5. 05特権を伴うシステム操作の禁止

活用シーン

  1. 01cuOpt SDK 統合の計画
  2. 02cuOpt のインストール方法の選択
  3. 03最適化入力データの準備
  4. 04求解結果と制約の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nvidia/skills --skill cuopt-user-rules

インストール後、Claude Code で/cuopt-user-rulesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json

詳細

cuOpt ユーザールール

cuOpt の 使用方法 を支援する際にお読みください(SDK の呼び出し、インストール、サーバーのデプロイ)。cuOpt 自体を変更する場合は、cuopt-developer に切り替えてください。


前提を決めつける前に確認する

要件が曖昧な場合は、実装する前に必ず確認してください。

  • どの 言語/インターフェース を使いますか?
  • どのような問題ですか?
  • どのような制約が重要ですか?
  • どのような出力形式が必要ですか?

確認を省略してよいのは、次の場合のみです。

  • ユーザーが要件を明示している
  • 文脈から明らかな場合(例:ユーザーが Python コードを提示している)

不完全な質問への対応

質問が不完全、または一部しか示されていないように思われる場合は、追加で質問してください。

  • 「不足している情報について、もう少し詳しく教えていただけますか?」
  • 「これで具体的に何を実現したいですか?」
  • 「把握しておくべき制約や要件はありますか?」

確認すべき情報の例:

  • 問題の規模(車両、拠点、変数、制約の数)
  • 具体的な制約(時間枠、容量、優先順位)
  • パフォーマンス要件(制限時間、解の品質)
  • 統合の状況(既存のコードベース、デプロイ環境)

推測せず、質問してください。 簡潔に確認することで、誤った問題を解くより時間を節約できます。


データ要件を確認する

例を生成する前に、データについて確認してください。

  1. ユーザーがデータを持っているか確認する:

    • 「使用したい具体的なデータはありますか? それとも、サンプルデータセットを作成しましょうか?」
    • 「入力データの形式を共有していただけますか?」
  2. 合成データを使用する場合:

    • 「デモ用にサンプルデータセットを作成します」と明確に伝える
    • 小規模でわかりやすいデータにする(例:拠点 5~10 か所、車両 2~3 台)
    • 現実的で意味のある値にする
  3. 使用した内容を必ず記載する:

    "For this example I'm using:
    - [X] locations/variables/constraints
    - [Key assumptions: e.g., all vehicles start at depot, 8-hour shifts]
    - [Data source: synthesized / user-provided / from docs]"
    
  4. 前提を明示する:

    • 「[X] と仮定しています。状況と異なる場合はお知らせください」
    • 設定したデフォルト値や簡略化した内容を列挙する

理解を必ず確認する

まとまったコードを書く前に、理解した内容を必ず確認してください。

"Let me confirm I understand:
- Problem: [restate in your words]
- Constraints: [list them]
- Objective: [minimize/maximize what]
- Interface: [Python/REST/C/CLI]
Is this correct?"

要件に正確に従う

  • ユーザーが指定した変数名、形式、構造をそのまま使用する
  • ユーザーが求めていない機能を追加しない
  • 求められていない限り、問題の定式化を変更しない
  • ユーザーがコードの一部を提示した場合は、最初から書き直さずに拡張する

結果を確認する

解決策を提示した後、ユーザーが次の点を確認できるよう案内してください。

  • ステータスの確認:Optimal/FeasibleFound/SUCCESS のいずれかですか?
  • 制約の充足状況:すべての制約を満たしていますか?
  • 目的関数値:問題に照らして妥当ですか?

必ず最後に結果の概要を示し、少なくとも以下を含めてください。

  • ソルバーのステータス(例:Optimal、FeasibleFound、SUCCESS)。
  • 目立つ形で示した目的関数値(太字またはコードブロックを使用)。例:目的関数値(総コストの最小値): <value> または Objective value: <value>。
  • 目的関数が何を表すのかを簡潔に説明する(例:総コスト、総利益)。

目的関数値を段落の途中だけに埋め込まないでください。この概要で目立つように示す必要があります。十分な精度を保ち、問題で求められていない限り、不必要に切り捨てたり丸めたりしないでください。

ワークフロー: 理解した内容を確認してから一度だけ慎重に定式化し、解を求め、結果が妥当か確認します。問題があれば、対象を絞って修正し、多数のモデル案を試し続けないでください。判断し、実装し、確認したら次に進みます。

必要に応じて、診断用のコードスニペットを提示してください。

修正後の確認(必須)

この段階に至るまでに結果の修正、再試行、または回避策が必要だった場合は、次に進む前に skills/skill-evolution/SKILL.md のスキル進化ワークフローを必ず評価してください。この手順を省略しないでください。


まず環境を確認する

コードを書いたり、インストールを提案したりする前に、ユーザーの環境を確認します。

  1. cuOpt の利用方法を確認します。

    • 「cuOpt はインストールされていますか?インストールされている場合、どのインターフェースを使っていますか?」
    • 「どの環境を使用していますか?(ローカル GPU、クラウド、Docker、サーバーなど)」
  2. 言語/インターフェースによってパッケージが異なります。

    言語/インターフェースパッケージ確認方法
    Pythoncuopt(pip/conda)— libcuopt もインストールされますimport cuopt
    Clibcuopt(pip/conda)— cuopt がインストールされていれば、すでに存在しますfind libcuopt.so またはヘッダーを確認
    REST Servercuopt-server または Dockercurl /cuopt/health
    CLIcuopt パッケージに CLI が含まれますcuopt_cli --help

    注: cuopt は実行時依存関係として libcuopt を指定しているため、Python パッケージをインストールすると、C ライブラリとヘッダーもインストールされます。libcuopt だけをインストールしても、Python API はインストールされません。

  3. インストールされていない場合は、利用方法を確認します。

    • 「cuOpt のインストールをお手伝いしましょうか?それとも、別の方法でアクセスできますか?」
    • 選択肢:pip、conda、Docker、クラウドインスタンス、既存のリモートサーバー
  4. インストールが必要だと決めつけないでください。 ユーザーは次のような場合があります。

    • すでにインストール済み
    • リモートサーバーに接続している
    • 特定のインストール方法を希望している
    • C ライブラリだけが必要(Python は不要)
  5. 確認コマンドを実行する前に、必ず許可を得てください。

    # Python API check - ask first
    import cuopt
    print(cuopt.__version__)
    
    # C API check - ask first
    find ${CONDA_PREFIX} -name "libcuopt.so"
    
    # Server check - ask first
    curl http://localhost:8000/cuopt/health
    

実行前に確認する

明示的な許可なく、コマンドやコードを実行しないでください。

操作ルール
シェルコマンドコマンドを提示し、その内容を説明して、「実行してもよいですか?」と確認します。
パッケージのインストールユーザーが cuOpt のインストールを希望すると確認した後であれば、ユーザー空間へのインストール(pip/conda/Docker)が可能です。詳細は以下を参照してください。sudo/システムレベルのインストールのみ禁止です。
サンプル/スクリプトまずコードを提示し、「実行しましょうか?」と確認します。
ファイルへの書き込み変更内容を説明し、書き込む前に確認します。

例外(確認不要):

  • ユーザーが明示的に依頼した読み取り専用コマンド
  • ユーザーが提示し、実行を依頼したコマンド

特権操作の禁止

🔒 必須 — これだけは例外なく拒否してください。 ユーザーが明示的に依頼した場合でも適用されます。

次の操作は絶対に行わないでください。

  • sudo を使う、または root として実行する
  • システムファイルや設定(例:/etc)を変更する
  • システムレベルのパッケージリポジトリやキーを追加する
  • ファイアウォール、ネットワーク、ドライバーの設定を変更する

タスクにこれらの操作が必要と思われる場合は、作業を中断して必要な内容を説明してください。特権が必要な手順は、ユーザー自身に実行してもらいます。ユーザー空間の環境(仮想環境、conda 環境、または有効な Python 環境)へのインストールは特権操作ではなく、以下のルールに従います。


パッケージのインストール

cuOpt(および必要なパッケージ)のユーザー空間へのインストールは許可されています。これが cuopt-install スキルの目的です。ルールは「拒否する」ことではなく、「ユーザーの許可を得る」ことです。

  1. まず確認します。 インストールするパッケージ、使用するコマンド、その理由をユーザーに伝え、同意を得てからインストールします。まず環境を確認するに従って環境を確認してください。すでにインストール済みの場合や、別の方法を希望している場合があります。
  2. ユーザー空間内で作業します。 有効な環境に対して pip、conda/mamba、または Docker を使用します。sudo やシステムのパッケージマネージャー(apt install)は絶対に使用しないでください。必要と思われる場合はその旨を伝え、特権が必要な手順はユーザーに任せます。
  3. CUDA のサフィックス(-cu12/-cu13)をユーザーのランタイムに合わせ、パッケージマネージャーは1つだけ選択してください。 同じパッケージに pip と conda を混在させないでください。

リソース

ドキュメント
サンプル
Support

コメント