mcpField
N
nemo-relay-migrate-from-flow

nemo-relay-migrate-from-flow

github.com/nvidia開発3.8k162 回インストール今日更新
リポジトリ

nemo-relay-migrate-from-flow について

NeMo Flow プロジェクトを NeMo Relay に移行するためのスキルです。レビュー可能な機械的リネームと、言語ごとの整理手順を案内し、コードや設定、ドキュメントを保守する開発者を対象とします。

主な機能

  1. 01移行用ヘルパーのドライラン
  2. 02ブランド名とパッケージ名の対応表
  3. 03言語別の整理ガイド
  4. 04旧設定の手動移行
  5. 05移行後の検索とテスト

活用シーン

  1. 01編集前にリポジトリ変更を確認
  2. 02NeMo Flow のコードとパスを変更
  3. 03パッケージ情報とインポートを更新
  4. 04移行後の言語別箇所を検証

インストール

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

$npx skills add https://github.com/nvidia/skills --skill nemo-relay-migrate-from-flow

インストール後、Claude Code で/nemo-relay-migrate-from-flowを入力して読み込まれたか確認します。

同梱ファイル

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

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
scripts/
migrate_from_nemo_flow.py

詳細

NeMo Flow から NeMo Relay への移行

既存の NeMo Flow コードやドキュメントを NeMo Relay に変換したいというユーザーには、このスキルを使用します。移行は、動作を書き換えるのではなく、機械的な名称変更と、言語ごとの検証として扱います。 一括で名称を変更する前に、互換性に関する例外を明示してください。

デフォルトのワークフロー

  1. 作業ツリーを調べ、変更対象の範囲を特定します。Rust、Python、 Node.js、Go、C FFI、CLI/設定、ドキュメント、インテグレーションなどが含まれます。
  2. SKILL_DIR をこの SKILL.md を含むディレクトリの絶対パスに、 TARGET_PATH をソースリポジトリまたは対象プロジェクトのパスに解決します。編集前に、同梱のヘルパーをドライランモードで実行します。 python3 "$SKILL_DIR/scripts/migrate_from_nemo_flow.py" "$TARGET_PATH" --rename-paths
  3. 報告されたテキストの編集、パスの名称変更、レガシーなプロジェクト設定に関する警告をユーザーと確認します。プロジェクト内の .nemo-flow/config.toml や .nemo-flow/plugins.toml を .nemo-relay に移行しないでください。確認後、これらの設定を、サポートされているユーザー設定パスまたは明示的な設定パスへ手動で移動します。
  4. 解決済みの対象ルートについて、明示的な確認を得てから、--write、--rename-paths、--confirm-root "$TARGET_PATH" を指定して再実行します。
  5. パッケージマネージャーのロックファイル、生成された成果物、公開 API の例について、言語ごとのクリーンアップを実施します。
  6. 残っている Flow の名称を検索し、影響を受けた言語ごとの対象範囲を検証します。

機械的な名称変更マップ

  • ブランド名とリポジトリ:NeMo Flow -> NeMo Relay、 NeMo-Flow -> NeMo-Relay
  • Python:nemo-flow -> nemo-relay、nemo_flow -> nemo_relay、 python/nemo_flow -> python/nemo_relay
  • Rust:nemo-flow -> nemo-relay、nemo-flow-adaptive -> nemo-relay-adaptive、nemo_flow:: -> nemo_relay::
  • Node.js:nemo-flow-node -> nemo-relay-node。/typed、/plugin、/adaptive、/observability などの関連エントリーポイントも対象です。
  • Go:github.com/NVIDIA/NeMo-Flow/go/nemo_flow -> github.com/NVIDIA/NeMo-Relay/go/nemo_relay、パッケージエイリアス nemo_flow -> nemo_relay、ソースディレクトリ go/nemo_flow -> go/nemo_relay
  • C FFI:nemo_flow.h -> nemo_relay.h、nemo_flow_* -> nemo_relay_*、NemoFlow* -> NemoRelay*、NEMO_FLOW_* -> NEMO_RELAY_*
  • CLI/設定:nemo-flow -> nemo-relay、 ~/.config/nemo-flow -> ~/.config/nemo-relay、NEMO_FLOW_* -> NEMO_RELAY_*、x-nemo-flow-* -> x-nemo-relay-*。プロジェクト内の .nemo-flow/config.toml や .nemo-flow/plugins.toml を .nemo-relay に 機械的に名称変更しないでください。これらのファイルは、サポートされているユーザー設定パスまたは明示的な設定パスへ手動で移行する必要があります。

単独の flow、Flow、FlowError は置き換えないでください。これらはドメイン用語である場合や、意図的に残された互換性のある名称である場合があります。

