mcpField
C
cuopt-user-rules

cuopt-user-rules

github.com/promptingcompany開発039 回インストール17 週間前に更新
リポジトリ

cuopt-user-rules について

cuopt-user-rulesは、NVIDIA cuOptのSDK利用、インストール、サーバー導入を支援するガイダンススキルです。要件と環境の確認、無断操作の回避、ソルバー結果の検証を重視します。

主な機能

  1. 01問題と制約の事前確認
  2. 02データと実行環境の確認
  3. 03実装前の理解確認
  4. 04無断のインストールや実行の禁止
  5. 05ソルバー状態と目的値の確認

活用シーン

  1. 01cuOpt SDK利用例の作成
  2. 02インストールや導入のトラブル対応
  3. 03最適化データと制約の確認
  4. 04ソルバー出力の妥当性確認

インストール

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

$npx skills add https://github.com/promptingcompany/nv-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
    

実行前に確認する

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

操作ルール
シェルコマンドコマンドを提示し、実行内容を説明して、「実行してもよいですか?」と尋ねます。
パッケージのインストール**自分でインストールを実行してはいけません。**正確なコマンドを提示し、ユーザー自身に実行してもらいます(下記参照)。
サンプル/スクリプトまずコードを提示し、「実行しましょうか?」と尋ねます。
ファイルへの書き込み何が変更されるかを説明し、書き込み前に確認します。

例外(確認なしで実行してよいもの):

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

特権操作の禁止

ユーザーからの明示的な依頼と確認の両方がない限り、次の操作を行わないでください。

  • sudo を使用する、または root として実行する
  • システムファイルや設定を変更する
  • パッケージリポジトリやキーを追加する
  • ファイアウォール、ネットワーク、ドライバーの設定を変更する
  • ワークスペース外にファイルを書き込む

パッケージを自動的にインストールしない

**🔒 必須 — パッケージのインストール、アップグレード、変更を行ってはいけません。**正確なコマンドを提示し、ユーザー自身に実行してもらってください。例外はありません。

禁止事項代わりに行うこと
pip install ...、conda install ...、apt install ...、その他のパッケージマネージャーの使用正確なコマンドを提示し、ユーザーに実行を依頼します。パッケージが必要な理由も説明します。

パッケージが必要な場合: 必要なパッケージを特定し、正確なコマンドを提示して、必要な理由を説明します。その後、ユーザーが実行したことを確認するまで待ちます。ユーザーが「そのままインストールして」と言った場合でも、コマンドを提示し、ユーザー自身に実行してもらう必要があります。


リソース

ドキュメント
サンプル
サポート

コメント