Définir la plateforme cible
Vue d'ensemble
Cette skill est le côté switcher du contrat de plateforme cible dans
../../context/target-platform-contract.md. Elle modifie uniquement target-platform/active_target.yml ; elle ne crée jamais de nouveau profil YAML. Pour créer un nouveau profil, utilisez la skill sœur
jetson-init-target.
Sortie unique : target-platform/active_target.yml mis à jour pour pointer vers le profil existant choisi par l'utilisateur.
Quand invoquer
- L'utilisateur demande de basculer / changer / activer une plateforme cible différente parmi les profils qui existent déjà.
- Une skill en aval a refusé avec « no active target » et
target-platform/contient déjà un ou plusieurs profils YAML. - L'utilisateur nomme une cible par nom de fichier ou produit, et ce profil YAML existe déjà sur disque.
Si target-platform/ est absent, vide, ou ne contient que
active_target.yml, arrêtez et dites à l'utilisateur d'exécuter d'abord jetson-init-target.
Procédure
Examiner le répertoire des profils
- Lisez
target-platform/active_target.yml(traitez un fichier manquant commeactive: NApour les besoins de cette skill — le fichier sera créé à l'étape « Mettre à jour le pointeur actif » si nécessaire, en préservant l'en-tête du modèle). - Listez
target-platform/*.yaml, en excluantactive_target.ymllui-même.
| Situation | Action |
|---|---|
| Aucun profil YAML n'existe | Refusez. Dites à l'utilisateur d'exécuter jetson-init-target pour en créer un. |
| Exactement un profil, déjà actif | Dites à l'utilisateur qu'il est déjà actif ; aucun changement nécessaire. Arrêtez. |
| Exactement un profil, pas actif | Confirmez avec l'utilisateur, puis passez à l'étape « Mettre à jour le pointeur actif » avec ce profil sélectionné. |
| Plusieurs profils | Passez à l'étape « Afficher la liste ». |
Afficher la liste
Affichez les profils en ordre alphabétique, numérotés. Marquez la sélection active actuelle avec (active) pour que l'utilisateur sache d'où il bascule. Pour chaque profil, analysez son YAML et affichez un résumé d'une ligne pour que l'utilisateur puisse l'identifier sans ouvrir les fichiers : le reference_devkit.name (ou custom_carrier.name s'il est présent) plus le flash_config.
Forme d'exemple :
Profiles in target-platform/:
1) acme-vision-x1.yaml — Acme Vision X1 (custom carrier on AGX Thor T5000) — acme-vision-x1.conf
2) jetson-agx-orin-32gb.yaml — Jetson AGX Orin 32GB — jetson-agx-orin-devkit.conf
3) jetson-agx-thor-devkit.yaml — Jetson AGX Thor T5000 — jetson-agx-thor-devkit.conf (active)
4) jetson-orin-nano-8gb.yaml — Jetson Orin Nano 8GB — jetson-orin-nano-devkit.conf
Si un profil YAML n'analyse pas correctement ou que les champs attendus manquent,
affichez le nom de fichier seul avec un marqueur (unparseable — fix or remove)
et passez au suivant ; ne refusez pas la skill entière à cause d'un fichier défectueux.
Inviter à sélectionner
Invite :
Choisissez un numéro, le nom de fichier brut, le nom du produit (correspondance de sous-chaîne), ou
cancel.
Résolvez en un seul nom de fichier de profil. Si l'utilisateur choisit le profil actuellement actif, dites-le-lui et arrêtez sans réécrire le pointeur. Si c'est ambigu, listez les candidats et demandez à nouveau.
Mettre à jour le pointeur actif
Modifiez target-platform/active_target.yml :
- Définissez
active: <chosen-filename>.yaml. - Préservez le bloc de commentaires d'en-tête verbatim — modifiez uniquement la
ligne
active:. - Si le fichier n'existe pas (il peut être absent si l'utilisateur a configuré manuellement
target-platform/sans l'étape bootstrap), créez-le à partir de../../references/active_target_template.yamlpuis définissezactive:.
Confirmer
Affichez un résumé : la valeur active précédente, la nouvelle valeur active, le reference_devkit.name du profil choisi (et custom_carrier.name s'il est présent), et un rappel que les skills en aval (jetson-customize-clocks,
jetson-customize-nvpmodel, jetson-customize-fan,
jetson-optimize-memory) résoudront maintenant à cette cible.
Si une skill en aval a déclenché cette exécution, dites à l'utilisateur de rééditer sa demande originale ; ne la retriggerez pas silencieusement.
Prérequis
target-platform/existe et contient au moins un profil*.yaml(en excluantactive_target.yml).target-platform/active_target.ymlest présent, ou le modèle à../../references/active_target_template.yamlest disponible pour que cette skill puisse recréer le pointeur.
Limitations
- Modifie uniquement la ligne
active:dansactive_target.yml; n'écrit jamais les profils YAML. - Refuse quand aucun profil YAML n'existe — achemine l'utilisateur vers
jetson-init-targetà la place. - Ne résout pas les noms de produits flous au-delà d'une simple correspondance de sous-chaîne ; les sélections ambiguës sont re-demandées.
Dépannage
- Refus « no profiles found » — le répertoire n'a aucun
*.yamlautre que le pointeur ; exécutez d'abord/jetson-init-target. - Pointeur réécrit vers un profil manquant — ne devrait pas se produire car
le nom de fichier choisi est vérifié avant d'écrire ; s'il apparaît, modifiez manuellement
active_target.ymlen revenant à un nom de fichier valide ou réexécutez avec la bonne sélection. - Le pointeur actif lit
NA— état « no selection » légitime ; choisissez n'importe quel profil listé et le pointeur sera défini.
Pièges
- Pas d'authoring ici. Si l'utilisateur nomme une cible dont le profil YAML
n'existe pas sur disque, refusez et achemin-ez-le vers
jetson-init-target. Ne tombez pas silencieusement en authoring. - Ne modifiez pas
active_target.ymlpour pointer vers un profil manquant. Vérifiez que le nom de fichier choisi existe danstarget-platform/avant d'écrire. - Préservez le bloc de commentaires
active_target.ymllors de la modification — seule la ligneactive:doit changer. - Excluez
active_target.ymlde la liste des profils. Il se trouve dans le même répertoire mais c'est le pointeur, pas un profil. active: NAest l'état « no selection » légitime. Traitez-le de la même façon qu'un nouveau pointeur — ne refusez pas, affichez simplement la liste et laissez l'utilisateur choisir.- Raccourci à un profil. Si un seul profil existe, ne passez pas la confirmation utilisateur — confirmez toujours avant de basculer le pointeur.
Références
../../context/target-platform-contract.md— le contrat auquel cette skill écrit.../../references/active_target_template.yaml— modèle de schéma pour le pointeur active-target (utilisé pour le recréer si le fichier manque).../jetson-init-target/SKILL.md— skill sœur : créer un nouveau profil YAML.