[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-doca-upgrade":3,"mdc--hckxbs-key":31,"related-org-nvidia-doca-upgrade":1182,"related-repo-nvidia-doca-upgrade":1341},{"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},"doca-upgrade","manage NVIDIA DOCA software upgrades","Use this skill when the user is contemplating a DOCA upgrade or downgrade — moving a host to a newer DOCA release, refreshing the BlueField BFB, bumping the NGC DOCA container tag, or rolling back. The discipline is detect → report → ASK → only-then guided upgrade: detect what is installed, discover what newer release exists, report the gap, then STOP and ask for explicit confirmation — never upgrade automatically. Trigger even without the word \"upgrade\": \"is there a newer DOCA\", \"should I move to the next release\", \"I want the latest features\", \"my component is being deprecated, what now\", or \"roll me back\". Route elsewhere for version detection (doca-version), first-time install (doca-setup), any hardware\u002Ffirmware\u002Freboot step (doca-hardware-safety), and public-docs \u002F sunset routing (doca-public-knowledge-map).\n",{"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},"Operations","operations","tag",{"name":17,"slug":18,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-30T05:28:39.411051","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\u002Fdoca-upgrade","---\nlicense: Apache-2.0\nname: doca-upgrade\ndescription: >\n  Use this skill when the user is contemplating a DOCA upgrade or\n  downgrade — moving a host to a newer DOCA release, refreshing the\n  BlueField BFB, bumping the NGC DOCA container tag, or rolling back.\n  The discipline is detect → report → ASK → only-then guided upgrade:\n  detect what is installed, discover what newer release exists, report\n  the gap, then STOP and ask for explicit confirmation — never upgrade\n  automatically. Trigger even without the word \"upgrade\": \"is there a\n  newer DOCA\", \"should I move to the next release\", \"I want the latest\n  features\", \"my component is being deprecated, what now\", or \"roll me\n  back\". Route elsewhere for version detection (doca-version),\n  first-time install (doca-setup), any hardware\u002Ffirmware\u002Freboot step\n  (doca-hardware-safety), and public-docs \u002F sunset routing\n  (doca-public-knowledge-map).\nmetadata:\n  kind: library\ncompatibility: >\n  No DOCA install required to read this skill (it is a cross-cutting\n  overlay loaded against any DOCA artifact skill); the detection,\n  gap-report, and guided-upgrade steps within DO require a live DOCA\n  install at \u002Fopt\u002Fmellanox\u002Fdoca, and the hardware \u002F firmware \u002F reboot\n  steps require a BlueField DPU or ConnectX NIC plus out-of-band\n  console reachability as gated by doca-hardware-safety.\n---\n\n# DOCA upgrade\n\n**Where to start:** This skill is the bundle's single source of\ntruth for the discipline that wraps a DOCA *upgrade or downgrade*.\nOpen [`TASKS.md`](TASKS.md) when the user wants to *do* something\nwith an upgrade (detect the gap, ask for confirmation, walk the\nguided upgrade, verify it, or diagnose a failed one); open\n[`CAPABILITIES.md`](CAPABILITIES.md) when the question is *what does\nan upgrade even cover* (the host apt-upgrade vs BFB reflash vs\ncontainer-tag bump vs downgrade\u002Frollback modes, the never-auto rule,\nthe confirmation gate, the sunset-awareness concern, the error\ntaxonomy, and the upgrade-specific safety overlay).\n\n**For a planned move, the single most important rule this skill\nexists to enforce is detect → report → ASK → only-then guided\nupgrade. Never upgrade automatically.** The skill detects the\ninstalled DOCA env and what newer release is available, reports the\ngap clearly, then STOPS and asks the user for explicit confirmation.\nOnly on an explicit \"yes\" does it walk a guided upgrade. A failed or\npartial move instead enters the recovery ladder without presenting a\nnew target move. In both paths every hardware \u002F firmware \u002F reboot\nstep is delegated to\n[`doca-hardware-safety`](..\u002Fdoca-hardware-safety\u002FSKILL.md), never\nredefined here. Version detection itself is owned by\n[`doca-version`](..\u002Fdoca-version\u002FSKILL.md); this skill routes there\nand does not restate the detection chain.\n\n## Example questions this skill answers well\n\nThe CLASSES of upgrade questions this skill is built to answer, each\nwith one worked example. The agent should treat the *class* as the\nload-bearing piece — the worked example is a single instance.\n\n- **\"Is there a newer DOCA than what I have, and how far behind am\n  I?\"** — worked example: *\"`pkg-config --modversion doca-common`\n  says 3.1.0; what's current and what does moving cost me?\"*.\n  Answered by the detect-and-report-the-gap workflow in\n  [`TASKS.md ## configure`](TASKS.md#configure), which routes the\n  detection to [`doca-version`](..\u002Fdoca-version\u002FSKILL.md) and the\n  *what is current* lookup to\n  [`doca-public-knowledge-map`](..\u002Fdoca-public-knowledge-map\u002FSKILL.md).\n- **\"Should I just run `apt upgrade` to move to the next DOCA\n  release?\"** — worked example: *\"I want the newest Flow features;\n  can I upgrade in place right now?\"*. Answered by the never-auto\n  rule and the confirmation gate in\n  [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)\n  plus the ask-before-acting step in\n  [`TASKS.md ## run`](TASKS.md#run) — the agent reports the gap and\n  STOPS for explicit confirmation before any upgrade command runs.\n- **\"My upgrade left the host on a different release than the\n  BlueField — what happened?\"** — worked example: *\"after the\n  upgrade `pkg-config` says 3.3.0 but `bfver` still says 3.1.0\"*.\n  Answered by the host\u002FBFB-skew row in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  and the failed-upgrade diagnosis in\n  [`TASKS.md ## debug`](TASKS.md#debug), which re-routes the\n  detection to [`doca-version ## test`](..\u002Fdoca-version\u002FTASKS.md#test).\n- **\"The upgrade aborted half-way and now `dpkg` is wedged — how do\n  I recover?\"** — worked example: *\"`apt upgrade` was interrupted;\n  `dpkg` reports an interrupted transaction\"*. Answered by the\n  partial-upgrade and aborted-transaction rows in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  plus the recovery ladder in [`TASKS.md ## debug`](TASKS.md#debug).\n- **\"The upgrade needs me to reflash the BFB \u002F flip BlueField mode \u002F\n  reboot — is that safe?\"** — worked example: *\"the target release\n  requires a new BFB; can I reflash now?\"*. Answered by routing\n  every hardware \u002F firmware \u002F reboot step to\n  [`doca-hardware-safety`](..\u002Fdoca-hardware-safety\u002FSKILL.md) via\n  [`TASKS.md ## run`](TASKS.md#run); this skill never redefines the\n  reflash, mode-flip, or cold-power-cycle discipline.\n- **\"My installed component is being sunset — should I keep building\n  on it or move?\"** — worked example: *\"I rely on DOCA App Shield \u002F\n  the DOCA Flow Inspector service; are they on a\n  deprecation track?\"*. Answered by the sunset \u002F deprecation\n  awareness concern in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes),\n  which routes the user to the public release notes via\n  [`doca-public-knowledge-map`](..\u002Fdoca-public-knowledge-map\u002FSKILL.md)\n  to confirm lifecycle status rather than recommending continued\n  investment in a component that may be sunsetting.\n\n## When to load this skill\n\nLoad this skill whenever an upgrade or downgrade of DOCA is the\nload-bearing concern — the user is asking whether a newer release\nexists, whether to move to it, how to move safely, or how to recover\na move that went wrong. The decision must be made **before** the\nagent composes its first sentence; the activation checklist below is\nmirrored here so the activation rule is at hand whenever this skill\nis consulted. For a planned upgrade or downgrade, it reports the gap\nand then STOPS for explicit user confirmation. For a failed or partial\nupgrade, it enters [`TASKS.md ## debug`](TASKS.md#debug) first to\ncapture and stabilize the current state; it never uses another\nupgrade command as the first recovery action, retries the move, or\nissues a new upgrade command without explicit confirmation.\n\n## Agent activation checklist — load this skill at the START of the answer when any cell below is true\n\n| Trigger class | Concrete prompt-side signals (any one fires the overlay) |\n| --- | --- |\n| Upgrade \u002F downgrade intent | *\"is there a newer DOCA\"*, *\"should I move to the next release\"*, *\"upgrade me to the latest\"*, *\"roll me back to the previous DOCA\"*, *\"downgrade to 3.1 for a bug repro\"* |\n| Accidental \u002F drifted upgrade | *\"`apt upgrade` pulled a newer DOCA point release and broke my build\"*, *\"my host and BlueField are on different releases now\"*, *\"the source channel is `latest` and I didn't mean to move\" * |\n| Failed \u002F partial upgrade | *\"the upgrade aborted half-way\"*, *\"`dpkg` is wedged after an interrupted transaction\"*, *\"upgrade finished but the four-way match no longer holds\"* |\n| Container tag bump | the user wants to move an NGC DOCA container deployment from one tag to a newer one, or asks whether bumping the tag is an upgrade |\n| Sunset \u002F deprecation awareness | the user asks whether the component they depend on is deprecated, being sunset, or worth continued investment |\n\nFirst classify the request. A **planned move** (including a requested\nrollback) follows detect → report → ASK. A **failed, partial, or\naccidentally drifted move** is already a diagnosis\u002Frecovery request:\nload this skill, capture the current four-source state, and enter\n`TASKS.md ## debug`; do not ask for permission to perform an upgrade\nthat has already failed, and do not issue another upgrade command as\nthe first recovery action.\n\nFor a planned move, the agent MUST:\n\n1. Route planned-upgrade version detection to\n   [`doca-version ## configure`](..\u002Fdoca-version\u002FTASKS.md#configure).\n   For failed or partial upgrades, start with\n   [`doca-version ## debug`](..\u002Fdoca-version\u002FTASKS.md#debug) and\n   [`TASKS.md ## debug`](TASKS.md#debug). Do NOT restate the\n   four-source detection chain here; this skill consumes the detected\n   state and four-way match status.\n2. **Report the gap and STOP for explicit confirmation.** Present\n   the installed release, the available target release, and what\n   moving costs (per\n   [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility)),\n   then ask the user to confirm. Do NOT proceed to any upgrade\n   command until the user explicitly says yes.\n3. Route every hardware \u002F firmware \u002F reboot step to\n   [`doca-hardware-safety`](..\u002Fdoca-hardware-safety\u002FSKILL.md). This\n   skill names *when* such a step is part of the upgrade; that skill\n   names *how* it is applied safely.\n\nFor a failed\u002Fpartial move, the agent MUST instead classify the\ncaptured state against\n[`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy),\ndelegate the single documented corrective action, and re-enter the\nrecovery ladder. Any unsupported `installed → target` jump fails\nclosed: do not improvise intermediate releases or commands; require\nan upgrade path explicitly documented by the Compatibility Policy or\nrelease notes.\n\nDo **not** load this skill for first-time install (use\n[`doca-setup`](..\u002Fdoca-setup\u002FSKILL.md)), for the version-detection\nchain in isolation (use [`doca-version`](..\u002Fdoca-version\u002FSKILL.md)),\nor for general orientation (use\n[`doca-public-knowledge-map`](..\u002Fdoca-public-knowledge-map\u002FSKILL.md)).\n\n## What this skill provides\n\nThis is a **thin loader**. The body keeps only the orientation\nneeded to pick the right next file. The substantive upgrade material\nlives in two companion files:\n\n- `CAPABILITIES.md` — the upgrade surface: the upgrade-mode taxonomy\n  (host apt upgrade vs BFB reflash vs container-tag bump vs\n  downgrade\u002Frollback), the never-auto rule and the confirmation\n  gate, the sunset \u002F deprecation-awareness concern, the\n  version-compatibility overlay that redirects to `doca-version`,\n  the error taxonomy (partial upgrade, apt-source drift, host\u002FBFB\n  skew, aborted transaction \u002F `dpkg` interrupted), the observability\n  surface (which commands prove the upgrade did or did not happen),\n  and the upgrade-specific safety overlay on top of\n  `doca-hardware-safety`.\n- `TASKS.md` — step-by-step workflows for the in-scope verbs:\n  `configure` (detect + discover target + apt-source precheck),\n  `build` and `modify` (routing stubs — the version-pin change is\n  owned elsewhere), `run` (the confirmation-gated guided upgrade),\n  `test` (post-upgrade four-way verification), `debug` (diagnose a\n  failed \u002F partial upgrade), plus a `Deferred task verbs` block.\n\n## Loading order\n\n1. Read this `SKILL.md` first to confirm the user's question is in\n   scope (an upgrade \u002F downgrade is being contemplated or recovered).\n2. **For the upgrade-mode taxonomy, the never-auto rule, the\n   sunset-awareness concern, the error taxonomy, observability, and\n   the safety overlay, see [CAPABILITIES.md](CAPABILITIES.md).**\n3. **For step-by-step workflows — detect-and-report, the\n   confirmation-gated guided upgrade, post-upgrade verification, and\n   failed-upgrade diagnosis — see [TASKS.md](TASKS.md).**\n\n## Related skills\n\n- [`doca-version`](..\u002Fdoca-version\u002FSKILL.md) — owns the four-source\n  detection chain and the four-way match rule. This skill's detect\n  step routes there and does not redefine version detection; the\n  gap report consumes the detected version.\n- [`doca-setup`](..\u002Fdoca-setup\u002FSKILL.md) — owns first-time install,\n  install verification, and the apt-source path. This skill's\n  apt-source consistency precheck cross-links there before any\n  `apt`-shaped upgrade is contemplated.\n- [`doca-hardware-safety`](..\u002Fdoca-hardware-safety\u002FSKILL.md) — owns\n  every hardware \u002F firmware \u002F reboot step (mlxconfig, BFB reflash,\n  BlueField mode flip, cold power cycle). This skill's `## Safety\n  policy` overlays that meta-policy and adds only the\n  upgrade-specific surface (confirmation gate, rollback-first,\n  maintenance window).\n- [`doca-public-knowledge-map`](..\u002Fdoca-public-knowledge-map\u002FSKILL.md) —\n  the routing table to public DOCA docs, including the release notes\n  and the Compatibility Policy. This skill routes *what is the\n  current release* and *is this component sunsetting* there; it does\n  not duplicate the routing.\n- [`doca-debug`](..\u002Fdoca-debug\u002FSKILL.md) — the cross-cutting debug\n  ladder. A failed upgrade whose residual symptom lives at a\n  software layer hands off there once the upgrade state is known.\n- [`doca-programming-guide`](..\u002Fdoca-programming-guide\u002FSKILL.md) —\n  the build pattern a consumer rebuilds against after an upgrade.\n  This skill surfaces *that* a rebuild may be needed; the build\n  mechanics live there.\n- [`doca-structured-tools-contract`](..\u002Fdoca-structured-tools-contract\u002FSKILL.md) —\n  the JSON schemas the agent prefers when present; the upgrade\n  detect step reuses the same `doca-env` one-shot the version skill\n  uses, when the host has it.\n",{"data":32,"body":36},{"license":23,"name":4,"description":6,"metadata":33,"compatibility":35},{"kind":34},"library","No DOCA install required to read this skill (it is a cross-cutting overlay loaded against any DOCA artifact skill); the detection, gap-report, and guided-upgrade steps within DO require a live DOCA install at \u002Fopt\u002Fmellanox\u002Fdoca, and the hardware \u002F firmware \u002F reboot steps require a BlueField DPU or ConnectX NIC plus out-of-band console reachability as gated by doca-hardware-safety.\n",{"type":37,"children":38},"root",[39,47,105,139,146,158,474,480,502,508,675,701,706,800,823,867,873,885,984,990,1032,1038],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","DOCA upgrade",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51,57,59,65,67,78,80,85,87,96,98,103],{"type":40,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":45,"value":56},"Where to start:",{"type":45,"value":58}," This skill is the bundle's single source of\ntruth for the discipline that wraps a DOCA ",{"type":40,"tag":60,"props":61,"children":62},"em",{},[63],{"type":45,"value":64},"upgrade or downgrade",{"type":45,"value":66},".\nOpen ",{"type":40,"tag":68,"props":69,"children":71},"a",{"href":70},"TASKS.md",[72],{"type":40,"tag":73,"props":74,"children":76},"code",{"className":75},[],[77],{"type":45,"value":70},{"type":45,"value":79}," when the user wants to ",{"type":40,"tag":60,"props":81,"children":82},{},[83],{"type":45,"value":84},"do",{"type":45,"value":86}," something\nwith an upgrade (detect the gap, ask for confirmation, walk the\nguided upgrade, verify it, or diagnose a failed one); open\n",{"type":40,"tag":68,"props":88,"children":90},{"href":89},"CAPABILITIES.md",[91],{"type":40,"tag":73,"props":92,"children":94},{"className":93},[],[95],{"type":45,"value":89},{"type":45,"value":97}," when the question is ",{"type":40,"tag":60,"props":99,"children":100},{},[101],{"type":45,"value":102},"what does\nan upgrade even cover",{"type":45,"value":104}," (the host apt-upgrade vs BFB reflash vs\ncontainer-tag bump vs downgrade\u002Frollback modes, the never-auto rule,\nthe confirmation gate, the sunset-awareness concern, the error\ntaxonomy, and the upgrade-specific safety overlay).",{"type":40,"tag":48,"props":106,"children":107},{},[108,113,115,125,127,137],{"type":40,"tag":52,"props":109,"children":110},{},[111],{"type":45,"value":112},"For a planned move, the single most important rule this skill\nexists to enforce is detect → report → ASK → only-then guided\nupgrade. Never upgrade automatically.",{"type":45,"value":114}," The skill detects the\ninstalled DOCA env and what newer release is available, reports the\ngap clearly, then STOPS and asks the user for explicit confirmation.\nOnly on an explicit \"yes\" does it walk a guided upgrade. A failed or\npartial move instead enters the recovery ladder without presenting a\nnew target move. In both paths every hardware \u002F firmware \u002F reboot\nstep is delegated to\n",{"type":40,"tag":68,"props":116,"children":118},{"href":117},"..\u002Fdoca-hardware-safety\u002FSKILL.md",[119],{"type":40,"tag":73,"props":120,"children":122},{"className":121},[],[123],{"type":45,"value":124},"doca-hardware-safety",{"type":45,"value":126},", never\nredefined here. Version detection itself is owned by\n",{"type":40,"tag":68,"props":128,"children":130},{"href":129},"..\u002Fdoca-version\u002FSKILL.md",[131],{"type":40,"tag":73,"props":132,"children":134},{"className":133},[],[135],{"type":45,"value":136},"doca-version",{"type":45,"value":138},"; this skill routes there\nand does not restate the detection chain.",{"type":40,"tag":140,"props":141,"children":143},"h2",{"id":142},"example-questions-this-skill-answers-well",[144],{"type":45,"value":145},"Example questions this skill answers well",{"type":40,"tag":48,"props":147,"children":148},{},[149,151,156],{"type":45,"value":150},"The CLASSES of upgrade questions this skill is built to answer, each\nwith one worked example. The agent should treat the ",{"type":40,"tag":60,"props":152,"children":153},{},[154],{"type":45,"value":155},"class",{"type":45,"value":157}," as the\nload-bearing piece — the worked example is a single instance.",{"type":40,"tag":159,"props":160,"children":161},"ul",{},[162,229,277,344,400,436],{"type":40,"tag":163,"props":164,"children":165},"li",{},[166,171,173,186,188,198,200,208,210,215,217,227],{"type":40,"tag":52,"props":167,"children":168},{},[169],{"type":45,"value":170},"\"Is there a newer DOCA than what I have, and how far behind am\nI?\"",{"type":45,"value":172}," — worked example: ",{"type":40,"tag":60,"props":174,"children":175},{},[176,178,184],{"type":45,"value":177},"\"",{"type":40,"tag":73,"props":179,"children":181},{"className":180},[],[182],{"type":45,"value":183},"pkg-config --modversion doca-common",{"type":45,"value":185},"\nsays 3.1.0; what's current and what does moving cost me?\"",{"type":45,"value":187},".\nAnswered by the detect-and-report-the-gap workflow in\n",{"type":40,"tag":68,"props":189,"children":191},{"href":190},"TASKS.md#configure",[192],{"type":40,"tag":73,"props":193,"children":195},{"className":194},[],[196],{"type":45,"value":197},"TASKS.md ## configure",{"type":45,"value":199},", which routes the\ndetection to ",{"type":40,"tag":68,"props":201,"children":202},{"href":129},[203],{"type":40,"tag":73,"props":204,"children":206},{"className":205},[],[207],{"type":45,"value":136},{"type":45,"value":209}," and the\n",{"type":40,"tag":60,"props":211,"children":212},{},[213],{"type":45,"value":214},"what is current",{"type":45,"value":216}," lookup to\n",{"type":40,"tag":68,"props":218,"children":220},{"href":219},"..\u002Fdoca-public-knowledge-map\u002FSKILL.md",[221],{"type":40,"tag":73,"props":222,"children":224},{"className":223},[],[225],{"type":45,"value":226},"doca-public-knowledge-map",{"type":45,"value":228},".",{"type":40,"tag":163,"props":230,"children":231},{},[232,245,246,251,253,263,265,275],{"type":40,"tag":52,"props":233,"children":234},{},[235,237,243],{"type":45,"value":236},"\"Should I just run ",{"type":40,"tag":73,"props":238,"children":240},{"className":239},[],[241],{"type":45,"value":242},"apt upgrade",{"type":45,"value":244}," to move to the next DOCA\nrelease?\"",{"type":45,"value":172},{"type":40,"tag":60,"props":247,"children":248},{},[249],{"type":45,"value":250},"\"I want the newest Flow features;\ncan I upgrade in place right now?\"",{"type":45,"value":252},". Answered by the never-auto\nrule and the confirmation gate in\n",{"type":40,"tag":68,"props":254,"children":256},{"href":255},"CAPABILITIES.md#safety-policy",[257],{"type":40,"tag":73,"props":258,"children":260},{"className":259},[],[261],{"type":45,"value":262},"CAPABILITIES.md ## Safety policy",{"type":45,"value":264},"\nplus the ask-before-acting step in\n",{"type":40,"tag":68,"props":266,"children":268},{"href":267},"TASKS.md#run",[269],{"type":40,"tag":73,"props":270,"children":272},{"className":271},[],[273],{"type":45,"value":274},"TASKS.md ## run",{"type":45,"value":276}," — the agent reports the gap and\nSTOPS for explicit confirmation before any upgrade command runs.",{"type":40,"tag":163,"props":278,"children":279},{},[280,285,286,307,309,319,321,331,333,343],{"type":40,"tag":52,"props":281,"children":282},{},[283],{"type":45,"value":284},"\"My upgrade left the host on a different release than the\nBlueField — what happened?\"",{"type":45,"value":172},{"type":40,"tag":60,"props":287,"children":288},{},[289,291,297,299,305],{"type":45,"value":290},"\"after the\nupgrade ",{"type":40,"tag":73,"props":292,"children":294},{"className":293},[],[295],{"type":45,"value":296},"pkg-config",{"type":45,"value":298}," says 3.3.0 but ",{"type":40,"tag":73,"props":300,"children":302},{"className":301},[],[303],{"type":45,"value":304},"bfver",{"type":45,"value":306}," still says 3.1.0\"",{"type":45,"value":308},".\nAnswered by the host\u002FBFB-skew row in\n",{"type":40,"tag":68,"props":310,"children":312},{"href":311},"CAPABILITIES.md#error-taxonomy",[313],{"type":40,"tag":73,"props":314,"children":316},{"className":315},[],[317],{"type":45,"value":318},"CAPABILITIES.md ## Error taxonomy",{"type":45,"value":320},"\nand the failed-upgrade diagnosis in\n",{"type":40,"tag":68,"props":322,"children":324},{"href":323},"TASKS.md#debug",[325],{"type":40,"tag":73,"props":326,"children":328},{"className":327},[],[329],{"type":45,"value":330},"TASKS.md ## debug",{"type":45,"value":332},", which re-routes the\ndetection to ",{"type":40,"tag":68,"props":334,"children":336},{"href":335},"..\u002Fdoca-version\u002FTASKS.md#test",[337],{"type":40,"tag":73,"props":338,"children":340},{"className":339},[],[341],{"type":45,"value":342},"doca-version ## test",{"type":45,"value":228},{"type":40,"tag":163,"props":345,"children":346},{},[347,360,361,379,381,389,391,399],{"type":40,"tag":52,"props":348,"children":349},{},[350,352,358],{"type":45,"value":351},"\"The upgrade aborted half-way and now ",{"type":40,"tag":73,"props":353,"children":355},{"className":354},[],[356],{"type":45,"value":357},"dpkg",{"type":45,"value":359}," is wedged — how do\nI recover?\"",{"type":45,"value":172},{"type":40,"tag":60,"props":362,"children":363},{},[364,365,370,372,377],{"type":45,"value":177},{"type":40,"tag":73,"props":366,"children":368},{"className":367},[],[369],{"type":45,"value":242},{"type":45,"value":371}," was interrupted;\n",{"type":40,"tag":73,"props":373,"children":375},{"className":374},[],[376],{"type":45,"value":357},{"type":45,"value":378}," reports an interrupted transaction\"",{"type":45,"value":380},". Answered by the\npartial-upgrade and aborted-transaction rows in\n",{"type":40,"tag":68,"props":382,"children":383},{"href":311},[384],{"type":40,"tag":73,"props":385,"children":387},{"className":386},[],[388],{"type":45,"value":318},{"type":45,"value":390},"\nplus the recovery ladder in ",{"type":40,"tag":68,"props":392,"children":393},{"href":323},[394],{"type":40,"tag":73,"props":395,"children":397},{"className":396},[],[398],{"type":45,"value":330},{"type":45,"value":228},{"type":40,"tag":163,"props":401,"children":402},{},[403,408,409,414,416,424,426,434],{"type":40,"tag":52,"props":404,"children":405},{},[406],{"type":45,"value":407},"\"The upgrade needs me to reflash the BFB \u002F flip BlueField mode \u002F\nreboot — is that safe?\"",{"type":45,"value":172},{"type":40,"tag":60,"props":410,"children":411},{},[412],{"type":45,"value":413},"\"the target release\nrequires a new BFB; can I reflash now?\"",{"type":45,"value":415},". Answered by routing\nevery hardware \u002F firmware \u002F reboot step to\n",{"type":40,"tag":68,"props":417,"children":418},{"href":117},[419],{"type":40,"tag":73,"props":420,"children":422},{"className":421},[],[423],{"type":45,"value":124},{"type":45,"value":425}," via\n",{"type":40,"tag":68,"props":427,"children":428},{"href":267},[429],{"type":40,"tag":73,"props":430,"children":432},{"className":431},[],[433],{"type":45,"value":274},{"type":45,"value":435},"; this skill never redefines the\nreflash, mode-flip, or cold-power-cycle discipline.",{"type":40,"tag":163,"props":437,"children":438},{},[439,444,445,450,452,462,464,472],{"type":40,"tag":52,"props":440,"children":441},{},[442],{"type":45,"value":443},"\"My installed component is being sunset — should I keep building\non it or move?\"",{"type":45,"value":172},{"type":40,"tag":60,"props":446,"children":447},{},[448],{"type":45,"value":449},"\"I rely on DOCA App Shield \u002F\nthe DOCA Flow Inspector service; are they on a\ndeprecation track?\"",{"type":45,"value":451},". Answered by the sunset \u002F deprecation\nawareness concern in\n",{"type":40,"tag":68,"props":453,"children":455},{"href":454},"CAPABILITIES.md#capabilities-and-modes",[456],{"type":40,"tag":73,"props":457,"children":459},{"className":458},[],[460],{"type":45,"value":461},"CAPABILITIES.md ## Capabilities and modes",{"type":45,"value":463},",\nwhich routes the user to the public release notes via\n",{"type":40,"tag":68,"props":465,"children":466},{"href":219},[467],{"type":40,"tag":73,"props":468,"children":470},{"className":469},[],[471],{"type":45,"value":226},{"type":45,"value":473},"\nto confirm lifecycle status rather than recommending continued\ninvestment in a component that may be sunsetting.",{"type":40,"tag":140,"props":475,"children":477},{"id":476},"when-to-load-this-skill",[478],{"type":45,"value":479},"When to load this skill",{"type":40,"tag":48,"props":481,"children":482},{},[483,485,490,492,500],{"type":45,"value":484},"Load this skill whenever an upgrade or downgrade of DOCA is the\nload-bearing concern — the user is asking whether a newer release\nexists, whether to move to it, how to move safely, or how to recover\na move that went wrong. The decision must be made ",{"type":40,"tag":52,"props":486,"children":487},{},[488],{"type":45,"value":489},"before",{"type":45,"value":491}," the\nagent composes its first sentence; the activation checklist below is\nmirrored here so the activation rule is at hand whenever this skill\nis consulted. For a planned upgrade or downgrade, it reports the gap\nand then STOPS for explicit user confirmation. For a failed or partial\nupgrade, it enters ",{"type":40,"tag":68,"props":493,"children":494},{"href":323},[495],{"type":40,"tag":73,"props":496,"children":498},{"className":497},[],[499],{"type":45,"value":330},{"type":45,"value":501}," first to\ncapture and stabilize the current state; it never uses another\nupgrade command as the first recovery action, retries the move, or\nissues a new upgrade command without explicit confirmation.",{"type":40,"tag":140,"props":503,"children":505},{"id":504},"agent-activation-checklist-load-this-skill-at-the-start-of-the-answer-when-any-cell-below-is-true",[506],{"type":45,"value":507},"Agent activation checklist — load this skill at the START of the answer when any cell below is true",{"type":40,"tag":509,"props":510,"children":511},"table",{},[512,531],{"type":40,"tag":513,"props":514,"children":515},"thead",{},[516],{"type":40,"tag":517,"props":518,"children":519},"tr",{},[520,526],{"type":40,"tag":521,"props":522,"children":523},"th",{},[524],{"type":45,"value":525},"Trigger class",{"type":40,"tag":521,"props":527,"children":528},{},[529],{"type":45,"value":530},"Concrete prompt-side signals (any one fires the overlay)",{"type":40,"tag":532,"props":533,"children":534},"tbody",{},[535,577,615,649,662],{"type":40,"tag":517,"props":536,"children":537},{},[538,544],{"type":40,"tag":539,"props":540,"children":541},"td",{},[542],{"type":45,"value":543},"Upgrade \u002F downgrade intent",{"type":40,"tag":539,"props":545,"children":546},{},[547,552,554,559,560,565,566,571,572],{"type":40,"tag":60,"props":548,"children":549},{},[550],{"type":45,"value":551},"\"is there a newer DOCA\"",{"type":45,"value":553},", ",{"type":40,"tag":60,"props":555,"children":556},{},[557],{"type":45,"value":558},"\"should I move to the next release\"",{"type":45,"value":553},{"type":40,"tag":60,"props":561,"children":562},{},[563],{"type":45,"value":564},"\"upgrade me to the latest\"",{"type":45,"value":553},{"type":40,"tag":60,"props":567,"children":568},{},[569],{"type":45,"value":570},"\"roll me back to the previous DOCA\"",{"type":45,"value":553},{"type":40,"tag":60,"props":573,"children":574},{},[575],{"type":45,"value":576},"\"downgrade to 3.1 for a bug repro\"",{"type":40,"tag":517,"props":578,"children":579},{},[580,585],{"type":40,"tag":539,"props":581,"children":582},{},[583],{"type":45,"value":584},"Accidental \u002F drifted upgrade",{"type":40,"tag":539,"props":586,"children":587},{},[588,599,600,605,607,613],{"type":40,"tag":60,"props":589,"children":590},{},[591,592,597],{"type":45,"value":177},{"type":40,"tag":73,"props":593,"children":595},{"className":594},[],[596],{"type":45,"value":242},{"type":45,"value":598}," pulled a newer DOCA point release and broke my build\"",{"type":45,"value":553},{"type":40,"tag":60,"props":601,"children":602},{},[603],{"type":45,"value":604},"\"my host and BlueField are on different releases now\"",{"type":45,"value":606},", *\"the source channel is ",{"type":40,"tag":73,"props":608,"children":610},{"className":609},[],[611],{"type":45,"value":612},"latest",{"type":45,"value":614}," and I didn't mean to move\" *",{"type":40,"tag":517,"props":616,"children":617},{},[618,623],{"type":40,"tag":539,"props":619,"children":620},{},[621],{"type":45,"value":622},"Failed \u002F partial upgrade",{"type":40,"tag":539,"props":624,"children":625},{},[626,631,632,643,644],{"type":40,"tag":60,"props":627,"children":628},{},[629],{"type":45,"value":630},"\"the upgrade aborted half-way\"",{"type":45,"value":553},{"type":40,"tag":60,"props":633,"children":634},{},[635,636,641],{"type":45,"value":177},{"type":40,"tag":73,"props":637,"children":639},{"className":638},[],[640],{"type":45,"value":357},{"type":45,"value":642}," is wedged after an interrupted transaction\"",{"type":45,"value":553},{"type":40,"tag":60,"props":645,"children":646},{},[647],{"type":45,"value":648},"\"upgrade finished but the four-way match no longer holds\"",{"type":40,"tag":517,"props":650,"children":651},{},[652,657],{"type":40,"tag":539,"props":653,"children":654},{},[655],{"type":45,"value":656},"Container tag bump",{"type":40,"tag":539,"props":658,"children":659},{},[660],{"type":45,"value":661},"the user wants to move an NGC DOCA container deployment from one tag to a newer one, or asks whether bumping the tag is an upgrade",{"type":40,"tag":517,"props":663,"children":664},{},[665,670],{"type":40,"tag":539,"props":666,"children":667},{},[668],{"type":45,"value":669},"Sunset \u002F deprecation awareness",{"type":40,"tag":539,"props":671,"children":672},{},[673],{"type":45,"value":674},"the user asks whether the component they depend on is deprecated, being sunset, or worth continued investment",{"type":40,"tag":48,"props":676,"children":677},{},[678,680,685,687,692,694,699],{"type":45,"value":679},"First classify the request. A ",{"type":40,"tag":52,"props":681,"children":682},{},[683],{"type":45,"value":684},"planned move",{"type":45,"value":686}," (including a requested\nrollback) follows detect → report → ASK. A ",{"type":40,"tag":52,"props":688,"children":689},{},[690],{"type":45,"value":691},"failed, partial, or\naccidentally drifted move",{"type":45,"value":693}," is already a diagnosis\u002Frecovery request:\nload this skill, capture the current four-source state, and enter\n",{"type":40,"tag":73,"props":695,"children":697},{"className":696},[],[698],{"type":45,"value":330},{"type":45,"value":700},"; do not ask for permission to perform an upgrade\nthat has already failed, and do not issue another upgrade command as\nthe first recovery action.",{"type":40,"tag":48,"props":702,"children":703},{},[704],{"type":45,"value":705},"For a planned move, the agent MUST:",{"type":40,"tag":707,"props":708,"children":709},"ol",{},[710,749,771],{"type":40,"tag":163,"props":711,"children":712},{},[713,715,725,727,737,739,747],{"type":45,"value":714},"Route planned-upgrade version detection to\n",{"type":40,"tag":68,"props":716,"children":718},{"href":717},"..\u002Fdoca-version\u002FTASKS.md#configure",[719],{"type":40,"tag":73,"props":720,"children":722},{"className":721},[],[723],{"type":45,"value":724},"doca-version ## configure",{"type":45,"value":726},".\nFor failed or partial upgrades, start with\n",{"type":40,"tag":68,"props":728,"children":730},{"href":729},"..\u002Fdoca-version\u002FTASKS.md#debug",[731],{"type":40,"tag":73,"props":732,"children":734},{"className":733},[],[735],{"type":45,"value":736},"doca-version ## debug",{"type":45,"value":738}," and\n",{"type":40,"tag":68,"props":740,"children":741},{"href":323},[742],{"type":40,"tag":73,"props":743,"children":745},{"className":744},[],[746],{"type":45,"value":330},{"type":45,"value":748},". Do NOT restate the\nfour-source detection chain here; this skill consumes the detected\nstate and four-way match status.",{"type":40,"tag":163,"props":750,"children":751},{},[752,757,759,769],{"type":40,"tag":52,"props":753,"children":754},{},[755],{"type":45,"value":756},"Report the gap and STOP for explicit confirmation.",{"type":45,"value":758}," Present\nthe installed release, the available target release, and what\nmoving costs (per\n",{"type":40,"tag":68,"props":760,"children":762},{"href":761},"CAPABILITIES.md#version-compatibility",[763],{"type":40,"tag":73,"props":764,"children":766},{"className":765},[],[767],{"type":45,"value":768},"CAPABILITIES.md ## Version compatibility",{"type":45,"value":770},"),\nthen ask the user to confirm. Do NOT proceed to any upgrade\ncommand until the user explicitly says yes.",{"type":40,"tag":163,"props":772,"children":773},{},[774,776,784,786,791,793,798],{"type":45,"value":775},"Route every hardware \u002F firmware \u002F reboot step to\n",{"type":40,"tag":68,"props":777,"children":778},{"href":117},[779],{"type":40,"tag":73,"props":780,"children":782},{"className":781},[],[783],{"type":45,"value":124},{"type":45,"value":785},". This\nskill names ",{"type":40,"tag":60,"props":787,"children":788},{},[789],{"type":45,"value":790},"when",{"type":45,"value":792}," such a step is part of the upgrade; that skill\nnames ",{"type":40,"tag":60,"props":794,"children":795},{},[796],{"type":45,"value":797},"how",{"type":45,"value":799}," it is applied safely.",{"type":40,"tag":48,"props":801,"children":802},{},[803,805,813,815,821],{"type":45,"value":804},"For a failed\u002Fpartial move, the agent MUST instead classify the\ncaptured state against\n",{"type":40,"tag":68,"props":806,"children":807},{"href":311},[808],{"type":40,"tag":73,"props":809,"children":811},{"className":810},[],[812],{"type":45,"value":318},{"type":45,"value":814},",\ndelegate the single documented corrective action, and re-enter the\nrecovery ladder. Any unsupported ",{"type":40,"tag":73,"props":816,"children":818},{"className":817},[],[819],{"type":45,"value":820},"installed → target",{"type":45,"value":822}," jump fails\nclosed: do not improvise intermediate releases or commands; require\nan upgrade path explicitly documented by the Compatibility Policy or\nrelease notes.",{"type":40,"tag":48,"props":824,"children":825},{},[826,828,833,835,845,847,855,857,865],{"type":45,"value":827},"Do ",{"type":40,"tag":52,"props":829,"children":830},{},[831],{"type":45,"value":832},"not",{"type":45,"value":834}," load this skill for first-time install (use\n",{"type":40,"tag":68,"props":836,"children":838},{"href":837},"..\u002Fdoca-setup\u002FSKILL.md",[839],{"type":40,"tag":73,"props":840,"children":842},{"className":841},[],[843],{"type":45,"value":844},"doca-setup",{"type":45,"value":846},"), for the version-detection\nchain in isolation (use ",{"type":40,"tag":68,"props":848,"children":849},{"href":129},[850],{"type":40,"tag":73,"props":851,"children":853},{"className":852},[],[854],{"type":45,"value":136},{"type":45,"value":856},"),\nor for general orientation (use\n",{"type":40,"tag":68,"props":858,"children":859},{"href":219},[860],{"type":40,"tag":73,"props":861,"children":863},{"className":862},[],[864],{"type":45,"value":226},{"type":45,"value":866},").",{"type":40,"tag":140,"props":868,"children":870},{"id":869},"what-this-skill-provides",[871],{"type":45,"value":872},"What this skill provides",{"type":40,"tag":48,"props":874,"children":875},{},[876,878,883],{"type":45,"value":877},"This is a ",{"type":40,"tag":52,"props":879,"children":880},{},[881],{"type":45,"value":882},"thin loader",{"type":45,"value":884},". The body keeps only the orientation\nneeded to pick the right next file. The substantive upgrade material\nlives in two companion files:",{"type":40,"tag":159,"props":886,"children":887},{},[888,918],{"type":40,"tag":163,"props":889,"children":890},{},[891,896,898,903,905,910,912,917],{"type":40,"tag":73,"props":892,"children":894},{"className":893},[],[895],{"type":45,"value":89},{"type":45,"value":897}," — the upgrade surface: the upgrade-mode taxonomy\n(host apt upgrade vs BFB reflash vs container-tag bump vs\ndowngrade\u002Frollback), the never-auto rule and the confirmation\ngate, the sunset \u002F deprecation-awareness concern, the\nversion-compatibility overlay that redirects to ",{"type":40,"tag":73,"props":899,"children":901},{"className":900},[],[902],{"type":45,"value":136},{"type":45,"value":904},",\nthe error taxonomy (partial upgrade, apt-source drift, host\u002FBFB\nskew, aborted transaction \u002F ",{"type":40,"tag":73,"props":906,"children":908},{"className":907},[],[909],{"type":45,"value":357},{"type":45,"value":911}," interrupted), the observability\nsurface (which commands prove the upgrade did or did not happen),\nand the upgrade-specific safety overlay on top of\n",{"type":40,"tag":73,"props":913,"children":915},{"className":914},[],[916],{"type":45,"value":124},{"type":45,"value":228},{"type":40,"tag":163,"props":919,"children":920},{},[921,926,928,934,936,942,944,950,952,958,960,966,968,974,976,982],{"type":40,"tag":73,"props":922,"children":924},{"className":923},[],[925],{"type":45,"value":70},{"type":45,"value":927}," — step-by-step workflows for the in-scope verbs:\n",{"type":40,"tag":73,"props":929,"children":931},{"className":930},[],[932],{"type":45,"value":933},"configure",{"type":45,"value":935}," (detect + discover target + apt-source precheck),\n",{"type":40,"tag":73,"props":937,"children":939},{"className":938},[],[940],{"type":45,"value":941},"build",{"type":45,"value":943}," and ",{"type":40,"tag":73,"props":945,"children":947},{"className":946},[],[948],{"type":45,"value":949},"modify",{"type":45,"value":951}," (routing stubs — the version-pin change is\nowned elsewhere), ",{"type":40,"tag":73,"props":953,"children":955},{"className":954},[],[956],{"type":45,"value":957},"run",{"type":45,"value":959}," (the confirmation-gated guided upgrade),\n",{"type":40,"tag":73,"props":961,"children":963},{"className":962},[],[964],{"type":45,"value":965},"test",{"type":45,"value":967}," (post-upgrade four-way verification), ",{"type":40,"tag":73,"props":969,"children":971},{"className":970},[],[972],{"type":45,"value":973},"debug",{"type":45,"value":975}," (diagnose a\nfailed \u002F partial upgrade), plus a ",{"type":40,"tag":73,"props":977,"children":979},{"className":978},[],[980],{"type":45,"value":981},"Deferred task verbs",{"type":45,"value":983}," block.",{"type":40,"tag":140,"props":985,"children":987},{"id":986},"loading-order",[988],{"type":45,"value":989},"Loading order",{"type":40,"tag":707,"props":991,"children":992},{},[993,1006,1019],{"type":40,"tag":163,"props":994,"children":995},{},[996,998,1004],{"type":45,"value":997},"Read this ",{"type":40,"tag":73,"props":999,"children":1001},{"className":1000},[],[1002],{"type":45,"value":1003},"SKILL.md",{"type":45,"value":1005}," first to confirm the user's question is in\nscope (an upgrade \u002F downgrade is being contemplated or recovered).",{"type":40,"tag":163,"props":1007,"children":1008},{},[1009],{"type":40,"tag":52,"props":1010,"children":1011},{},[1012,1014,1018],{"type":45,"value":1013},"For the upgrade-mode taxonomy, the never-auto rule, the\nsunset-awareness concern, the error taxonomy, observability, and\nthe safety overlay, see ",{"type":40,"tag":68,"props":1015,"children":1016},{"href":89},[1017],{"type":45,"value":89},{"type":45,"value":228},{"type":40,"tag":163,"props":1020,"children":1021},{},[1022],{"type":40,"tag":52,"props":1023,"children":1024},{},[1025,1027,1031],{"type":45,"value":1026},"For step-by-step workflows — detect-and-report, the\nconfirmation-gated guided upgrade, post-upgrade verification, and\nfailed-upgrade diagnosis — see ",{"type":40,"tag":68,"props":1028,"children":1029},{"href":70},[1030],{"type":45,"value":70},{"type":45,"value":228},{"type":40,"tag":140,"props":1033,"children":1035},{"id":1034},"related-skills",[1036],{"type":45,"value":1037},"Related skills",{"type":40,"tag":159,"props":1039,"children":1040},{},[1041,1054,1075,1096,1122,1137,1159],{"type":40,"tag":163,"props":1042,"children":1043},{},[1044,1052],{"type":40,"tag":68,"props":1045,"children":1046},{"href":129},[1047],{"type":40,"tag":73,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":45,"value":136},{"type":45,"value":1053}," — owns the four-source\ndetection chain and the four-way match rule. This skill's detect\nstep routes there and does not redefine version detection; the\ngap report consumes the detected version.",{"type":40,"tag":163,"props":1055,"children":1056},{},[1057,1065,1067,1073],{"type":40,"tag":68,"props":1058,"children":1059},{"href":837},[1060],{"type":40,"tag":73,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":45,"value":844},{"type":45,"value":1066}," — owns first-time install,\ninstall verification, and the apt-source path. This skill's\napt-source consistency precheck cross-links there before any\n",{"type":40,"tag":73,"props":1068,"children":1070},{"className":1069},[],[1071],{"type":45,"value":1072},"apt",{"type":45,"value":1074},"-shaped upgrade is contemplated.",{"type":40,"tag":163,"props":1076,"children":1077},{},[1078,1086,1088,1094],{"type":40,"tag":68,"props":1079,"children":1080},{"href":117},[1081],{"type":40,"tag":73,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":45,"value":124},{"type":45,"value":1087}," — owns\nevery hardware \u002F firmware \u002F reboot step (mlxconfig, BFB reflash,\nBlueField mode flip, cold power cycle). This skill's ",{"type":40,"tag":73,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":45,"value":1093},"## Safety policy",{"type":45,"value":1095}," overlays that meta-policy and adds only the\nupgrade-specific surface (confirmation gate, rollback-first,\nmaintenance window).",{"type":40,"tag":163,"props":1097,"children":1098},{},[1099,1107,1109,1114,1115,1120],{"type":40,"tag":68,"props":1100,"children":1101},{"href":219},[1102],{"type":40,"tag":73,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":45,"value":226},{"type":45,"value":1108}," —\nthe routing table to public DOCA docs, including the release notes\nand the Compatibility Policy. This skill routes ",{"type":40,"tag":60,"props":1110,"children":1111},{},[1112],{"type":45,"value":1113},"what is the\ncurrent release",{"type":45,"value":943},{"type":40,"tag":60,"props":1116,"children":1117},{},[1118],{"type":45,"value":1119},"is this component sunsetting",{"type":45,"value":1121}," there; it does\nnot duplicate the routing.",{"type":40,"tag":163,"props":1123,"children":1124},{},[1125,1135],{"type":40,"tag":68,"props":1126,"children":1128},{"href":1127},"..\u002Fdoca-debug\u002FSKILL.md",[1129],{"type":40,"tag":73,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":45,"value":1134},"doca-debug",{"type":45,"value":1136}," — the cross-cutting debug\nladder. A failed upgrade whose residual symptom lives at a\nsoftware layer hands off there once the upgrade state is known.",{"type":40,"tag":163,"props":1138,"children":1139},{},[1140,1150,1152,1157],{"type":40,"tag":68,"props":1141,"children":1143},{"href":1142},"..\u002Fdoca-programming-guide\u002FSKILL.md",[1144],{"type":40,"tag":73,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":45,"value":1149},"doca-programming-guide",{"type":45,"value":1151}," —\nthe build pattern a consumer rebuilds against after an upgrade.\nThis skill surfaces ",{"type":40,"tag":60,"props":1153,"children":1154},{},[1155],{"type":45,"value":1156},"that",{"type":45,"value":1158}," a rebuild may be needed; the build\nmechanics live there.",{"type":40,"tag":163,"props":1160,"children":1161},{},[1162,1172,1174,1180],{"type":40,"tag":68,"props":1163,"children":1165},{"href":1164},"..\u002Fdoca-structured-tools-contract\u002FSKILL.md",[1166],{"type":40,"tag":73,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":45,"value":1171},"doca-structured-tools-contract",{"type":45,"value":1173}," —\nthe JSON schemas the agent prefers when present; the upgrade\ndetect step reuses the same ",{"type":40,"tag":73,"props":1175,"children":1177},{"className":1176},[],[1178],{"type":45,"value":1179},"doca-env",{"type":45,"value":1181}," one-shot the version skill\nuses, when the host has it.",{"items":1183,"total":1340},[1184,1202,1218,1229,1241,1255,1268,1282,1295,1306,1320,1329],{"slug":1185,"name":1185,"fn":1186,"description":1187,"org":1188,"tags":1189,"stars":1199,"repoUrl":1200,"updatedAt":1201},"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},[1190,1193,1196],{"name":1191,"slug":1192,"type":15},"Documentation","documentation",{"name":1194,"slug":1195,"type":15},"MCP","mcp",{"name":1197,"slug":1198,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1203,"name":1203,"fn":1204,"description":1205,"org":1206,"tags":1207,"stars":1215,"repoUrl":1216,"updatedAt":1217},"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},[1208,1211,1212],{"name":1209,"slug":1210,"type":15},"Containers","containers",{"name":17,"slug":18,"type":15},{"name":1213,"slug":1214,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1219,"name":1219,"fn":1220,"description":1221,"org":1222,"tags":1223,"stars":1215,"repoUrl":1216,"updatedAt":1228},"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},[1224,1227],{"name":1225,"slug":1226,"type":15},"CI\u002FCD","ci-cd",{"name":17,"slug":18,"type":15},"2026-07-14T05:25:59.97109",{"slug":1230,"name":1230,"fn":1231,"description":1232,"org":1233,"tags":1234,"stars":1215,"repoUrl":1216,"updatedAt":1240},"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},[1235,1236,1237],{"name":1225,"slug":1226,"type":15},{"name":17,"slug":18,"type":15},{"name":1238,"slug":1239,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1242,"name":1242,"fn":1243,"description":1244,"org":1245,"tags":1246,"stars":1215,"repoUrl":1216,"updatedAt":1254},"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},[1247,1250,1251],{"name":1248,"slug":1249,"type":15},"Debugging","debugging",{"name":1238,"slug":1239,"type":15},{"name":1252,"slug":1253,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1256,"name":1256,"fn":1257,"description":1258,"org":1259,"tags":1260,"stars":1215,"repoUrl":1216,"updatedAt":1267},"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},[1261,1264],{"name":1262,"slug":1263,"type":15},"Best Practices","best-practices",{"name":1265,"slug":1266,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1269,"name":1269,"fn":1270,"description":1271,"org":1272,"tags":1273,"stars":1215,"repoUrl":1216,"updatedAt":1281},"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},[1274,1277,1280],{"name":1275,"slug":1276,"type":15},"Machine Learning","machine-learning",{"name":1278,"slug":1279,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1283,"name":1283,"fn":1284,"description":1285,"org":1286,"tags":1287,"stars":1215,"repoUrl":1216,"updatedAt":1294},"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},[1288,1291],{"name":1289,"slug":1290,"type":15},"QA","qa",{"name":1292,"slug":1293,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":1296,"name":1296,"fn":1297,"description":1298,"org":1299,"tags":1300,"stars":1215,"repoUrl":1216,"updatedAt":1305},"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},[1301,1302],{"name":17,"slug":18,"type":15},{"name":1303,"slug":1304,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":1307,"name":1307,"fn":1308,"description":1309,"org":1310,"tags":1311,"stars":1215,"repoUrl":1216,"updatedAt":1319},"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},[1312,1315,1316],{"name":1313,"slug":1314,"type":15},"Code Review","code-review",{"name":1238,"slug":1239,"type":15},{"name":1317,"slug":1318,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1321,"name":1321,"fn":1322,"description":1323,"org":1324,"tags":1325,"stars":1215,"repoUrl":1216,"updatedAt":1328},"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},[1326,1327],{"name":1289,"slug":1290,"type":15},{"name":1292,"slug":1293,"type":15},"2026-07-14T05:25:54.928983",{"slug":1330,"name":1330,"fn":1331,"description":1332,"org":1333,"tags":1334,"stars":1215,"repoUrl":1216,"updatedAt":1339},"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},[1335,1338],{"name":1336,"slug":1337,"type":15},"Automation","automation",{"name":1225,"slug":1226,"type":15},"2026-07-30T05:29:03.275638",496,{"items":1342,"total":1436},[1343,1360,1370,1384,1394,1409,1422],{"slug":1344,"name":1344,"fn":1345,"description":1346,"org":1347,"tags":1348,"stars":20,"repoUrl":21,"updatedAt":1359},"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},[1349,1352,1355,1356],{"name":1350,"slug":1351,"type":15},"Data Analysis","data-analysis",{"name":1353,"slug":1354,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1357,"slug":1358,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":20,"repoUrl":21,"updatedAt":1369},"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},[1366,1367,1368],{"name":17,"slug":18,"type":15},{"name":1303,"slug":1304,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1371,"name":1371,"fn":1372,"description":1373,"org":1374,"tags":1375,"stars":20,"repoUrl":21,"updatedAt":1383},"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},[1376,1379,1380],{"name":1377,"slug":1378,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1381,"slug":1382,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1385,"name":1385,"fn":1386,"description":1387,"org":1388,"tags":1389,"stars":20,"repoUrl":21,"updatedAt":1393},"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},[1390,1391,1392],{"name":1350,"slug":1351,"type":15},{"name":9,"slug":8,"type":15},{"name":1292,"slug":1293,"type":15},"2026-07-17T05:29:03.913266",{"slug":1395,"name":1395,"fn":1396,"description":1397,"org":1398,"tags":1399,"stars":20,"repoUrl":21,"updatedAt":1408},"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},[1400,1401,1404,1405],{"name":1336,"slug":1337,"type":15},{"name":1402,"slug":1403,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1406,"slug":1407,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1410,"name":1410,"fn":1411,"description":1412,"org":1413,"tags":1414,"stars":20,"repoUrl":21,"updatedAt":1421},"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},[1415,1416,1419,1420],{"name":17,"slug":18,"type":15},{"name":1417,"slug":1418,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-17T05:28:56.913999",{"slug":1423,"name":1423,"fn":1424,"description":1425,"org":1426,"tags":1427,"stars":20,"repoUrl":21,"updatedAt":1435},"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},[1428,1429,1432],{"name":9,"slug":8,"type":15},{"name":1430,"slug":1431,"type":15},"Quantum Computing","quantum-computing",{"name":1433,"slug":1434,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305]