Migrer de NeMo Flow à NeMo Relay
Utilise cette skill quand un utilisateur a du code ou de la documentation NeMo Flow existants et veut les convertir en NeMo Relay. Traite la migration comme un renommage mécanique plus une validation spécifique au langage, pas une réécriture de comportement. Garde les exceptions de compatibilité explicites avant d'appliquer des renommages larges.
Flux de travail par défaut
- Inspecte l'arborescence et identifie les surfaces affectées : Rust, Python, Node.js, Go, FFI C, CLI/config, docs, ou intégrations.
- Résous
SKILL_DIRen répertoire absolu contenant ceSKILL.mdetTARGET_PATHvers le dépôt source ou le projet cible. Exécute le helper fourni en mode dry-run avant de faire des modifications :python3 "$SKILL_DIR/scripts/migrate_from_nemo_flow.py" "$TARGET_PATH" --rename-paths - Revois les éditions de texte et renommages de chemins rapportés avec l'utilisateur. Obtiens une
confirmation explicite pour la racine cible résolue, puis relance avec
--write,--rename-paths, et--confirm-root "$TARGET_PATH". - Applique le nettoyage spécifique au langage pour les fichiers de verrous du gestionnaire de paquets, les artefacts générés, et les exemples d'API publique.
- Cherche les noms Flow restants et vérifie les surfaces de langage affectées.
Tableau de renommage mécanique
- Brand et dépôt :
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, y compris les points d'entrée associés comme/typed,/plugin,/adaptive, et/observability - Go :
github.com/NVIDIA/NeMo-Flow/go/nemo_flow->github.com/NVIDIA/NeMo-Relay/go/nemo_relay, les alias de paquetsnemo_flow->nemo_relay, et les répertoires sourcesgo/nemo_flow->go/nemo_relay - FFI C :
nemo_flow.h->nemo_relay.h,nemo_flow_*->nemo_relay_*,NemoFlow*->NemoRelay*, etNEMO_FLOW_*->NEMO_RELAY_* - CLI/config :
nemo-flow->nemo-relay,.nemo-flow->.nemo-relay,~/.config/nemo-flow->~/.config/nemo-relay,NEMO_FLOW_*->NEMO_RELAY_*, etx-nemo-flow-*->x-nemo-relay-*
Ne remplace pas les noms nus flow, Flow, ou FlowError. Ceux-ci peuvent être
des mots du domaine ou des noms de compatibilité intentionnels.
Nettoyage spécifique au langage
- Python : mets à jour
pyproject.toml, les imports, les stubs de type, les chemins de paquets d'intégration, les extras, et les noms de modules natifs. Régénère ou actualise les fichiers de verrous avec le flux de travail de paquets de l'utilisateur après les éditions source. - Rust : mets à jour les noms de crates dans
Cargo.toml, les dépendances d'espace de travail, les références de paquets, et les importsuse nemo_relay::.... Laisse Cargo régénérerCargo.lockquand les dépendances ont changé. - Node.js : mets à jour
package.json, les noms d'espace de travail, les entrées package-lock, les noms d'artefacts des modules natifs, et les imports denemo-relay-node. Exécute le gestionnaire de paquets pour actualiser les verrous. - Go : mets à jour
go.mod, les chemins d'import, les déclarations de paquets, les alias, et toute disposition de répertoire local sousgo/nemo_relay. - FFI C : mets à jour les inclusions de header, les noms de symboles exportés, les noms de types de statut et callback, les constantes de macro, les chemins de chargeur, et les bindings en aval.
- Docs et exemples : mets à jour les badges, les commandes d'installation de paquets, les liens de dépôt, les URLs de docs hébergées, les commandes CLI, les chemins de config, et les noms d'intégration.
Helper d'automatisation
Utilise $SKILL_DIR/scripts/migrate_from_nemo_flow.py pour les éditions en première passe. Le
helper :
- s'exécute en mode dry-run sauf si
--writeest passé - ignore les répertoires courants vendor, build, cache, et générés
- ignore les fichiers de verrous sauf si
--include-lockfilesest passé - ignore les liens symboliques et les fichiers dotenv porteurs de credentials
- exige que la racine cible révisée soit répétée avec
--confirm-rootavant l'écriture, et refuse les écritures sur la racine du système de fichiers ou le répertoire home - ancre les écritures et renommages aux handles de répertoire vérifiés sans suivre les liens symboliques, et refuse le mode d'écriture sur les plateformes qui ne peuvent pas fournir ces garanties
- utilise les renommages de chemins atomic et sans remplacement, et sort avec un code non nul quand une mutation demandée échoue
- peut rapporter ou effectuer des renommages de chemins avec
--rename-paths - réécrit uniquement les identifiants NeMo Flow explicites, les noms de paquets, les noms de dépôt, les chemins de config, les headers, les variables d'environnement, et les préfixes de type FFI
Le helper ne classe pas les fichiers JSON, YAML, TOML, ou INI arbitraires comme secrets.
Revois chaque fichier de configuration dans le rapport dry-run. Si un fichier rapporté
n'a pas été révisé ou porte des credentials, n'utilise pas --write sur cette racine. Applique les
modifications révisées manuellement et laisse les fichiers porteurs de secrets intacts sans
les lire ni afficher leurs valeurs.
Définis les chemins absolus shell-safe avant d'invoquer le helper. Remplace les valeurs d'exemple avec le répertoire de skill résolu et soit le dépôt source soit le projet cible de l'utilisateur :
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"
Utilise --include-lockfiles uniquement quand l'utilisateur veut que les fichiers de verrous
soient édités directement ; sinon régénère-les avec Cargo, uv/pip, npm, ou les outils Go.
Vérification
- Cherche les identifiants Flow explicites restants :
rg -n "NeMo Flow|NeMo-Flow|nemo_flow|nemo-flow|NEMO_FLOW|NemoFlow|nemo_flow\\.h|nemo_flow_" - Exécute les tests ciblés pour chaque surface de langage affectée.
- Pour les changements Rust, exécute
cargo testou la recette de test Rust du dépôt. - Pour les changements Python, exécute la vérification d'import pertinente et les tests dans l'environnement cible.
- Pour les changements Node.js, exécute l'installation de paquets, les vérifications de type, et les tests de paquets.
- Pour les changements Go, exécute
go test ./...à partir du module mis à jour. - Pour les migrations docs-uniquement, construit ou vérifie les liens des docs si la navigation du site, les commandes d'installation, ou les références d'API ont changé.
Skills connexes
nemo-relay-get-startednemo-relay-instrument-callsnemo-relay-debug-runtime-integration