[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-jetson-init-target":3,"mdc--4bebt7-key":31,"related-repo-nvidia-jetson-init-target":2291,"related-org-nvidia-jetson-init-target":2397},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"jetson-init-target","create Jetson target platform profiles","Author a new Jetson target-platform profile (reference_devkit + optional custom_carrier) and update the active pointer. Use to create a target; not for switching existing profiles.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19],{"name":13,"slug":14,"type":15},"Configuration","configuration","tag",{"name":17,"slug":18,"type":15},"Hardware","hardware",{"name":9,"slug":8,"type":15},2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-14T05:27:08.918229","Apache-2.0",281,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fjetson-init-target","---\nname: jetson-init-target\ndescription: >-\n  Author a new Jetson target-platform profile (reference_devkit +\n  optional custom_carrier) and update the active pointer. Use to\n  create a target; not for switching existing profiles.\nversion: 0.0.1\nlicense: \"Apache-2.0\"\nmetadata:\n  data-classification: public\n  author: \"Jetson Team\"\n  tags:\n    - target-platform\n    - configuration\n    - meta\n  domain: meta\n---\n\n# Initialize Target Platform\n\n## Overview\n\nThis skill **authors** a new target-platform profile YAML — the\nwrite-side of the contract in\n[`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md). It uses\n[`..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md`](..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md)\nas the canonical product \u002F flash-config catalogue and\n[`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\nas the field schema.\n\nFlow is linear: pick a reference product + flash config, then\n**optionally** add custom-carrier details. The two contract cases —\nreference-only vs reference + custom carrier — are distinguished only\nby whether the user provides custom-carrier details; there is no\nup-front mode prompt.\n\n**Scope is `reference_devkit:` and `custom_carrier:` only.** Sibling\nskills own the other blocks: `bsp_image:` →\n[`jetson-init-image`](..\u002Fjetson-init-image\u002FSKILL.md); `source:` →\n[`jetson-init-source`](..\u002Fjetson-init-source\u002FSKILL.md); `documents:` →\n[`jetson-link-docs`](..\u002Fjetson-link-docs\u002FSKILL.md).\n\nOutputs: a new `target-platform\u002F\u003Cname>.yaml` and (by default) an\nupdated `active_target.yml` pointing at it. To switch among\nalready-authored profiles, use sibling `jetson-set-target`.\n\n## When to invoke\n\n- The user asks to create \u002F author \u002F add a new target platform profile.\n- A downstream skill refused with \"no active target\" **and**\n  `target-platform\u002F` contains no profile YAML files yet (otherwise\n  prefer `jetson-set-target`).\n- The user wants a target whose profile does not yet exist on disk.\n\n## Procedure\n\n### Quick-start prefill mapping\n\nFollow the shared\n[`quick_start_prefill` contract](..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md#quick_start_prefill-contract).\nThis skill consumes:\n\n- `quick_start_prefill.target.active_platform` as the selected catalogue\n  row when it resolves to exactly one product.\n- `quick_start_prefill.target.custom_carrier` as the custom-carrier\n  intent.\n\nIf `active_platform` resolves to one catalogue row, use it directly. Do\nnot re-ask reference-product or flash-config questions; use the row's\ndefault flash config unless the prefill names a catalogue variant. Ask\nonly when the prefill is missing, invalid, ambiguous, or names an unknown\nvariant.\n\n### How the skill consumes the template\n\nLoad\n[`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml)\nonce at skill startup and treat it as the schema for prompted blocks.\nEach placeholder value carries one of three sentinel markers:\n\n| Marker | Behavior |\n|---|---|\n| `\u003CREQUIRED: description>` | Prompt the user. Value must be provided; `NA` is accepted with a warning that downstream skills may refuse. |\n| `\u003COPTIONAL: description>` | Prompt the user. Value may be skipped (Enter or `NA`); skipped fields are **omitted** from the written profile (no empty key, no `NA` placeholder). |\n| `\u003CDERIVED: description>` | Filled programmatically from `bsp-platforms-catalogue.md` and the user's product \u002F flash-config choice in the \"Pick the reference product\" and \"Pick the flash config\" steps. **Not prompted.** |\n\nUse the marker description as the prompt text verbatim. Match markers\nwith the regex `^\u003C(REQUIRED|OPTIONAL|DERIVED):\\s*(.*)>$` after YAML\nparsing strips the surrounding quotes.\n\nBlock-level inclusion (`custom_carrier`) is decided by the skill\nflow, not by markers — adding\u002Fremoving fields **inside** a block is\na template-only change.\n\n### Survey current state\n\n1. If `target-platform\u002F` does not exist, create it and copy\n   [`..\u002F..\u002Freferences\u002Factive_target_template.yaml`](..\u002F..\u002Freferences\u002Factive_target_template.yaml)\n   to `target-platform\u002Factive_target.yml` (note `.yml` extension).\n2. Read `target-platform\u002Factive_target.yml`.\n3. List `target-platform\u002F*.yaml` (excluding `active_target.yml`).\n\n| Situation | Action |\n|---|---|\n| No profile YAMLs exist | Proceed — this is the bootstrap case. The new profile will be set as `active_target` automatically in the \"Write\" step (no activation prompt in the \"Confirm\" step). |\n| Profiles exist, `active: NA` | Show the list of existing profiles and confirm the user wants to author a new one (rather than activate one of the existing profiles via `jetson-set-target`). |\n| Profiles exist, `active:` names a present file | Show the active profile and the full list. Ask whether the user wants to (a) author a new profile alongside, or (b) switch to one of the existing profiles via `jetson-set-target`. If (b), stop and tell the user to run `jetson-set-target`. |\n| `active:` names a missing file | Tell the user the pointer is broken; offer to author a new profile (and replace the pointer) or to fix the pointer manually. |\n\n### Read the platforms catalogue\n\nRead [`..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md`](..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md).\nParse the **\"Product \u002F Chip \u002F SKU \u002F Flash Config Mapping\"** table — that\nis the source of truth for product names, CVM\u002FCVB SKUs, default flash\nconfs, and variant suffixes. Do **not** scan `Linux_for_Tegra\u002F*.conf`\nor parse conf filenames; the catalogue already collapses that.\n\n### Pick the reference product (baseline)\n\nPrint the full catalogue list before asking. Group rows by chip family\nand number every entry with stable indexes for this run. Build the list\nonly from `bsp-platforms-catalogue.md`; do not copy platform rows from\nexamples or other docs.\n\nBuild explicit shortcut choices from the printed list by taking the first\nrow in each chip-family group. Each shortcut label must include the\nfull-list index and product name, for example `Index 1 — Jetson AGX Orin\n64GB`. Do not hard-code product names; derive shortcuts from the parsed\ncatalogue rows. These shortcuts are the only explicit choices for this\nquestion. Manual index entry must use the tool's built-in `Type something`\ninput; do not add a third custom choice for manual entry.\n\nPrompt text:\n\n> Pick a platform shortcut, or choose Type something and type the numeric\n> index from the full platform list printed above. If your hardware is a\n> custom carrier with one of these Jetson modules, pick the closest\n> matching reference devkit as the baseline. Type cancel to cancel this\n> run.\n\nDo not show chip-family choices such as `T234 \u002F Orin family` or\n`T264 \u002F Thor family`. Do not show `Type index`, `Manual entry`, `Other\nplatform`, or any custom manual-entry choice. The only manual-entry path\nis the tool-provided `Type something` row. Do not add `Other` as a choice\nor paraphrase `Type something` as `Other` in prompt text. Do not accept\nproduct-name substring matches in this step; typed input must be a numeric\nindex from the printed full list or `cancel`. `skip` is not allowed\nbecause this skill cannot author a target profile without a reference\nplatform.\n\nResolve the shortcut or typed index to exactly one catalogue row. If the\ntyped index is out of range or invalid, show the valid index range and ask\nagain. If the user types `skip`, explain that `jetson-init-target`\nrequires a reference platform and ask again. If the user types `cancel`,\nstop without writing a profile.\n\n### Pick the flash config\n\nFrom the catalogue row, the **Default flash conf** is option `1`; the\n**Variants** column lists suffixes — option `2..N`. Reconstruct each\nvariant's full conf filename by appending the suffix to the default\nconf base. If a row says `(same as \u003Cother>)` in the Variants column,\nreuse the referenced row's variant list verbatim. Build this list only\nfrom the selected catalogue row.\n\nPrompt:\n\n> Pick a number, or press Enter to accept the default (`1`).\n\nIf the chosen row has no variants (`—` in the catalogue), proceed to\nthe \"Optional: add custom carrier details\" step with the default conf.\n\n**Edge cases:**\n\n- **Raw-conf variants** (catalogue marks `(raw)`). For Orin Nano,\n  `-a0-maxn (raw)` → `p3768-0000-p3767-0000-a0-maxn.conf`. Use the raw\n  filename verbatim.\n- **`(same as \u003Cother>)` placeholders.** Reuse the referenced row's\n  variants verbatim.\n\n### Optional: add custom carrier details\n\nAfter the baseline + flash config are chosen, resolve whether the profile\nshould record a custom carrier on top. If\n`quick_start_prefill.target.custom_carrier` is a valid concrete intent,\nconsume it directly:\n\n- `add_custom_carrier` → record `custom_carrier:` and collect the missing\n  carrier metadata below.\n- `no_custom_carrier` → omit `custom_carrier:` and proceed to the\n  \"Confirm\" step.\n- `keep_existing_custom_carrier` is valid only when editing an existing\n  active profile that already has `custom_carrier:`. Because this skill\n  authors a new profile, treat it as ambiguous and ask the custom-carrier\n  intent question below.\n- `skip` or a missing prefill value → ask the custom-carrier intent\n  question below.\n\nWhen intent is not already concrete, ask the user whether they also want\nto record a custom carrier on top using the `AskUserQuestions` UI. This\nis a bounded choice; show `add` and `skip` only:\n\n> Optionally add custom-carrier details for a customer-designed carrier\n> using this Jetson module? (`add` \u002F `skip`, default `skip`)\n\nIf the resolved intent is `skip`, proceed to the \"Confirm\" step with the\n`custom_carrier:` block omitted.\n\nIf the resolved intent is `add`, collect every still-missing\n`custom_carrier:` value through the `AskUserQuestions` UI. Do not collect\ncustom-carrier metadata with plain-text prompts, inline chat questions,\nfreeform summary confirmation, inferred defaults, or example values\npresented as selectable options. Split the collection into multiple\n`AskUserQuestions` forms if the UI question limit would otherwise be\nexceeded.\n\nFor the first `AskUserQuestions` form, ask `custom_carrier.name`,\n`custom_carrier.id`, `custom_carrier.sku`, and\n`custom_carrier.revision` in template document order. For these four\nfields, the only selectable path shown to the user must be the tool's\nbuilt-in `Type something` row. Do not add example values, \"Other\",\nguessed board IDs, guessed SKUs, common revision strings, or any explicit\ndomain options. These are customer-provided metadata: preserve them\nexactly as entered and do not require or validate any naming convention,\nprefix, case, character set, digit count, or SKU format. Validate only\nthat required fields are non-empty unless the user explicitly enters\n`NA`. `NA` is accepted per the contract for required fields; warn that\ndownstream skills may refuse if a missing field is required for their\nedit.\n\nAfter `custom_carrier.name` is known, collect\n`custom_carrier.flash_config` through a second `AskUserQuestions` form if\nit is still missing. Show the suggested default as the only explicit\nchoice and allow the built-in `Type something` row for a custom `.conf`\nfilename. Require a non-empty filename ending in `.conf`; do not derive\nit from board ID, SKU, or any guessed convention.\n\nField-specific behavior (defaults \u002F suggestions not expressible via\nmarkers alone):\n\n- `custom_carrier.flash_config` — suggest a default of kebab-cased\n  `custom_carrier.name + \".conf\"` (e.g. \"Acme Vision X1\" →\n  `acme-vision-x1.conf`).\n- `custom_carrier.name` — prompt: \"Type the customer-facing custom\n  carrier or product name exactly as you want it recorded. No format is\n  required.\" Use `Type something` only.\n- `custom_carrier.id` — prompt: \"Type the custom carrier board ID or\n  project ID exactly as you want it recorded. No format is required.\"\n  Use `Type something` only.\n- `custom_carrier.sku` — prompt: \"Type the custom carrier SKU or variant\n  identifier exactly as you want it recorded. No format is required.\"\n  Use `Type something` only; quote in the written YAML so numeric-looking\n  values and leading zeros survive.\n- `custom_carrier.revision` — prompt: \"Type the custom carrier revision\n  or build identifier exactly as you want it recorded, or press Enter to\n  omit it. No format is required.\" Use `Type something` only; omit when\n  skipped.\n\nIf the user does not know a value, suggest reading\n`\u002Fproc\u002Fdevice-tree\u002Fchosen\u002Fids` on the booted target. If genuinely\nunavailable, accept `NA` for required fields or omit optional fields.\n\nThe template intentionally omits `custom_carrier.module` and\n`custom_carrier.chip_family` — module identity comes from\n`reference_devkit.module` (the same physical Jetson module plugs into\nboth carriers). Don't add them back.\n\n### Confirm\n\nShow the proposed YAML. Shape depends on whether the user added\ncustom-carrier details in the \"Optional: add custom carrier details\"\nstep. **Example:** see\n[`references\u002Fui-samples.md`](references\u002Fui-samples.md) for the\nreference-only and reference + custom-carrier YAML shapes, plus the\nnote on which sibling skill appends which block.\n\nSuggested filename:\n\n- **Reference-only:** kebab-cased product name from the selected\n  catalogue row, with `.yaml` appended. E.g. `Jetson AGX Thor T5000` →\n  `jetson-agx-thor-t5000.yaml`; `Jetson AGX Orin 32GB` →\n  `jetson-agx-orin-32gb.yaml`. Do not derive the filename from\n  `flash_config`; multiple products can share one default conf.\n- **With custom carrier:** kebab-cased `custom_carrier.name`. E.g.\n  \"Acme Vision X1\" → `acme-vision-x1.yaml`.\n\nUse the suggested filename without asking when it is unique and was\ngenerated from the selected platform or custom-carrier name. Print the\nfilename and continue. Ask only on collision, empty generated name,\nambiguous input, or explicit custom-filename request. Then handle\nactivation:\n\n- **Bootstrap case** (no profile YAMLs existed at the \"Survey current state\" step): **do not\n  prompt.** The new profile is the first one, so it is auto-activated\n  in the \"Write\" step. Tell the user this is happening so the auto-activation is\n  not silent.\n- **Profiles already exist**: ask whether to **activate** the new\n  profile (default: yes). Decline only if the user is authoring\n  multiple profiles to choose from later — they can activate any of\n  them with `jetson-set-target`.\n\n### Write (and optionally activate)\n\n1. Write `target-platform\u002F\u003Cfilename>.yaml`. If the file already\n   exists, ask before overwriting; never silently clobber.\n2. Edit `target-platform\u002Factive_target.yml` to set\n   `active: \u003Cfilename>.yaml` when **either** of the following holds:\n   - This was the bootstrap case from the \"Survey current state\" step (no profile YAMLs existed\n     before this run) — activation is automatic, regardless of any\n     prior user input.\n   - Profiles already existed and the user accepted activation in\n     the \"Confirm\" step.\n\n   Preserve the header comment block; only modify the `active:` line.\n   If profiles already existed and the user declined activation, leave\n   `active_target.yml` untouched.\n\n### Confirm\n\nPrint a summary: profile path, active pointer (or \"unchanged\" if\nactivation was declined), Tegra family (T234 \u002F T264), whether\n`custom_carrier:` was recorded, and a reminder that downstream skills\nwill resolve to whichever profile is active. If the user authored\nmultiple profiles without activating, point them at `jetson-set-target`\nto pick one.\n\n**Next steps** (Setup → Customize chain):\n\n1. `\u002Fjetson-init-image` — extract the BSP and append `bsp_image:`.\n2. `\u002Fjetson-init-source` — clone the shared repos (and optionally\n   override `\u003Cworkspace>\u002FSource` if the user wants `source.root_path`\n   written into the profile).\n3. `\u002Fjetson-link-docs` *(optional)* — register paths to\n   pre-downloaded BSP \u002F schematic \u002F pinmux documents in the profile's\n   `documents:` block.\n\nThen, before any `customize-*` skill (Customize):\n\n4. `\u002Fjetson-generate-kb` — KB that customize-* skills consult for\n   target-specific file locations.\n5. `\u002Fjetson-derive-carrier` *(custom carriers only)* — materialize the\n   custom carrier's flash conf + supporting DTSIs from the reference\n   devkit. Required before per-knob customize-* on a custom carrier.\n\nIf a downstream skill triggered this run, tell the user to re-issue\ntheir original request; do not silently re-trigger it.\n\n## Prerequisites\n\n- `bsp-platforms-catalogue.md` and `platform_template.yaml` reachable\n  via the relative paths in the References section.\n- Write access to `target-platform\u002F` (and `target-platform\u002Factive_target.yml`\n  if activation is requested).\n- For \"what module\u002Fcarrier is this?\" lookups: `\u002Fproc\u002Fdevice-tree\u002Fchosen\u002Fids`\n  on the booted device.\n\n## Limitations\n\n- Owns only `reference_devkit:`, `custom_carrier:`, and the\n  `active_target.yml` pointer; refuses to write `bsp_image:`,\n  `source:`, or `documents:`.\n- Will not invent SKUs, module IDs, custom carrier metadata, or flash\n  configs — records `NA` or aborts when the user does not know a\n  required value.\n\n## Troubleshooting\n\n- **User asks to switch instead of author** — refuse and route to\n  `jetson-set-target`; do not re-author an existing profile.\n- **Catalogue row not found for the product the user named** —\n  add the row to `bsp-platforms-catalogue.md` first; do not patch the\n  product list inside this skill.\n- **Required field stuck at `NA`** — downstream `customize-*` skills\n  may refuse; capture the missing value (read\n  `\u002Fproc\u002Fdevice-tree\u002Fchosen\u002Fids`) and rerun.\n- **`active_target.yml` lost its comment block after activation** — a\n  non-round-tripping YAML writer was used; switch to `ruamel.yaml` and\n  restore from the template.\n\nSee [`references\u002Fgotchas.md`](references\u002Fgotchas.md) for the full\npitfalls list (catalogue\u002Ftemplate separation, NA handling, conf\ncollision rules, etc.).\n\n## References\n\n- [`..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md`](..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md) — product \u002F flash conf catalogue (the source of truth for the \"Pick the reference product\" and \"Pick the flash config\" steps).\n- [`..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md`](..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md) — the contract this skill writes to.\n- [`..\u002F..\u002Freferences\u002Fplatform_template.yaml`](..\u002F..\u002Freferences\u002Fplatform_template.yaml) — schema starter for a target profile (the source of truth for the \"Optional: add custom carrier details\" step).\n- [`..\u002F..\u002Freferences\u002Factive_target_template.yaml`](..\u002F..\u002Freferences\u002Factive_target_template.yaml) — schema starter for the active-target pointer.\n- [`..\u002Fjetson-set-target\u002FSKILL.md`](..\u002Fjetson-set-target\u002FSKILL.md) — sibling skill: switch the active pointer among already-authored profiles.\n- [`..\u002Fjetson-init-image\u002FSKILL.md`](..\u002Fjetson-init-image\u002FSKILL.md) — sibling skill: extract BSP image and author the `bsp_image:` block.\n- [`..\u002Fjetson-init-source\u002FSKILL.md`](..\u002Fjetson-init-source\u002FSKILL.md) — sibling skill: clone shared repos and (optionally) author the `source:` block.\n- [`..\u002Fjetson-link-docs\u002FSKILL.md`](..\u002Fjetson-link-docs\u002FSKILL.md) — sibling skill: author the `documents:` block by registering pre-downloaded files.\n",{"data":32,"body":40},{"name":4,"description":6,"version":33,"license":23,"metadata":34},"0.0.1",{"data-classification":35,"author":36,"tags":37,"domain":39},"public","Jetson Team",[38,14,39],"target-platform","meta",{"type":41,"children":42},"root",[43,52,59,108,120,203,231,237,277,283,290,309,334,347,353,368,489,502,522,528,600,719,725,761,767,779,800,805,814,903,929,935,978,983,997,1010,1018,1070,1076,1088,1155,1182,1211,1230,1262,1325,1374,1379,1473,1493,1522,1528,1551,1556,1638,1643,1686,1692,1768,1773,1792,1802,1875,1888,1920,1925,1931,1982,1988,2047,2053,2142,2158,2164],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"initialize-target-platform",[49],{"type":50,"value":51},"text","Initialize Target Platform",{"type":44,"tag":53,"props":54,"children":56},"h2",{"id":55},"overview",[57],{"type":50,"value":58},"Overview",{"type":44,"tag":60,"props":61,"children":62},"p",{},[63,65,71,73,84,86,95,97,106],{"type":50,"value":64},"This skill ",{"type":44,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":50,"value":70},"authors",{"type":50,"value":72}," a new target-platform profile YAML — the\nwrite-side of the contract in\n",{"type":44,"tag":74,"props":75,"children":77},"a",{"href":76},"..\u002F..\u002Fcontext\u002Ftarget-platform-contract.md",[78],{"type":44,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":50,"value":76},{"type":50,"value":85},". It uses\n",{"type":44,"tag":74,"props":87,"children":89},{"href":88},"..\u002F..\u002Freferences\u002Fbsp-platforms-catalogue.md",[90],{"type":44,"tag":79,"props":91,"children":93},{"className":92},[],[94],{"type":50,"value":88},{"type":50,"value":96},"\nas the canonical product \u002F flash-config catalogue and\n",{"type":44,"tag":74,"props":98,"children":100},{"href":99},"..\u002F..\u002Freferences\u002Fplatform_template.yaml",[101],{"type":44,"tag":79,"props":102,"children":104},{"className":103},[],[105],{"type":50,"value":99},{"type":50,"value":107},"\nas the field schema.",{"type":44,"tag":60,"props":109,"children":110},{},[111,113,118],{"type":50,"value":112},"Flow is linear: pick a reference product + flash config, then\n",{"type":44,"tag":66,"props":114,"children":115},{},[116],{"type":50,"value":117},"optionally",{"type":50,"value":119}," add custom-carrier details. The two contract cases —\nreference-only vs reference + custom carrier — are distinguished only\nby whether the user provides custom-carrier details; there is no\nup-front mode prompt.",{"type":44,"tag":60,"props":121,"children":122},{},[123,144,146,152,154,164,166,172,173,183,184,190,191,201],{"type":44,"tag":66,"props":124,"children":125},{},[126,128,134,136,142],{"type":50,"value":127},"Scope is ",{"type":44,"tag":79,"props":129,"children":131},{"className":130},[],[132],{"type":50,"value":133},"reference_devkit:",{"type":50,"value":135}," and ",{"type":44,"tag":79,"props":137,"children":139},{"className":138},[],[140],{"type":50,"value":141},"custom_carrier:",{"type":50,"value":143}," only.",{"type":50,"value":145}," Sibling\nskills own the other blocks: ",{"type":44,"tag":79,"props":147,"children":149},{"className":148},[],[150],{"type":50,"value":151},"bsp_image:",{"type":50,"value":153}," →\n",{"type":44,"tag":74,"props":155,"children":157},{"href":156},"..\u002Fjetson-init-image\u002FSKILL.md",[158],{"type":44,"tag":79,"props":159,"children":161},{"className":160},[],[162],{"type":50,"value":163},"jetson-init-image",{"type":50,"value":165},"; ",{"type":44,"tag":79,"props":167,"children":169},{"className":168},[],[170],{"type":50,"value":171},"source:",{"type":50,"value":153},{"type":44,"tag":74,"props":174,"children":176},{"href":175},"..\u002Fjetson-init-source\u002FSKILL.md",[177],{"type":44,"tag":79,"props":178,"children":180},{"className":179},[],[181],{"type":50,"value":182},"jetson-init-source",{"type":50,"value":165},{"type":44,"tag":79,"props":185,"children":187},{"className":186},[],[188],{"type":50,"value":189},"documents:",{"type":50,"value":153},{"type":44,"tag":74,"props":192,"children":194},{"href":193},"..\u002Fjetson-link-docs\u002FSKILL.md",[195],{"type":44,"tag":79,"props":196,"children":198},{"className":197},[],[199],{"type":50,"value":200},"jetson-link-docs",{"type":50,"value":202},".",{"type":44,"tag":60,"props":204,"children":205},{},[206,208,214,216,222,224,230],{"type":50,"value":207},"Outputs: a new ",{"type":44,"tag":79,"props":209,"children":211},{"className":210},[],[212],{"type":50,"value":213},"target-platform\u002F\u003Cname>.yaml",{"type":50,"value":215}," and (by default) an\nupdated ",{"type":44,"tag":79,"props":217,"children":219},{"className":218},[],[220],{"type":50,"value":221},"active_target.yml",{"type":50,"value":223}," pointing at it. To switch among\nalready-authored profiles, use sibling ",{"type":44,"tag":79,"props":225,"children":227},{"className":226},[],[228],{"type":50,"value":229},"jetson-set-target",{"type":50,"value":202},{"type":44,"tag":53,"props":232,"children":234},{"id":233},"when-to-invoke",[235],{"type":50,"value":236},"When to invoke",{"type":44,"tag":238,"props":239,"children":240},"ul",{},[241,247,272],{"type":44,"tag":242,"props":243,"children":244},"li",{},[245],{"type":50,"value":246},"The user asks to create \u002F author \u002F add a new target platform profile.",{"type":44,"tag":242,"props":248,"children":249},{},[250,252,257,263,265,270],{"type":50,"value":251},"A downstream skill refused with \"no active target\" ",{"type":44,"tag":66,"props":253,"children":254},{},[255],{"type":50,"value":256},"and",{"type":44,"tag":79,"props":258,"children":260},{"className":259},[],[261],{"type":50,"value":262},"target-platform\u002F",{"type":50,"value":264}," contains no profile YAML files yet (otherwise\nprefer ",{"type":44,"tag":79,"props":266,"children":268},{"className":267},[],[269],{"type":50,"value":229},{"type":50,"value":271},").",{"type":44,"tag":242,"props":273,"children":274},{},[275],{"type":50,"value":276},"The user wants a target whose profile does not yet exist on disk.",{"type":44,"tag":53,"props":278,"children":280},{"id":279},"procedure",[281],{"type":50,"value":282},"Procedure",{"type":44,"tag":284,"props":285,"children":287},"h3",{"id":286},"quick-start-prefill-mapping",[288],{"type":50,"value":289},"Quick-start prefill mapping",{"type":44,"tag":60,"props":291,"children":292},{},[293,295,307],{"type":50,"value":294},"Follow the shared\n",{"type":44,"tag":74,"props":296,"children":298},{"href":297},"..\u002F..\u002Fcontext\u002Fbsp-customization-workflow.md#quick_start_prefill-contract",[299,305],{"type":44,"tag":79,"props":300,"children":302},{"className":301},[],[303],{"type":50,"value":304},"quick_start_prefill",{"type":50,"value":306}," contract",{"type":50,"value":308},".\nThis skill consumes:",{"type":44,"tag":238,"props":310,"children":311},{},[312,323],{"type":44,"tag":242,"props":313,"children":314},{},[315,321],{"type":44,"tag":79,"props":316,"children":318},{"className":317},[],[319],{"type":50,"value":320},"quick_start_prefill.target.active_platform",{"type":50,"value":322}," as the selected catalogue\nrow when it resolves to exactly one product.",{"type":44,"tag":242,"props":324,"children":325},{},[326,332],{"type":44,"tag":79,"props":327,"children":329},{"className":328},[],[330],{"type":50,"value":331},"quick_start_prefill.target.custom_carrier",{"type":50,"value":333}," as the custom-carrier\nintent.",{"type":44,"tag":60,"props":335,"children":336},{},[337,339,345],{"type":50,"value":338},"If ",{"type":44,"tag":79,"props":340,"children":342},{"className":341},[],[343],{"type":50,"value":344},"active_platform",{"type":50,"value":346}," resolves to one catalogue row, use it directly. Do\nnot re-ask reference-product or flash-config questions; use the row's\ndefault flash config unless the prefill names a catalogue variant. Ask\nonly when the prefill is missing, invalid, ambiguous, or names an unknown\nvariant.",{"type":44,"tag":284,"props":348,"children":350},{"id":349},"how-the-skill-consumes-the-template",[351],{"type":50,"value":352},"How the skill consumes the template",{"type":44,"tag":60,"props":354,"children":355},{},[356,358,366],{"type":50,"value":357},"Load\n",{"type":44,"tag":74,"props":359,"children":360},{"href":99},[361],{"type":44,"tag":79,"props":362,"children":364},{"className":363},[],[365],{"type":50,"value":99},{"type":50,"value":367},"\nonce at skill startup and treat it as the schema for prompted blocks.\nEach placeholder value carries one of three sentinel markers:",{"type":44,"tag":369,"props":370,"children":371},"table",{},[372,391],{"type":44,"tag":373,"props":374,"children":375},"thead",{},[376],{"type":44,"tag":377,"props":378,"children":379},"tr",{},[380,386],{"type":44,"tag":381,"props":382,"children":383},"th",{},[384],{"type":50,"value":385},"Marker",{"type":44,"tag":381,"props":387,"children":388},{},[389],{"type":50,"value":390},"Behavior",{"type":44,"tag":392,"props":393,"children":394},"tbody",{},[395,421,459],{"type":44,"tag":377,"props":396,"children":397},{},[398,408],{"type":44,"tag":399,"props":400,"children":401},"td",{},[402],{"type":44,"tag":79,"props":403,"children":405},{"className":404},[],[406],{"type":50,"value":407},"\u003CREQUIRED: description>",{"type":44,"tag":399,"props":409,"children":410},{},[411,413,419],{"type":50,"value":412},"Prompt the user. Value must be provided; ",{"type":44,"tag":79,"props":414,"children":416},{"className":415},[],[417],{"type":50,"value":418},"NA",{"type":50,"value":420}," is accepted with a warning that downstream skills may refuse.",{"type":44,"tag":377,"props":422,"children":423},{},[424,433],{"type":44,"tag":399,"props":425,"children":426},{},[427],{"type":44,"tag":79,"props":428,"children":430},{"className":429},[],[431],{"type":50,"value":432},"\u003COPTIONAL: description>",{"type":44,"tag":399,"props":434,"children":435},{},[436,438,443,445,450,452,457],{"type":50,"value":437},"Prompt the user. Value may be skipped (Enter or ",{"type":44,"tag":79,"props":439,"children":441},{"className":440},[],[442],{"type":50,"value":418},{"type":50,"value":444},"); skipped fields are ",{"type":44,"tag":66,"props":446,"children":447},{},[448],{"type":50,"value":449},"omitted",{"type":50,"value":451}," from the written profile (no empty key, no ",{"type":44,"tag":79,"props":453,"children":455},{"className":454},[],[456],{"type":50,"value":418},{"type":50,"value":458}," placeholder).",{"type":44,"tag":377,"props":460,"children":461},{},[462,471],{"type":44,"tag":399,"props":463,"children":464},{},[465],{"type":44,"tag":79,"props":466,"children":468},{"className":467},[],[469],{"type":50,"value":470},"\u003CDERIVED: description>",{"type":44,"tag":399,"props":472,"children":473},{},[474,476,482,484],{"type":50,"value":475},"Filled programmatically from ",{"type":44,"tag":79,"props":477,"children":479},{"className":478},[],[480],{"type":50,"value":481},"bsp-platforms-catalogue.md",{"type":50,"value":483}," and the user's product \u002F flash-config choice in the \"Pick the reference product\" and \"Pick the flash config\" steps. ",{"type":44,"tag":66,"props":485,"children":486},{},[487],{"type":50,"value":488},"Not prompted.",{"type":44,"tag":60,"props":490,"children":491},{},[492,494,500],{"type":50,"value":493},"Use the marker description as the prompt text verbatim. Match markers\nwith the regex ",{"type":44,"tag":79,"props":495,"children":497},{"className":496},[],[498],{"type":50,"value":499},"^\u003C(REQUIRED|OPTIONAL|DERIVED):\\s*(.*)>$",{"type":50,"value":501}," after YAML\nparsing strips the surrounding quotes.",{"type":44,"tag":60,"props":503,"children":504},{},[505,507,513,515,520],{"type":50,"value":506},"Block-level inclusion (",{"type":44,"tag":79,"props":508,"children":510},{"className":509},[],[511],{"type":50,"value":512},"custom_carrier",{"type":50,"value":514},") is decided by the skill\nflow, not by markers — adding\u002Fremoving fields ",{"type":44,"tag":66,"props":516,"children":517},{},[518],{"type":50,"value":519},"inside",{"type":50,"value":521}," a block is\na template-only change.",{"type":44,"tag":284,"props":523,"children":525},{"id":524},"survey-current-state",[526],{"type":50,"value":527},"Survey current state",{"type":44,"tag":529,"props":530,"children":531},"ol",{},[532,570,581],{"type":44,"tag":242,"props":533,"children":534},{},[535,536,541,543,552,554,560,562,568],{"type":50,"value":338},{"type":44,"tag":79,"props":537,"children":539},{"className":538},[],[540],{"type":50,"value":262},{"type":50,"value":542}," does not exist, create it and copy\n",{"type":44,"tag":74,"props":544,"children":546},{"href":545},"..\u002F..\u002Freferences\u002Factive_target_template.yaml",[547],{"type":44,"tag":79,"props":548,"children":550},{"className":549},[],[551],{"type":50,"value":545},{"type":50,"value":553},"\nto ",{"type":44,"tag":79,"props":555,"children":557},{"className":556},[],[558],{"type":50,"value":559},"target-platform\u002Factive_target.yml",{"type":50,"value":561}," (note ",{"type":44,"tag":79,"props":563,"children":565},{"className":564},[],[566],{"type":50,"value":567},".yml",{"type":50,"value":569}," extension).",{"type":44,"tag":242,"props":571,"children":572},{},[573,575,580],{"type":50,"value":574},"Read ",{"type":44,"tag":79,"props":576,"children":578},{"className":577},[],[579],{"type":50,"value":559},{"type":50,"value":202},{"type":44,"tag":242,"props":582,"children":583},{},[584,586,592,594,599],{"type":50,"value":585},"List ",{"type":44,"tag":79,"props":587,"children":589},{"className":588},[],[590],{"type":50,"value":591},"target-platform\u002F*.yaml",{"type":50,"value":593}," (excluding ",{"type":44,"tag":79,"props":595,"children":597},{"className":596},[],[598],{"type":50,"value":221},{"type":50,"value":271},{"type":44,"tag":369,"props":601,"children":602},{},[603,619],{"type":44,"tag":373,"props":604,"children":605},{},[606],{"type":44,"tag":377,"props":607,"children":608},{},[609,614],{"type":44,"tag":381,"props":610,"children":611},{},[612],{"type":50,"value":613},"Situation",{"type":44,"tag":381,"props":615,"children":616},{},[617],{"type":50,"value":618},"Action",{"type":44,"tag":392,"props":620,"children":621},{},[622,643,668,701],{"type":44,"tag":377,"props":623,"children":624},{},[625,630],{"type":44,"tag":399,"props":626,"children":627},{},[628],{"type":50,"value":629},"No profile YAMLs exist",{"type":44,"tag":399,"props":631,"children":632},{},[633,635,641],{"type":50,"value":634},"Proceed — this is the bootstrap case. The new profile will be set as ",{"type":44,"tag":79,"props":636,"children":638},{"className":637},[],[639],{"type":50,"value":640},"active_target",{"type":50,"value":642}," automatically in the \"Write\" step (no activation prompt in the \"Confirm\" step).",{"type":44,"tag":377,"props":644,"children":645},{},[646,657],{"type":44,"tag":399,"props":647,"children":648},{},[649,651],{"type":50,"value":650},"Profiles exist, ",{"type":44,"tag":79,"props":652,"children":654},{"className":653},[],[655],{"type":50,"value":656},"active: NA",{"type":44,"tag":399,"props":658,"children":659},{},[660,662,667],{"type":50,"value":661},"Show the list of existing profiles and confirm the user wants to author a new one (rather than activate one of the existing profiles via ",{"type":44,"tag":79,"props":663,"children":665},{"className":664},[],[666],{"type":50,"value":229},{"type":50,"value":271},{"type":44,"tag":377,"props":669,"children":670},{},[671,683],{"type":44,"tag":399,"props":672,"children":673},{},[674,675,681],{"type":50,"value":650},{"type":44,"tag":79,"props":676,"children":678},{"className":677},[],[679],{"type":50,"value":680},"active:",{"type":50,"value":682}," names a present file",{"type":44,"tag":399,"props":684,"children":685},{},[686,688,693,695,700],{"type":50,"value":687},"Show the active profile and the full list. Ask whether the user wants to (a) author a new profile alongside, or (b) switch to one of the existing profiles via ",{"type":44,"tag":79,"props":689,"children":691},{"className":690},[],[692],{"type":50,"value":229},{"type":50,"value":694},". If (b), stop and tell the user to run ",{"type":44,"tag":79,"props":696,"children":698},{"className":697},[],[699],{"type":50,"value":229},{"type":50,"value":202},{"type":44,"tag":377,"props":702,"children":703},{},[704,714],{"type":44,"tag":399,"props":705,"children":706},{},[707,712],{"type":44,"tag":79,"props":708,"children":710},{"className":709},[],[711],{"type":50,"value":680},{"type":50,"value":713}," names a missing file",{"type":44,"tag":399,"props":715,"children":716},{},[717],{"type":50,"value":718},"Tell the user the pointer is broken; offer to author a new profile (and replace the pointer) or to fix the pointer manually.",{"type":44,"tag":284,"props":720,"children":722},{"id":721},"read-the-platforms-catalogue",[723],{"type":50,"value":724},"Read the platforms catalogue",{"type":44,"tag":60,"props":726,"children":727},{},[728,729,737,739,744,746,751,753,759],{"type":50,"value":574},{"type":44,"tag":74,"props":730,"children":731},{"href":88},[732],{"type":44,"tag":79,"props":733,"children":735},{"className":734},[],[736],{"type":50,"value":88},{"type":50,"value":738},".\nParse the ",{"type":44,"tag":66,"props":740,"children":741},{},[742],{"type":50,"value":743},"\"Product \u002F Chip \u002F SKU \u002F Flash Config Mapping\"",{"type":50,"value":745}," table — that\nis the source of truth for product names, CVM\u002FCVB SKUs, default flash\nconfs, and variant suffixes. Do ",{"type":44,"tag":66,"props":747,"children":748},{},[749],{"type":50,"value":750},"not",{"type":50,"value":752}," scan ",{"type":44,"tag":79,"props":754,"children":756},{"className":755},[],[757],{"type":50,"value":758},"Linux_for_Tegra\u002F*.conf",{"type":50,"value":760},"\nor parse conf filenames; the catalogue already collapses that.",{"type":44,"tag":284,"props":762,"children":764},{"id":763},"pick-the-reference-product-baseline",[765],{"type":50,"value":766},"Pick the reference product (baseline)",{"type":44,"tag":60,"props":768,"children":769},{},[770,772,777],{"type":50,"value":771},"Print the full catalogue list before asking. Group rows by chip family\nand number every entry with stable indexes for this run. Build the list\nonly from ",{"type":44,"tag":79,"props":773,"children":775},{"className":774},[],[776],{"type":50,"value":481},{"type":50,"value":778},"; do not copy platform rows from\nexamples or other docs.",{"type":44,"tag":60,"props":780,"children":781},{},[782,784,790,792,798],{"type":50,"value":783},"Build explicit shortcut choices from the printed list by taking the first\nrow in each chip-family group. Each shortcut label must include the\nfull-list index and product name, for example ",{"type":44,"tag":79,"props":785,"children":787},{"className":786},[],[788],{"type":50,"value":789},"Index 1 — Jetson AGX Orin 64GB",{"type":50,"value":791},". Do not hard-code product names; derive shortcuts from the parsed\ncatalogue rows. These shortcuts are the only explicit choices for this\nquestion. Manual index entry must use the tool's built-in ",{"type":44,"tag":79,"props":793,"children":795},{"className":794},[],[796],{"type":50,"value":797},"Type something",{"type":50,"value":799},"\ninput; do not add a third custom choice for manual entry.",{"type":44,"tag":60,"props":801,"children":802},{},[803],{"type":50,"value":804},"Prompt text:",{"type":44,"tag":806,"props":807,"children":808},"blockquote",{},[809],{"type":44,"tag":60,"props":810,"children":811},{},[812],{"type":50,"value":813},"Pick a platform shortcut, or choose Type something and type the numeric\nindex from the full platform list printed above. If your hardware is a\ncustom carrier with one of these Jetson modules, pick the closest\nmatching reference devkit as the baseline. Type cancel to cancel this\nrun.",{"type":44,"tag":60,"props":815,"children":816},{},[817,819,825,827,833,835,841,843,849,850,856,858,863,865,871,873,878,880,885,887,893,895,901],{"type":50,"value":818},"Do not show chip-family choices such as ",{"type":44,"tag":79,"props":820,"children":822},{"className":821},[],[823],{"type":50,"value":824},"T234 \u002F Orin family",{"type":50,"value":826}," or\n",{"type":44,"tag":79,"props":828,"children":830},{"className":829},[],[831],{"type":50,"value":832},"T264 \u002F Thor family",{"type":50,"value":834},". Do not show ",{"type":44,"tag":79,"props":836,"children":838},{"className":837},[],[839],{"type":50,"value":840},"Type index",{"type":50,"value":842},", ",{"type":44,"tag":79,"props":844,"children":846},{"className":845},[],[847],{"type":50,"value":848},"Manual entry",{"type":50,"value":842},{"type":44,"tag":79,"props":851,"children":853},{"className":852},[],[854],{"type":50,"value":855},"Other platform",{"type":50,"value":857},", or any custom manual-entry choice. The only manual-entry path\nis the tool-provided ",{"type":44,"tag":79,"props":859,"children":861},{"className":860},[],[862],{"type":50,"value":797},{"type":50,"value":864}," row. Do not add ",{"type":44,"tag":79,"props":866,"children":868},{"className":867},[],[869],{"type":50,"value":870},"Other",{"type":50,"value":872}," as a choice\nor paraphrase ",{"type":44,"tag":79,"props":874,"children":876},{"className":875},[],[877],{"type":50,"value":797},{"type":50,"value":879}," as ",{"type":44,"tag":79,"props":881,"children":883},{"className":882},[],[884],{"type":50,"value":870},{"type":50,"value":886}," in prompt text. Do not accept\nproduct-name substring matches in this step; typed input must be a numeric\nindex from the printed full list or ",{"type":44,"tag":79,"props":888,"children":890},{"className":889},[],[891],{"type":50,"value":892},"cancel",{"type":50,"value":894},". ",{"type":44,"tag":79,"props":896,"children":898},{"className":897},[],[899],{"type":50,"value":900},"skip",{"type":50,"value":902}," is not allowed\nbecause this skill cannot author a target profile without a reference\nplatform.",{"type":44,"tag":60,"props":904,"children":905},{},[906,908,913,915,920,922,927],{"type":50,"value":907},"Resolve the shortcut or typed index to exactly one catalogue row. If the\ntyped index is out of range or invalid, show the valid index range and ask\nagain. If the user types ",{"type":44,"tag":79,"props":909,"children":911},{"className":910},[],[912],{"type":50,"value":900},{"type":50,"value":914},", explain that ",{"type":44,"tag":79,"props":916,"children":918},{"className":917},[],[919],{"type":50,"value":4},{"type":50,"value":921},"\nrequires a reference platform and ask again. If the user types ",{"type":44,"tag":79,"props":923,"children":925},{"className":924},[],[926],{"type":50,"value":892},{"type":50,"value":928},",\nstop without writing a profile.",{"type":44,"tag":284,"props":930,"children":932},{"id":931},"pick-the-flash-config",[933],{"type":50,"value":934},"Pick the flash config",{"type":44,"tag":60,"props":936,"children":937},{},[938,940,945,947,953,955,960,962,968,970,976],{"type":50,"value":939},"From the catalogue row, the ",{"type":44,"tag":66,"props":941,"children":942},{},[943],{"type":50,"value":944},"Default flash conf",{"type":50,"value":946}," is option ",{"type":44,"tag":79,"props":948,"children":950},{"className":949},[],[951],{"type":50,"value":952},"1",{"type":50,"value":954},"; the\n",{"type":44,"tag":66,"props":956,"children":957},{},[958],{"type":50,"value":959},"Variants",{"type":50,"value":961}," column lists suffixes — option ",{"type":44,"tag":79,"props":963,"children":965},{"className":964},[],[966],{"type":50,"value":967},"2..N",{"type":50,"value":969},". Reconstruct each\nvariant's full conf filename by appending the suffix to the default\nconf base. If a row says ",{"type":44,"tag":79,"props":971,"children":973},{"className":972},[],[974],{"type":50,"value":975},"(same as \u003Cother>)",{"type":50,"value":977}," in the Variants column,\nreuse the referenced row's variant list verbatim. Build this list only\nfrom the selected catalogue row.",{"type":44,"tag":60,"props":979,"children":980},{},[981],{"type":50,"value":982},"Prompt:",{"type":44,"tag":806,"props":984,"children":985},{},[986],{"type":44,"tag":60,"props":987,"children":988},{},[989,991,996],{"type":50,"value":990},"Pick a number, or press Enter to accept the default (",{"type":44,"tag":79,"props":992,"children":994},{"className":993},[],[995],{"type":50,"value":952},{"type":50,"value":271},{"type":44,"tag":60,"props":998,"children":999},{},[1000,1002,1008],{"type":50,"value":1001},"If the chosen row has no variants (",{"type":44,"tag":79,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":50,"value":1007},"—",{"type":50,"value":1009}," in the catalogue), proceed to\nthe \"Optional: add custom carrier details\" step with the default conf.",{"type":44,"tag":60,"props":1011,"children":1012},{},[1013],{"type":44,"tag":66,"props":1014,"children":1015},{},[1016],{"type":50,"value":1017},"Edge cases:",{"type":44,"tag":238,"props":1019,"children":1020},{},[1021,1055],{"type":44,"tag":242,"props":1022,"children":1023},{},[1024,1029,1031,1037,1039,1045,1047,1053],{"type":44,"tag":66,"props":1025,"children":1026},{},[1027],{"type":50,"value":1028},"Raw-conf variants",{"type":50,"value":1030}," (catalogue marks ",{"type":44,"tag":79,"props":1032,"children":1034},{"className":1033},[],[1035],{"type":50,"value":1036},"(raw)",{"type":50,"value":1038},"). For Orin Nano,\n",{"type":44,"tag":79,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":50,"value":1044},"-a0-maxn (raw)",{"type":50,"value":1046}," → ",{"type":44,"tag":79,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":50,"value":1052},"p3768-0000-p3767-0000-a0-maxn.conf",{"type":50,"value":1054},". Use the raw\nfilename verbatim.",{"type":44,"tag":242,"props":1056,"children":1057},{},[1058,1068],{"type":44,"tag":66,"props":1059,"children":1060},{},[1061,1066],{"type":44,"tag":79,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":50,"value":975},{"type":50,"value":1067}," placeholders.",{"type":50,"value":1069}," Reuse the referenced row's\nvariants verbatim.",{"type":44,"tag":284,"props":1071,"children":1073},{"id":1072},"optional-add-custom-carrier-details",[1074],{"type":50,"value":1075},"Optional: add custom carrier details",{"type":44,"tag":60,"props":1077,"children":1078},{},[1079,1081,1086],{"type":50,"value":1080},"After the baseline + flash config are chosen, resolve whether the profile\nshould record a custom carrier on top. If\n",{"type":44,"tag":79,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":50,"value":331},{"type":50,"value":1087}," is a valid concrete intent,\nconsume it directly:",{"type":44,"tag":238,"props":1089,"children":1090},{},[1091,1109,1127,1145],{"type":44,"tag":242,"props":1092,"children":1093},{},[1094,1100,1102,1107],{"type":44,"tag":79,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":50,"value":1099},"add_custom_carrier",{"type":50,"value":1101}," → record ",{"type":44,"tag":79,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":50,"value":141},{"type":50,"value":1108}," and collect the missing\ncarrier metadata below.",{"type":44,"tag":242,"props":1110,"children":1111},{},[1112,1118,1120,1125],{"type":44,"tag":79,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":50,"value":1117},"no_custom_carrier",{"type":50,"value":1119}," → omit ",{"type":44,"tag":79,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":50,"value":141},{"type":50,"value":1126}," and proceed to the\n\"Confirm\" step.",{"type":44,"tag":242,"props":1128,"children":1129},{},[1130,1136,1138,1143],{"type":44,"tag":79,"props":1131,"children":1133},{"className":1132},[],[1134],{"type":50,"value":1135},"keep_existing_custom_carrier",{"type":50,"value":1137}," is valid only when editing an existing\nactive profile that already has ",{"type":44,"tag":79,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":50,"value":141},{"type":50,"value":1144},". Because this skill\nauthors a new profile, treat it as ambiguous and ask the custom-carrier\nintent question below.",{"type":44,"tag":242,"props":1146,"children":1147},{},[1148,1153],{"type":44,"tag":79,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":50,"value":900},{"type":50,"value":1154}," or a missing prefill value → ask the custom-carrier intent\nquestion below.",{"type":44,"tag":60,"props":1156,"children":1157},{},[1158,1160,1166,1168,1174,1175,1180],{"type":50,"value":1159},"When intent is not already concrete, ask the user whether they also want\nto record a custom carrier on top using the ",{"type":44,"tag":79,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":50,"value":1165},"AskUserQuestions",{"type":50,"value":1167}," UI. This\nis a bounded choice; show ",{"type":44,"tag":79,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":50,"value":1173},"add",{"type":50,"value":135},{"type":44,"tag":79,"props":1176,"children":1178},{"className":1177},[],[1179],{"type":50,"value":900},{"type":50,"value":1181}," only:",{"type":44,"tag":806,"props":1183,"children":1184},{},[1185],{"type":44,"tag":60,"props":1186,"children":1187},{},[1188,1190,1195,1197,1202,1204,1209],{"type":50,"value":1189},"Optionally add custom-carrier details for a customer-designed carrier\nusing this Jetson module? (",{"type":44,"tag":79,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":50,"value":1173},{"type":50,"value":1196}," \u002F ",{"type":44,"tag":79,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":50,"value":900},{"type":50,"value":1203},", default ",{"type":44,"tag":79,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":50,"value":900},{"type":50,"value":1210},")",{"type":44,"tag":60,"props":1212,"children":1213},{},[1214,1216,1221,1223,1228],{"type":50,"value":1215},"If the resolved intent is ",{"type":44,"tag":79,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":50,"value":900},{"type":50,"value":1222},", proceed to the \"Confirm\" step with the\n",{"type":44,"tag":79,"props":1224,"children":1226},{"className":1225},[],[1227],{"type":50,"value":141},{"type":50,"value":1229}," block omitted.",{"type":44,"tag":60,"props":1231,"children":1232},{},[1233,1234,1239,1241,1246,1248,1253,1255,1260],{"type":50,"value":1215},{"type":44,"tag":79,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":50,"value":1173},{"type":50,"value":1240},", collect every still-missing\n",{"type":44,"tag":79,"props":1242,"children":1244},{"className":1243},[],[1245],{"type":50,"value":141},{"type":50,"value":1247}," value through the ",{"type":44,"tag":79,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":50,"value":1165},{"type":50,"value":1254}," UI. Do not collect\ncustom-carrier metadata with plain-text prompts, inline chat questions,\nfreeform summary confirmation, inferred defaults, or example values\npresented as selectable options. Split the collection into multiple\n",{"type":44,"tag":79,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":50,"value":1165},{"type":50,"value":1261}," forms if the UI question limit would otherwise be\nexceeded.",{"type":44,"tag":60,"props":1263,"children":1264},{},[1265,1267,1272,1274,1280,1282,1288,1289,1295,1297,1303,1305,1310,1312,1317,1318,1323],{"type":50,"value":1266},"For the first ",{"type":44,"tag":79,"props":1268,"children":1270},{"className":1269},[],[1271],{"type":50,"value":1165},{"type":50,"value":1273}," form, ask ",{"type":44,"tag":79,"props":1275,"children":1277},{"className":1276},[],[1278],{"type":50,"value":1279},"custom_carrier.name",{"type":50,"value":1281},",\n",{"type":44,"tag":79,"props":1283,"children":1285},{"className":1284},[],[1286],{"type":50,"value":1287},"custom_carrier.id",{"type":50,"value":842},{"type":44,"tag":79,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":50,"value":1294},"custom_carrier.sku",{"type":50,"value":1296},", and\n",{"type":44,"tag":79,"props":1298,"children":1300},{"className":1299},[],[1301],{"type":50,"value":1302},"custom_carrier.revision",{"type":50,"value":1304}," in template document order. For these four\nfields, the only selectable path shown to the user must be the tool's\nbuilt-in ",{"type":44,"tag":79,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":50,"value":797},{"type":50,"value":1311}," row. Do not add example values, \"Other\",\nguessed board IDs, guessed SKUs, common revision strings, or any explicit\ndomain options. These are customer-provided metadata: preserve them\nexactly as entered and do not require or validate any naming convention,\nprefix, case, character set, digit count, or SKU format. Validate only\nthat required fields are non-empty unless the user explicitly enters\n",{"type":44,"tag":79,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":50,"value":418},{"type":50,"value":894},{"type":44,"tag":79,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":50,"value":418},{"type":50,"value":1324}," is accepted per the contract for required fields; warn that\ndownstream skills may refuse if a missing field is required for their\nedit.",{"type":44,"tag":60,"props":1326,"children":1327},{},[1328,1330,1335,1337,1343,1345,1350,1352,1357,1359,1365,1367,1372],{"type":50,"value":1329},"After ",{"type":44,"tag":79,"props":1331,"children":1333},{"className":1332},[],[1334],{"type":50,"value":1279},{"type":50,"value":1336}," is known, collect\n",{"type":44,"tag":79,"props":1338,"children":1340},{"className":1339},[],[1341],{"type":50,"value":1342},"custom_carrier.flash_config",{"type":50,"value":1344}," through a second ",{"type":44,"tag":79,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":50,"value":1165},{"type":50,"value":1351}," form if\nit is still missing. Show the suggested default as the only explicit\nchoice and allow the built-in ",{"type":44,"tag":79,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":50,"value":797},{"type":50,"value":1358}," row for a custom ",{"type":44,"tag":79,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":50,"value":1364},".conf",{"type":50,"value":1366},"\nfilename. Require a non-empty filename ending in ",{"type":44,"tag":79,"props":1368,"children":1370},{"className":1369},[],[1371],{"type":50,"value":1364},{"type":50,"value":1373},"; do not derive\nit from board ID, SKU, or any guessed convention.",{"type":44,"tag":60,"props":1375,"children":1376},{},[1377],{"type":50,"value":1378},"Field-specific behavior (defaults \u002F suggestions not expressible via\nmarkers alone):",{"type":44,"tag":238,"props":1380,"children":1381},{},[1382,1407,1423,1439,1456],{"type":44,"tag":242,"props":1383,"children":1384},{},[1385,1390,1392,1398,1400,1406],{"type":44,"tag":79,"props":1386,"children":1388},{"className":1387},[],[1389],{"type":50,"value":1342},{"type":50,"value":1391}," — suggest a default of kebab-cased\n",{"type":44,"tag":79,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":50,"value":1397},"custom_carrier.name + \".conf\"",{"type":50,"value":1399}," (e.g. \"Acme Vision X1\" →\n",{"type":44,"tag":79,"props":1401,"children":1403},{"className":1402},[],[1404],{"type":50,"value":1405},"acme-vision-x1.conf",{"type":50,"value":271},{"type":44,"tag":242,"props":1408,"children":1409},{},[1410,1415,1417,1422],{"type":44,"tag":79,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":50,"value":1279},{"type":50,"value":1416}," — prompt: \"Type the customer-facing custom\ncarrier or product name exactly as you want it recorded. No format is\nrequired.\" Use ",{"type":44,"tag":79,"props":1418,"children":1420},{"className":1419},[],[1421],{"type":50,"value":797},{"type":50,"value":143},{"type":44,"tag":242,"props":1424,"children":1425},{},[1426,1431,1433,1438],{"type":44,"tag":79,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":50,"value":1287},{"type":50,"value":1432}," — prompt: \"Type the custom carrier board ID or\nproject ID exactly as you want it recorded. No format is required.\"\nUse ",{"type":44,"tag":79,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":50,"value":797},{"type":50,"value":143},{"type":44,"tag":242,"props":1440,"children":1441},{},[1442,1447,1449,1454],{"type":44,"tag":79,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":50,"value":1294},{"type":50,"value":1448}," — prompt: \"Type the custom carrier SKU or variant\nidentifier exactly as you want it recorded. No format is required.\"\nUse ",{"type":44,"tag":79,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":50,"value":797},{"type":50,"value":1455}," only; quote in the written YAML so numeric-looking\nvalues and leading zeros survive.",{"type":44,"tag":242,"props":1457,"children":1458},{},[1459,1464,1466,1471],{"type":44,"tag":79,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":50,"value":1302},{"type":50,"value":1465}," — prompt: \"Type the custom carrier revision\nor build identifier exactly as you want it recorded, or press Enter to\nomit it. No format is required.\" Use ",{"type":44,"tag":79,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":50,"value":797},{"type":50,"value":1472}," only; omit when\nskipped.",{"type":44,"tag":60,"props":1474,"children":1475},{},[1476,1478,1484,1486,1491],{"type":50,"value":1477},"If the user does not know a value, suggest reading\n",{"type":44,"tag":79,"props":1479,"children":1481},{"className":1480},[],[1482],{"type":50,"value":1483},"\u002Fproc\u002Fdevice-tree\u002Fchosen\u002Fids",{"type":50,"value":1485}," on the booted target. If genuinely\nunavailable, accept ",{"type":44,"tag":79,"props":1487,"children":1489},{"className":1488},[],[1490],{"type":50,"value":418},{"type":50,"value":1492}," for required fields or omit optional fields.",{"type":44,"tag":60,"props":1494,"children":1495},{},[1496,1498,1504,1506,1512,1514,1520],{"type":50,"value":1497},"The template intentionally omits ",{"type":44,"tag":79,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":50,"value":1503},"custom_carrier.module",{"type":50,"value":1505}," and\n",{"type":44,"tag":79,"props":1507,"children":1509},{"className":1508},[],[1510],{"type":50,"value":1511},"custom_carrier.chip_family",{"type":50,"value":1513}," — module identity comes from\n",{"type":44,"tag":79,"props":1515,"children":1517},{"className":1516},[],[1518],{"type":50,"value":1519},"reference_devkit.module",{"type":50,"value":1521}," (the same physical Jetson module plugs into\nboth carriers). Don't add them back.",{"type":44,"tag":284,"props":1523,"children":1525},{"id":1524},"confirm",[1526],{"type":50,"value":1527},"Confirm",{"type":44,"tag":60,"props":1529,"children":1530},{},[1531,1533,1538,1540,1549],{"type":50,"value":1532},"Show the proposed YAML. Shape depends on whether the user added\ncustom-carrier details in the \"Optional: add custom carrier details\"\nstep. ",{"type":44,"tag":66,"props":1534,"children":1535},{},[1536],{"type":50,"value":1537},"Example:",{"type":50,"value":1539}," see\n",{"type":44,"tag":74,"props":1541,"children":1543},{"href":1542},"references\u002Fui-samples.md",[1544],{"type":44,"tag":79,"props":1545,"children":1547},{"className":1546},[],[1548],{"type":50,"value":1542},{"type":50,"value":1550}," for the\nreference-only and reference + custom-carrier YAML shapes, plus the\nnote on which sibling skill appends which block.",{"type":44,"tag":60,"props":1552,"children":1553},{},[1554],{"type":50,"value":1555},"Suggested filename:",{"type":44,"tag":238,"props":1557,"children":1558},{},[1559,1614],{"type":44,"tag":242,"props":1560,"children":1561},{},[1562,1567,1569,1575,1577,1583,1584,1590,1591,1597,1598,1604,1606,1612],{"type":44,"tag":66,"props":1563,"children":1564},{},[1565],{"type":50,"value":1566},"Reference-only:",{"type":50,"value":1568}," kebab-cased product name from the selected\ncatalogue row, with ",{"type":44,"tag":79,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":50,"value":1574},".yaml",{"type":50,"value":1576}," appended. E.g. ",{"type":44,"tag":79,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":50,"value":1582},"Jetson AGX Thor T5000",{"type":50,"value":153},{"type":44,"tag":79,"props":1585,"children":1587},{"className":1586},[],[1588],{"type":50,"value":1589},"jetson-agx-thor-t5000.yaml",{"type":50,"value":165},{"type":44,"tag":79,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":50,"value":1596},"Jetson AGX Orin 32GB",{"type":50,"value":153},{"type":44,"tag":79,"props":1599,"children":1601},{"className":1600},[],[1602],{"type":50,"value":1603},"jetson-agx-orin-32gb.yaml",{"type":50,"value":1605},". Do not derive the filename from\n",{"type":44,"tag":79,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":50,"value":1611},"flash_config",{"type":50,"value":1613},"; multiple products can share one default conf.",{"type":44,"tag":242,"props":1615,"children":1616},{},[1617,1622,1624,1629,1631,1637],{"type":44,"tag":66,"props":1618,"children":1619},{},[1620],{"type":50,"value":1621},"With custom carrier:",{"type":50,"value":1623}," kebab-cased ",{"type":44,"tag":79,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":50,"value":1279},{"type":50,"value":1630},". E.g.\n\"Acme Vision X1\" → ",{"type":44,"tag":79,"props":1632,"children":1634},{"className":1633},[],[1635],{"type":50,"value":1636},"acme-vision-x1.yaml",{"type":50,"value":202},{"type":44,"tag":60,"props":1639,"children":1640},{},[1641],{"type":50,"value":1642},"Use the suggested filename without asking when it is unique and was\ngenerated from the selected platform or custom-carrier name. Print the\nfilename and continue. Ask only on collision, empty generated name,\nambiguous input, or explicit custom-filename request. Then handle\nactivation:",{"type":44,"tag":238,"props":1644,"children":1645},{},[1646,1663],{"type":44,"tag":242,"props":1647,"children":1648},{},[1649,1654,1656,1661],{"type":44,"tag":66,"props":1650,"children":1651},{},[1652],{"type":50,"value":1653},"Bootstrap case",{"type":50,"value":1655}," (no profile YAMLs existed at the \"Survey current state\" step): ",{"type":44,"tag":66,"props":1657,"children":1658},{},[1659],{"type":50,"value":1660},"do not\nprompt.",{"type":50,"value":1662}," The new profile is the first one, so it is auto-activated\nin the \"Write\" step. Tell the user this is happening so the auto-activation is\nnot silent.",{"type":44,"tag":242,"props":1664,"children":1665},{},[1666,1671,1673,1678,1680,1685],{"type":44,"tag":66,"props":1667,"children":1668},{},[1669],{"type":50,"value":1670},"Profiles already exist",{"type":50,"value":1672},": ask whether to ",{"type":44,"tag":66,"props":1674,"children":1675},{},[1676],{"type":50,"value":1677},"activate",{"type":50,"value":1679}," the new\nprofile (default: yes). Decline only if the user is authoring\nmultiple profiles to choose from later — they can activate any of\nthem with ",{"type":44,"tag":79,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":50,"value":229},{"type":50,"value":202},{"type":44,"tag":284,"props":1687,"children":1689},{"id":1688},"write-and-optionally-activate",[1690],{"type":50,"value":1691},"Write (and optionally activate)",{"type":44,"tag":529,"props":1693,"children":1694},{},[1695,1708],{"type":44,"tag":242,"props":1696,"children":1697},{},[1698,1700,1706],{"type":50,"value":1699},"Write ",{"type":44,"tag":79,"props":1701,"children":1703},{"className":1702},[],[1704],{"type":50,"value":1705},"target-platform\u002F\u003Cfilename>.yaml",{"type":50,"value":1707},". If the file already\nexists, ask before overwriting; never silently clobber.",{"type":44,"tag":242,"props":1709,"children":1710},{},[1711,1713,1718,1720,1726,1728,1733,1735,1748,1752,1754,1759,1761,1766],{"type":50,"value":1712},"Edit ",{"type":44,"tag":79,"props":1714,"children":1716},{"className":1715},[],[1717],{"type":50,"value":559},{"type":50,"value":1719}," to set\n",{"type":44,"tag":79,"props":1721,"children":1723},{"className":1722},[],[1724],{"type":50,"value":1725},"active: \u003Cfilename>.yaml",{"type":50,"value":1727}," when ",{"type":44,"tag":66,"props":1729,"children":1730},{},[1731],{"type":50,"value":1732},"either",{"type":50,"value":1734}," of the following holds:",{"type":44,"tag":238,"props":1736,"children":1737},{},[1738,1743],{"type":44,"tag":242,"props":1739,"children":1740},{},[1741],{"type":50,"value":1742},"This was the bootstrap case from the \"Survey current state\" step (no profile YAMLs existed\nbefore this run) — activation is automatic, regardless of any\nprior user input.",{"type":44,"tag":242,"props":1744,"children":1745},{},[1746],{"type":50,"value":1747},"Profiles already existed and the user accepted activation in\nthe \"Confirm\" step.",{"type":44,"tag":1749,"props":1750,"children":1751},"br",{},[],{"type":50,"value":1753},"Preserve the header comment block; only modify the ",{"type":44,"tag":79,"props":1755,"children":1757},{"className":1756},[],[1758],{"type":50,"value":680},{"type":50,"value":1760}," line.\nIf profiles already existed and the user declined activation, leave\n",{"type":44,"tag":79,"props":1762,"children":1764},{"className":1763},[],[1765],{"type":50,"value":221},{"type":50,"value":1767}," untouched.",{"type":44,"tag":284,"props":1769,"children":1771},{"id":1770},"confirm-1",[1772],{"type":50,"value":1527},{"type":44,"tag":60,"props":1774,"children":1775},{},[1776,1778,1783,1785,1790],{"type":50,"value":1777},"Print a summary: profile path, active pointer (or \"unchanged\" if\nactivation was declined), Tegra family (T234 \u002F T264), whether\n",{"type":44,"tag":79,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":50,"value":141},{"type":50,"value":1784}," was recorded, and a reminder that downstream skills\nwill resolve to whichever profile is active. If the user authored\nmultiple profiles without activating, point them at ",{"type":44,"tag":79,"props":1786,"children":1788},{"className":1787},[],[1789],{"type":50,"value":229},{"type":50,"value":1791},"\nto pick one.",{"type":44,"tag":60,"props":1793,"children":1794},{},[1795,1800],{"type":44,"tag":66,"props":1796,"children":1797},{},[1798],{"type":50,"value":1799},"Next steps",{"type":50,"value":1801}," (Setup → Customize chain):",{"type":44,"tag":529,"props":1803,"children":1804},{},[1805,1822,1849],{"type":44,"tag":242,"props":1806,"children":1807},{},[1808,1814,1816,1821],{"type":44,"tag":79,"props":1809,"children":1811},{"className":1810},[],[1812],{"type":50,"value":1813},"\u002Fjetson-init-image",{"type":50,"value":1815}," — extract the BSP and append ",{"type":44,"tag":79,"props":1817,"children":1819},{"className":1818},[],[1820],{"type":50,"value":151},{"type":50,"value":202},{"type":44,"tag":242,"props":1823,"children":1824},{},[1825,1831,1833,1839,1841,1847],{"type":44,"tag":79,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":50,"value":1830},"\u002Fjetson-init-source",{"type":50,"value":1832}," — clone the shared repos (and optionally\noverride ",{"type":44,"tag":79,"props":1834,"children":1836},{"className":1835},[],[1837],{"type":50,"value":1838},"\u003Cworkspace>\u002FSource",{"type":50,"value":1840}," if the user wants ",{"type":44,"tag":79,"props":1842,"children":1844},{"className":1843},[],[1845],{"type":50,"value":1846},"source.root_path",{"type":50,"value":1848},"\nwritten into the profile).",{"type":44,"tag":242,"props":1850,"children":1851},{},[1852,1858,1860,1866,1868,1873],{"type":44,"tag":79,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":50,"value":1857},"\u002Fjetson-link-docs",{"type":50,"value":1859}," ",{"type":44,"tag":1861,"props":1862,"children":1863},"em",{},[1864],{"type":50,"value":1865},"(optional)",{"type":50,"value":1867}," — register paths to\npre-downloaded BSP \u002F schematic \u002F pinmux documents in the profile's\n",{"type":44,"tag":79,"props":1869,"children":1871},{"className":1870},[],[1872],{"type":50,"value":189},{"type":50,"value":1874}," block.",{"type":44,"tag":60,"props":1876,"children":1877},{},[1878,1880,1886],{"type":50,"value":1879},"Then, before any ",{"type":44,"tag":79,"props":1881,"children":1883},{"className":1882},[],[1884],{"type":50,"value":1885},"customize-*",{"type":50,"value":1887}," skill (Customize):",{"type":44,"tag":529,"props":1889,"children":1891},{"start":1890},4,[1892,1903],{"type":44,"tag":242,"props":1893,"children":1894},{},[1895,1901],{"type":44,"tag":79,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":50,"value":1900},"\u002Fjetson-generate-kb",{"type":50,"value":1902}," — KB that customize-* skills consult for\ntarget-specific file locations.",{"type":44,"tag":242,"props":1904,"children":1905},{},[1906,1912,1913,1918],{"type":44,"tag":79,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":50,"value":1911},"\u002Fjetson-derive-carrier",{"type":50,"value":1859},{"type":44,"tag":1861,"props":1914,"children":1915},{},[1916],{"type":50,"value":1917},"(custom carriers only)",{"type":50,"value":1919}," — materialize the\ncustom carrier's flash conf + supporting DTSIs from the reference\ndevkit. Required before per-knob customize-* on a custom carrier.",{"type":44,"tag":60,"props":1921,"children":1922},{},[1923],{"type":50,"value":1924},"If a downstream skill triggered this run, tell the user to re-issue\ntheir original request; do not silently re-trigger it.",{"type":44,"tag":53,"props":1926,"children":1928},{"id":1927},"prerequisites",[1929],{"type":50,"value":1930},"Prerequisites",{"type":44,"tag":238,"props":1932,"children":1933},{},[1934,1951,1970],{"type":44,"tag":242,"props":1935,"children":1936},{},[1937,1942,1943,1949],{"type":44,"tag":79,"props":1938,"children":1940},{"className":1939},[],[1941],{"type":50,"value":481},{"type":50,"value":135},{"type":44,"tag":79,"props":1944,"children":1946},{"className":1945},[],[1947],{"type":50,"value":1948},"platform_template.yaml",{"type":50,"value":1950}," reachable\nvia the relative paths in the References section.",{"type":44,"tag":242,"props":1952,"children":1953},{},[1954,1956,1961,1963,1968],{"type":50,"value":1955},"Write access to ",{"type":44,"tag":79,"props":1957,"children":1959},{"className":1958},[],[1960],{"type":50,"value":262},{"type":50,"value":1962}," (and ",{"type":44,"tag":79,"props":1964,"children":1966},{"className":1965},[],[1967],{"type":50,"value":559},{"type":50,"value":1969},"\nif activation is requested).",{"type":44,"tag":242,"props":1971,"children":1972},{},[1973,1975,1980],{"type":50,"value":1974},"For \"what module\u002Fcarrier is this?\" lookups: ",{"type":44,"tag":79,"props":1976,"children":1978},{"className":1977},[],[1979],{"type":50,"value":1483},{"type":50,"value":1981},"\non the booted device.",{"type":44,"tag":53,"props":1983,"children":1985},{"id":1984},"limitations",[1986],{"type":50,"value":1987},"Limitations",{"type":44,"tag":238,"props":1989,"children":1990},{},[1991,2035],{"type":44,"tag":242,"props":1992,"children":1993},{},[1994,1996,2001,2002,2007,2009,2014,2016,2021,2022,2027,2029,2034],{"type":50,"value":1995},"Owns only ",{"type":44,"tag":79,"props":1997,"children":1999},{"className":1998},[],[2000],{"type":50,"value":133},{"type":50,"value":842},{"type":44,"tag":79,"props":2003,"children":2005},{"className":2004},[],[2006],{"type":50,"value":141},{"type":50,"value":2008},", and the\n",{"type":44,"tag":79,"props":2010,"children":2012},{"className":2011},[],[2013],{"type":50,"value":221},{"type":50,"value":2015}," pointer; refuses to write ",{"type":44,"tag":79,"props":2017,"children":2019},{"className":2018},[],[2020],{"type":50,"value":151},{"type":50,"value":1281},{"type":44,"tag":79,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":50,"value":171},{"type":50,"value":2028},", or ",{"type":44,"tag":79,"props":2030,"children":2032},{"className":2031},[],[2033],{"type":50,"value":189},{"type":50,"value":202},{"type":44,"tag":242,"props":2036,"children":2037},{},[2038,2040,2045],{"type":50,"value":2039},"Will not invent SKUs, module IDs, custom carrier metadata, or flash\nconfigs — records ",{"type":44,"tag":79,"props":2041,"children":2043},{"className":2042},[],[2044],{"type":50,"value":418},{"type":50,"value":2046}," or aborts when the user does not know a\nrequired value.",{"type":44,"tag":53,"props":2048,"children":2050},{"id":2049},"troubleshooting",[2051],{"type":50,"value":2052},"Troubleshooting",{"type":44,"tag":238,"props":2054,"children":2055},{},[2056,2073,2090,2119],{"type":44,"tag":242,"props":2057,"children":2058},{},[2059,2064,2066,2071],{"type":44,"tag":66,"props":2060,"children":2061},{},[2062],{"type":50,"value":2063},"User asks to switch instead of author",{"type":50,"value":2065}," — refuse and route to\n",{"type":44,"tag":79,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":50,"value":229},{"type":50,"value":2072},"; do not re-author an existing profile.",{"type":44,"tag":242,"props":2074,"children":2075},{},[2076,2081,2083,2088],{"type":44,"tag":66,"props":2077,"children":2078},{},[2079],{"type":50,"value":2080},"Catalogue row not found for the product the user named",{"type":50,"value":2082}," —\nadd the row to ",{"type":44,"tag":79,"props":2084,"children":2086},{"className":2085},[],[2087],{"type":50,"value":481},{"type":50,"value":2089}," first; do not patch the\nproduct list inside this skill.",{"type":44,"tag":242,"props":2091,"children":2092},{},[2093,2103,2105,2110,2112,2117],{"type":44,"tag":66,"props":2094,"children":2095},{},[2096,2098],{"type":50,"value":2097},"Required field stuck at ",{"type":44,"tag":79,"props":2099,"children":2101},{"className":2100},[],[2102],{"type":50,"value":418},{"type":50,"value":2104}," — downstream ",{"type":44,"tag":79,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":50,"value":1885},{"type":50,"value":2111}," skills\nmay refuse; capture the missing value (read\n",{"type":44,"tag":79,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":50,"value":1483},{"type":50,"value":2118},") and rerun.",{"type":44,"tag":242,"props":2120,"children":2121},{},[2122,2132,2134,2140],{"type":44,"tag":66,"props":2123,"children":2124},{},[2125,2130],{"type":44,"tag":79,"props":2126,"children":2128},{"className":2127},[],[2129],{"type":50,"value":221},{"type":50,"value":2131}," lost its comment block after activation",{"type":50,"value":2133}," — a\nnon-round-tripping YAML writer was used; switch to ",{"type":44,"tag":79,"props":2135,"children":2137},{"className":2136},[],[2138],{"type":50,"value":2139},"ruamel.yaml",{"type":50,"value":2141}," and\nrestore from the template.",{"type":44,"tag":60,"props":2143,"children":2144},{},[2145,2147,2156],{"type":50,"value":2146},"See ",{"type":44,"tag":74,"props":2148,"children":2150},{"href":2149},"references\u002Fgotchas.md",[2151],{"type":44,"tag":79,"props":2152,"children":2154},{"className":2153},[],[2155],{"type":50,"value":2149},{"type":50,"value":2157}," for the full\npitfalls list (catalogue\u002Ftemplate separation, NA handling, conf\ncollision rules, etc.).",{"type":44,"tag":53,"props":2159,"children":2161},{"id":2160},"references",[2162],{"type":50,"value":2163},"References",{"type":44,"tag":238,"props":2165,"children":2166},{},[2167,2180,2193,2206,2219,2233,2252,2271],{"type":44,"tag":242,"props":2168,"children":2169},{},[2170,2178],{"type":44,"tag":74,"props":2171,"children":2172},{"href":88},[2173],{"type":44,"tag":79,"props":2174,"children":2176},{"className":2175},[],[2177],{"type":50,"value":88},{"type":50,"value":2179}," — product \u002F flash conf catalogue (the source of truth for the \"Pick the reference product\" and \"Pick the flash config\" steps).",{"type":44,"tag":242,"props":2181,"children":2182},{},[2183,2191],{"type":44,"tag":74,"props":2184,"children":2185},{"href":76},[2186],{"type":44,"tag":79,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":50,"value":76},{"type":50,"value":2192}," — the contract this skill writes to.",{"type":44,"tag":242,"props":2194,"children":2195},{},[2196,2204],{"type":44,"tag":74,"props":2197,"children":2198},{"href":99},[2199],{"type":44,"tag":79,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":50,"value":99},{"type":50,"value":2205}," — schema starter for a target profile (the source of truth for the \"Optional: add custom carrier details\" step).",{"type":44,"tag":242,"props":2207,"children":2208},{},[2209,2217],{"type":44,"tag":74,"props":2210,"children":2211},{"href":545},[2212],{"type":44,"tag":79,"props":2213,"children":2215},{"className":2214},[],[2216],{"type":50,"value":545},{"type":50,"value":2218}," — schema starter for the active-target pointer.",{"type":44,"tag":242,"props":2220,"children":2221},{},[2222,2231],{"type":44,"tag":74,"props":2223,"children":2225},{"href":2224},"..\u002Fjetson-set-target\u002FSKILL.md",[2226],{"type":44,"tag":79,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":50,"value":2224},{"type":50,"value":2232}," — sibling skill: switch the active pointer among already-authored profiles.",{"type":44,"tag":242,"props":2234,"children":2235},{},[2236,2244,2246,2251],{"type":44,"tag":74,"props":2237,"children":2238},{"href":156},[2239],{"type":44,"tag":79,"props":2240,"children":2242},{"className":2241},[],[2243],{"type":50,"value":156},{"type":50,"value":2245}," — sibling skill: extract BSP image and author the ",{"type":44,"tag":79,"props":2247,"children":2249},{"className":2248},[],[2250],{"type":50,"value":151},{"type":50,"value":1874},{"type":44,"tag":242,"props":2253,"children":2254},{},[2255,2263,2265,2270],{"type":44,"tag":74,"props":2256,"children":2257},{"href":175},[2258],{"type":44,"tag":79,"props":2259,"children":2261},{"className":2260},[],[2262],{"type":50,"value":175},{"type":50,"value":2264}," — sibling skill: clone shared repos and (optionally) author the ",{"type":44,"tag":79,"props":2266,"children":2268},{"className":2267},[],[2269],{"type":50,"value":171},{"type":50,"value":1874},{"type":44,"tag":242,"props":2272,"children":2273},{},[2274,2282,2284,2289],{"type":44,"tag":74,"props":2275,"children":2276},{"href":193},[2277],{"type":44,"tag":79,"props":2278,"children":2280},{"className":2279},[],[2281],{"type":50,"value":193},{"type":50,"value":2283}," — sibling skill: author the ",{"type":44,"tag":79,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":50,"value":189},{"type":50,"value":2290}," block by registering pre-downloaded files.",{"items":2292,"total":2396},[2293,2310,2324,2338,2350,2367,2382],{"slug":2294,"name":2294,"fn":2295,"description":2296,"org":2297,"tags":2298,"stars":20,"repoUrl":21,"updatedAt":2309},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2299,2302,2305,2306],{"name":2300,"slug":2301,"type":15},"Data Analysis","data-analysis",{"name":2303,"slug":2304,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":2307,"slug":2308,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":2311,"name":2311,"fn":2312,"description":2313,"org":2314,"tags":2315,"stars":20,"repoUrl":21,"updatedAt":2323},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2316,2319,2322],{"name":2317,"slug":2318,"type":15},"Deployment","deployment",{"name":2320,"slug":2321,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":2325,"name":2325,"fn":2326,"description":2327,"org":2328,"tags":2329,"stars":20,"repoUrl":21,"updatedAt":2337},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2330,2333,2334],{"name":2331,"slug":2332,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":2335,"slug":2336,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":2339,"name":2339,"fn":2340,"description":2341,"org":2342,"tags":2343,"stars":20,"repoUrl":21,"updatedAt":2349},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2344,2345,2346],{"name":2300,"slug":2301,"type":15},{"name":9,"slug":8,"type":15},{"name":2347,"slug":2348,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":2351,"name":2351,"fn":2352,"description":2353,"org":2354,"tags":2355,"stars":20,"repoUrl":21,"updatedAt":2366},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2356,2359,2362,2363],{"name":2357,"slug":2358,"type":15},"Automation","automation",{"name":2360,"slug":2361,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":2364,"slug":2365,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":2368,"name":2368,"fn":2369,"description":2370,"org":2371,"tags":2372,"stars":20,"repoUrl":21,"updatedAt":2381},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2373,2374,2377,2378],{"name":2317,"slug":2318,"type":15},{"name":2375,"slug":2376,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":2379,"slug":2380,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":2383,"name":2383,"fn":2384,"description":2385,"org":2386,"tags":2387,"stars":20,"repoUrl":21,"updatedAt":2395},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2388,2389,2392],{"name":9,"slug":8,"type":15},{"name":2390,"slug":2391,"type":15},"Quantum Computing","quantum-computing",{"name":2393,"slug":2394,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":2398,"total":2549},[2399,2417,2433,2444,2456,2470,2483,2497,2508,2517,2531,2540],{"slug":2400,"name":2400,"fn":2401,"description":2402,"org":2403,"tags":2404,"stars":2414,"repoUrl":2415,"updatedAt":2416},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2405,2408,2411],{"name":2406,"slug":2407,"type":15},"Documentation","documentation",{"name":2409,"slug":2410,"type":15},"MCP","mcp",{"name":2412,"slug":2413,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2418,"name":2418,"fn":2419,"description":2420,"org":2421,"tags":2422,"stars":2430,"repoUrl":2431,"updatedAt":2432},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2423,2426,2427],{"name":2424,"slug":2425,"type":15},"Containers","containers",{"name":2317,"slug":2318,"type":15},{"name":2428,"slug":2429,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2434,"name":2434,"fn":2435,"description":2436,"org":2437,"tags":2438,"stars":2430,"repoUrl":2431,"updatedAt":2443},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2439,2442],{"name":2440,"slug":2441,"type":15},"CI\u002FCD","ci-cd",{"name":2317,"slug":2318,"type":15},"2026-07-14T05:25:59.97109",{"slug":2445,"name":2445,"fn":2446,"description":2447,"org":2448,"tags":2449,"stars":2430,"repoUrl":2431,"updatedAt":2455},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2450,2451,2452],{"name":2440,"slug":2441,"type":15},{"name":2317,"slug":2318,"type":15},{"name":2453,"slug":2454,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2457,"name":2457,"fn":2458,"description":2459,"org":2460,"tags":2461,"stars":2430,"repoUrl":2431,"updatedAt":2469},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2462,2465,2466],{"name":2463,"slug":2464,"type":15},"Debugging","debugging",{"name":2453,"slug":2454,"type":15},{"name":2467,"slug":2468,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2471,"name":2471,"fn":2472,"description":2473,"org":2474,"tags":2475,"stars":2430,"repoUrl":2431,"updatedAt":2482},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2476,2479],{"name":2477,"slug":2478,"type":15},"Best Practices","best-practices",{"name":2480,"slug":2481,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2484,"name":2484,"fn":2485,"description":2486,"org":2487,"tags":2488,"stars":2430,"repoUrl":2431,"updatedAt":2496},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2489,2492,2495],{"name":2490,"slug":2491,"type":15},"Machine Learning","machine-learning",{"name":2493,"slug":2494,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2498,"name":2498,"fn":2499,"description":2500,"org":2501,"tags":2502,"stars":2430,"repoUrl":2431,"updatedAt":2507},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2503,2506],{"name":2504,"slug":2505,"type":15},"QA","qa",{"name":2347,"slug":2348,"type":15},"2026-07-14T05:25:53.673039",{"slug":2509,"name":2509,"fn":2510,"description":2511,"org":2512,"tags":2513,"stars":2430,"repoUrl":2431,"updatedAt":2516},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2514,2515],{"name":2317,"slug":2318,"type":15},{"name":2320,"slug":2321,"type":15},"2026-07-14T05:25:49.362534",{"slug":2518,"name":2518,"fn":2519,"description":2520,"org":2521,"tags":2522,"stars":2430,"repoUrl":2431,"updatedAt":2530},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2523,2526,2527],{"name":2524,"slug":2525,"type":15},"Code Review","code-review",{"name":2453,"slug":2454,"type":15},{"name":2528,"slug":2529,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2532,"name":2532,"fn":2533,"description":2534,"org":2535,"tags":2536,"stars":2430,"repoUrl":2431,"updatedAt":2539},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2537,2538],{"name":2504,"slug":2505,"type":15},{"name":2347,"slug":2348,"type":15},"2026-07-14T05:25:54.928983",{"slug":2541,"name":2541,"fn":2542,"description":2543,"org":2544,"tags":2545,"stars":2430,"repoUrl":2431,"updatedAt":2548},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2546,2547],{"name":2357,"slug":2358,"type":15},{"name":2440,"slug":2441,"type":15},"2026-07-30T05:29:03.275638",496]