Source profileQuality 90/100

NVIDIA/skills/skills/jetson-set-target/SKILL.md

jetson-set-target

Switch the active Jetson target-platform pointer to an existing profile YAML. Use before customize/build/flash to change target; not for authoring profiles — use jetson-init-target instead.

Source repository stars
3,106
Declared platforms
0
Static risk flags
0
Last source update
2026-08-25
Source checked
2026-08-26

Decision brief

What it does: where it fits

Switch the active Jetson target-platform pointer to an existing profile YAML. Use before customize/build/flash to change target; not for authoring profiles — use jetson-init-target instead.

Best for

    Not for

    • Edits only the active: line in activetarget.yml; never writes
    • Refuses when no profile YAMLs exist — routes the user to

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/NVIDIA/skills --skill "skills/jetson-set-target"
    Safe inspection promptEditorial

    Inspect the Agent Skill "jetson-set-target" from https://github.com/NVIDIA/skills/blob/994b87022af46deada9fdb79fc560a77aaf931ce/skills/jetson-set-target/SKILL.md at commit 994b87022af46deada9fdb79fc560a77aaf931ce. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Procedure

      1. Read target-platform/activetarget.yml (treat a missing file as active: NA for the purposes of this skill — the file will be created in the "Update the active pointer" step if needed, preserving the template header). 2. List target-platform/.yaml, excluding activetarget.yml it…

      Read target-platform/activetarget.yml (treat a missing file asList target-platform/.yaml, excluding activetarget.ymlSet active: .yaml.
    2. 02

      When to invoke

      If target-platform/ is missing, empty, or contains only activetarget.yml, stop and tell the user to run jetson-init-target first.

      The user asks to switch / change / activate a different targetA downstream skill refused with "no active target" andThe user names a target by filename or product, and that profile
    3. 03

      Survey the profiles directory

      1. Read target-platform/activetarget.yml (treat a missing file as active: NA for the purposes of this skill — the file will be created in the "Update the active pointer" step if needed, preserving the template header). 2. List target-platform/.yaml, excluding activetarget.yml it…

      Read target-platform/activetarget.yml (treat a missing file asList target-platform/.yaml, excluding activetarget.yml1. Read target-platform/activetarget.yml (treat a missing file as active: NA for the purposes of this skill — the file will be created in the "Update the active pointer" step if needed, preserving the template header).…
    4. 04

      Show the list

      Print the profiles in alphabetical order, numbered. Mark the current active selection with (active) so the user knows what they're switching from. For each profile, parse its YAML and show a one-line summary so the user can identify it without opening files: the referencedevkit.…

      Print the profiles in alphabetical order, numbered. Mark the current active selection with (active) so the user knows what they're switching from. For each profile, parse its YAML and show a one-line summary so the user…If a profile YAML fails to parse or is missing the expected fields, show the bare filename with a (unparseable — fix or remove) marker and skip to the next; do not refuse the whole skill over one bad file.
    5. 05

      Prompt for selection

      Pick a number, the bare filename, the product name (substring match), or cancel.

      Pick a number, the bare filename, the product name (substring match), or cancel.Resolve to a single profile filename. If the user picks the currently active profile, tell them so and stop without rewriting the pointer. If ambiguous, list candidates and ask again.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars3,106SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    NVIDIA/skills
    Skill path
    skills/jetson-set-target/SKILL.md
    Commit
    994b87022af46deada9fdb79fc560a77aaf931ce
    License
    Apache-2.0
    Collected
    2026-08-26
    Default branch
    main
    View the original SKILL.md

    Set Target Platform

    Overview

    This skill is the switcher side of the target-platform contract in ../../context/target-platform-contract.md. It only edits target-platform/active_target.yml; it never authors a new profile YAML. To author a new profile, use the sibling skill jetson-init-target.

    Single output: target-platform/active_target.yml updated to point at the user's chosen existing profile.

    When to invoke

    • The user asks to switch / change / activate a different target platform among profiles that already exist.
    • A downstream skill refused with "no active target" and target-platform/ already contains one or more profile YAMLs.
    • The user names a target by filename or product, and that profile YAML is already on disk.

    If target-platform/ is missing, empty, or contains only active_target.yml, stop and tell the user to run jetson-init-target first.

    Procedure

    Survey the profiles directory

    1. Read target-platform/active_target.yml (treat a missing file as active: NA for the purposes of this skill — the file will be created in the "Update the active pointer" step if needed, preserving the template header).
    2. List target-platform/*.yaml, excluding active_target.yml itself.
    SituationAction
    No profile YAMLs existRefuse. Tell the user to run jetson-init-target to author one.
    Exactly one profile, already activeTell the user it is already active; no change needed. Stop.
    Exactly one profile, not activeConfirm with the user, then jump to the "Update the active pointer" step with that profile selected.
    Multiple profilesProceed to the "Show the list" step.

    Show the list

    Print the profiles in alphabetical order, numbered. Mark the current active selection with (active) so the user knows what they're switching from. For each profile, parse its YAML and show a one-line summary so the user can identify it without opening files: the reference_devkit.name (or custom_carrier.name if present) plus the flash_config.

    Sample shape:

    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
    

    If a profile YAML fails to parse or is missing the expected fields, show the bare filename with a (unparseable — fix or remove) marker and skip to the next; do not refuse the whole skill over one bad file.

    Prompt for selection

    Prompt:

    Pick a number, the bare filename, the product name (substring match), or cancel.

    Resolve to a single profile filename. If the user picks the currently active profile, tell them so and stop without rewriting the pointer. If ambiguous, list candidates and ask again.

    Update the active pointer

    Edit target-platform/active_target.yml:

    • Set active: <chosen-filename>.yaml.
    • Preserve the header comment block verbatim — only modify the active: line.
    • If the file does not exist (it can be missing if the user hand-set up target-platform/ without the bootstrap step), create it from ../../references/active_target_template.yaml and then set active:.

    Confirm

    Print a summary: the previous active value, the new active value, the chosen profile's reference_devkit.name (and custom_carrier.name if present), and a reminder that downstream skills (jetson-customize-clocks, jetson-customize-nvpmodel, jetson-customize-fan, jetson-optimize-memory) will now resolve to this target.

    If a downstream skill triggered this run, tell the user to re-issue their original request; do not silently re-trigger it.

    Prerequisites

    • target-platform/ exists and contains at least one *.yaml profile (excluding active_target.yml).
    • target-platform/active_target.yml is present, or the template at ../../references/active_target_template.yaml is available so this skill can recreate the pointer.

    Limitations

    • Edits only the active: line in active_target.yml; never writes profile YAMLs.
    • Refuses when no profile YAMLs exist — routes the user to jetson-init-target instead.
    • Does not resolve fuzzy product names beyond simple substring match; ambiguous selections are re-prompted.

    Troubleshooting

    • "no profiles found" refusal — the directory has no *.yaml other than the pointer; run /jetson-init-target first.
    • Pointer rewritten to a missing profile — should not happen because the chosen filename is verified before writing; if seen, hand-edit active_target.yml back to a valid filename or rerun with the right selection.
    • Active pointer reads NA — legitimate "no selection" state; pick any listed profile and the pointer will be set.

    Gotchas

    • No authoring here. If the user names a target whose profile YAML is not on disk, refuse and route them to jetson-init-target. Do not silently fall through to authoring.
    • Don't edit active_target.yml to point at a missing profile. Verify the chosen filename exists in target-platform/ before writing.
    • Preserve active_target.yml's comment block when editing — only the active: line should change.
    • Exclude active_target.yml from the profile list. It lives in the same directory but is the pointer, not a profile.
    • active: NA is the legitimate "no selection" state. Treat it the same as a fresh pointer — don't refuse, just show the list and let the user pick.
    • One-profile shortcut. If only one profile exists, do not skip user confirmation — still confirm before flipping the pointer.

    References

    Frequently asked questions

    What to verify before installation and use

    What does the jetson-set-target source document cover?

    Switch the active Jetson target-platform pointer to an existing profile YAML. Use before customize/build/flash to change target; not for authoring profiles — use jetson-init-target instead.

    How do I install jetson-set-target?

    The source record exposes this install command: npx skills add https://github.com/NVIDIA/skills --skill "skills/jetson-set-target". Inspect the command and pinned source before running it.