言語ごとのクリーンアップ

  • Python:pyproject.toml、インポート、型スタブ、インテグレーションの パッケージパス、extras、ネイティブモジュール名を更新します。ソースを編集した後、ユーザーのパッケージワークフローでロックファイルを再生成または更新します。
  • Rust:Cargo.toml のクレート名、ワークスペースの依存関係、パッケージ参照、use nemo_relay::... インポートを更新します。依存関係が変更された場合は、Cargo に Cargo.lock を再生成させます。
  • Node.js:package.json、ワークスペース名、package-lock のエントリー、 ネイティブアドオンの成果物名、nemo-relay-node からのインポートを更新します。パッケージマネージャーを実行してロックファイルを更新します。
  • Go:go.mod、インポートパス、パッケージ宣言、エイリアス、 go/nemo_relay 配下のローカルディレクトリ構成を更新します。
  • C FFI:ヘッダーのインクルード、エクスポートされるシンボル名、 ステータス型とコールバック型の名前、マクロ定数、ローダーパス、下流のバインディングを更新します。
  • ドキュメントと例:バッジ、パッケージのインストールコマンド、 リポジトリへのリンク、ホストされたドキュメントの URL、CLI コマンド、設定パス、インテグレーション名を更新します。

自動化ヘルパー

初回編集には $SKILL_DIR/scripts/migrate_from_nemo_flow.py を使用してください。 このヘルパーは次の処理を行います。

  • --write が指定されない限り、ドライランとして実行します
  • 一般的なベンダー、ビルド、キャッシュ、生成済みのディレクトリをスキップします
  • --include-lockfiles が指定されない限り、ロックファイルをスキップします
  • シンボリックリンクと、認証情報を含む dotenv ファイルをスキップします
  • プロジェクトローカルの .nemo-flow/config.toml と .nemo-flow/plugins.toml を検出し、変更せずに残します。また、サポート対象のユーザー設定パスまたは明示的な設定パスへの手動移行が必要であることを報告します
  • 書き込み前に、確認済みの対象ルートを --confirm-root で再指定するよう求め、ファイルシステムのルートまたはホームディレクトリへの書き込みを拒否します
  • シンボリックリンクをたどらずに、検証済みのディレクトリハンドルを基準として書き込みと名前変更を行います。また、その保証を提供できないプラットフォームでは書き込みモードを拒否します
  • 上書きしないアトミックなパス名変更を使用し、要求された変更に失敗があればゼロ以外の終了コードで終了します
  • --rename-paths でパス名変更を報告または実行できます
  • 明示的な NeMo Flow 識別子、パッケージ名、リポジトリ名、設定パス、ヘッダー、環境変数、FFI 型プレフィックスのみを書き換えます

このヘルパーは、任意の JSON、YAML、TOML、INI ファイルをシークレットとして分類しません。ドライランのレポートにある設定ファイルをすべて確認してください。報告されたファイルに未確認のもの、または認証情報を含むものがある場合、そのルートに対して --write を使用しないでください。確認済みの変更を手動で適用し、シークレットを含むファイルは、値を読み取ったり表示したりせず、そのまま変更しないでください。

ヘルパーを呼び出す前に、シェルで安全に扱える絶対パスを設定してください。例の値を、解決済みのスキルディレクトリと、ソースリポジトリまたはユーザーの対象プロジェクトに置き換えてください。

SKILL_DIR="/resolved/absolute/path/to/nemo-relay-migrate-from-flow"
TARGET_PATH="/resolved/absolute/path/to/target-project"

python3 "$SKILL_DIR/scripts/migrate_from_nemo_flow.py" "$TARGET_PATH" --rename-paths
python3 "$SKILL_DIR/scripts/migrate_from_nemo_flow.py" "$TARGET_PATH" \
  --write --rename-paths --confirm-root "$TARGET_PATH"

ユーザーがロックファイルを直接編集することを希望する場合に限り、--include-lockfiles を使用してください。それ以外の場合は、Cargo、uv/pip、npm、または Go のツールでロックファイルを再生成してください。

検証

  • 残っている明示的な Flow 識別子を検索します。 rg -n "NeMo Flow|NeMo-Flow|nemo_flow|nemo-flow|NEMO_FLOW|NemoFlow|nemo_flow\\.h|nemo_flow_"
  • 影響を受ける各言語の対象テストを実行します。
  • Rust の変更では、cargo test またはリポジトリの Rust テスト手順を実行します。
  • Python の変更では、対象環境で関連するインポートチェックとテストを実行します。
  • Node.js の変更では、パッケージのインストール、型チェック、パッケージのテストを実行します。
  • Go の変更では、更新したモジュールのディレクトリから go test ./... を実行します。
  • ドキュメントのみの移行では、サイトのナビゲーション、インストールコマンド、API リファレンスを変更した場合、ドキュメントのビルドまたはリンクチェックを実行します。

関連スキル

  • nemo-relay-get-started
  • nemo-relay-instrument-calls
  • nemo-relay-debug-runtime-integration

コメント