[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-doca-socket-relay":3,"mdc-dz0f66-key":31,"related-repo-nvidia-doca-socket-relay":1245,"related-org-nvidia-doca-socket-relay":1351},{"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-socket-relay","bridge host applications with DOCA Socket Relay","Use this skill when the operator is driving the DOCA Socket Relay to bridge a socket-oriented host application onto a BlueField DPU peer without rewriting it — picking the deployment shape (in-process, sidecar, or BlueField service container), configuring the host-side socket and the DPU-side forwarding endpoint, walking the bind → connect → round-trip → admit-fleet smoke, or diagnosing a stuck\u002Fsilent relay. Trigger even when the user does not explicitly mention \"DOCA Socket Relay\" — typical implicit phrasings include \"move my socket app onto the BlueField without rewriting it\", \"host app gets ECONNREFUSED on the relay\", \"relay accepts the connection but bytes never arrive on the DPU side\", \"first round-trip works, the rest hang\", \"bridge an AF_UNIX (UDS) socket to a DPU peer over Comch\", or \"I want a sidecar that forwards my socket to the BlueField\". Refuse and route elsewhere for the comch programming API, line-rate raw packet I\u002FO via doca-eth, and DOCA install\u002Fbring-up — those belong to other skills.\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,17],{"name":13,"slug":14,"type":15},"Networking","networking","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Engineering","engineering",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-20T06:24:08.863489","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-socket-relay","---\nlicense: Apache-2.0\nname: doca-socket-relay\ndescription: >\n  Use this skill when the operator is driving the DOCA Socket Relay\n  to bridge a socket-oriented host application onto a BlueField DPU\n  peer without rewriting it — picking the deployment shape\n  (in-process, sidecar, or BlueField service container), configuring\n  the host-side socket and the DPU-side forwarding endpoint, walking\n  the bind → connect → round-trip → admit-fleet smoke, or diagnosing\n  a stuck\u002Fsilent relay. Trigger even when the user does not\n  explicitly mention \"DOCA Socket Relay\" — typical implicit phrasings\n  include \"move my socket app onto the BlueField without rewriting\n  it\", \"host app gets ECONNREFUSED on the relay\", \"relay accepts the\n  connection but bytes never arrive on the DPU side\", \"first\n  round-trip works, the rest hang\", \"bridge an AF_UNIX (UDS) socket\n  to a DPU peer over Comch\", or \"I want a sidecar that forwards my\n  socket to the BlueField\". Refuse and route elsewhere for the comch programming\n  API, line-rate raw packet I\u002FO via doca-eth, and DOCA\n  install\u002Fbring-up — those belong to other skills.\nmetadata:\n  kind: tool\ncompatibility: >\n  Requires DOCA SDK installed at \u002Fopt\u002Fmellanox\u002Fdoca on Linux (Ubuntu\n  22.04\u002F24.04 or RHEL\u002FSLES) with a BlueField DPU attached, plus the\n  socket-oriented host application that will be migrated onto the\n  fabric. Container-shape deployment additionally relies on the\n  BlueField kubelet-standalone runtime per doca-container-deployment.\n---\n\n# DOCA Socket Relay\n\n**Where to start:** This is a tool skill for invoking the DOCA Socket\nRelay — the host ↔ BlueField bridge that lets a socket-oriented host\napplication terminate its sockets locally while the relay forwards\nthe traffic to a DPU-side terminator across the DOCA fabric. Open\n[`TASKS.md`](TASKS.md) and start at [`## configure`](TASKS.md#configure)\nfor the deployment-shape × socket-type × forwarding-endpoint\ndecision, then [`## run`](TASKS.md#run) for the bind → connect →\nround-trip flow. Open [`CAPABILITIES.md`](CAPABILITIES.md) when the\nquestion is *what state can the relay carry, what does it report,\nand what does its data-path posture imply*. If the user has not\ninstalled DOCA yet, route to\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) first. If the user is\nasking about the host ↔ DPU **control plane** rather than the\n**data plane** the relay carries, route to\n[`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md) — the relay is the\ndata-plane counterpart to comch.\n\n## Example questions this skill answers well\n\nThe CLASSES of socket-relay questions this skill is built to answer,\neach with one worked example. The class is the load-bearing piece;\nthe worked example is one instance.\n\n- **\"Can I move my existing socket-based application onto a DOCA\n  fabric without rewriting it?\"** — worked example: *\"a host service\n  speaks a socket protocol to a peer; I want the peer to live on\n  the BlueField DPU instead, but I do not want to port the\n  application to the comch programming surface\"*. Answered by the\n  use-case framing in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  + the deployment-shape decision in\n  [`TASKS.md ## configure`](TASKS.md#configure).\n- **\"Where does the relay sit, and what runs on the host vs the\n  DPU?\"** — worked example: *\"do I run one relay process on the\n  host, a sidecar next to my app, or a relay container on the\n  BlueField — and what is on the DPU side that actually terminates\n  the connection?\"*. Answered by the three-axis configuration model\n  (deployment shape × socket type × forwarding endpoint) in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  + [`TASKS.md ## configure`](TASKS.md#configure) step 2.\n- **\"My relay is up but the host application cannot connect.\"** —\n  worked example: *\"the relay process is running but the host app\n  reports `ECONNREFUSED` \u002F connect timeout when it tries the\n  socket \u002F port the relay should be listening on\"*. Answered by the\n  layered error taxonomy in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  layers 1-3 + the bind \u002F accept ladder in\n  [`TASKS.md ## debug`](TASKS.md#debug).\n- **\"Bytes leave the host but never arrive on the DPU side.\"** —\n  worked example: *\"the host app's socket connect succeeded, the\n  relay reports the connection accepted, but the DPU-side\n  terminator never sees the data\"*. Answered by the\n  forwarding-endpoint layer in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  layer 4 + the silent-data-path failure mode named in\n  [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy).\n- **\"How do I prove the relay is the right answer before I admit\n  the whole fleet onto it?\"** — worked example: *\"I have N host\n  clients; I want to confirm one of them works end-to-end before\n  pointing the rest at the relay\"*. Answered by the\n  smoke-before-bulk loop in\n  [`TASKS.md ## test`](TASKS.md#test) (bind → confirm one host app\n  connects → confirm one round-trip end-to-end → only then admit\n  the fleet).\n- **\"Is this Socket Relay shipped on my installed DOCA, and does\n  its version match the comch \u002F eth pieces it sits on?\"** — worked\n  example: *\"is the relay binary present on this host, and does\n  it agree with `pkg-config --modversion doca-common`\"*. Answered\n  by the version overlay in\n  [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility),\n  which redirects to the canonical\n  [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md) rules and adds the\n  Socket Relay specifics (presence check, host vs BlueField\n  packaging, agreement with companion libraries).\n\n## Audience\n\nThis skill serves **external operators, application owners, and AI\nagents who need to bridge a socket-oriented application onto a\nBlueField DPU without rewriting the application against the DOCA\nprogramming surface**. Concretely:\n\n- A platform owner with an existing host service that speaks a\n  socket protocol to a peer and wants the peer to live on the\n  BlueField instead — without porting the host service onto\n  [`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md).\n- A migration engineer evaluating the relay as the *first* step of\n  a phased move onto DOCA, with the comch \u002F RDMA \u002F Ethernet\n  rewrite reserved for a later phase.\n- An SRE \u002F platform operator deploying the relay as a service\n  container on the BlueField via the runtime contract documented\n  in [`doca-container-deployment`](..\u002F..\u002Fdoca-container-deployment\u002FSKILL.md).\n- An AI agent answering *\"my host app cannot reach the DPU on the\n  socket I configured — what do I check\"* with the relay's layered\n  error surface as the diagnosis ladder.\n\nIt is **not** for users debugging the Socket Relay binary itself,\n**not** a substitute for the live public DOCA Socket Relay guide,\nand **not** the right place for users learning the comch\nprogramming API or for users doing line-rate raw-packet I\u002FO. Those\naudiences belong in [`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md)\nand [`doca-eth`](..\u002F..\u002Flibs\u002Fdoca-eth\u002FSKILL.md) respectively.\n\nThe Socket Relay is shipped as a documented DOCA artifact on\ninstalls that include it; depending on the operator's deployment\nshape, it can be invoked as a CLI on the host or BlueField Arm, or\ndeployed as a service container on the BlueField via the\ndocumented kubelet-standalone runtime in\n[`doca-container-deployment`](..\u002F..\u002Fdoca-container-deployment\u002FSKILL.md).\nThe skill uses the same `kind: tool` three-file shape as the\nrest of the bundle so the agent's task-verb contract\n(`configure \u002F build \u002F modify \u002F run \u002F test \u002F debug`) is uniform\nacross libraries, services, and tools.\n\n## When to load this skill\n\nLoad this skill when the user is — or the agent needs to — drive\nthe DOCA Socket Relay on a real host or BlueField Arm with DOCA\ninstalled (or inside the public NGC DOCA container with the right\ndevice passthrough). Concretely:\n\n- Migrating a socket-based application off a same-host peer onto\n  a BlueField-side terminator without rewriting the application.\n- Picking the relay's deployment shape (in-process beside the app,\n  sidecar process \u002F container, or a service container on the\n  BlueField) for a specific environment.\n- Configuring the host-side socket the relay binds and the DPU-side\n  forwarding endpoint the relay points at, before any application\n  client tries to connect.\n- Walking the bind → connect → round-trip → admit-fleet loop on a\n  brand-new relay deployment.\n- Diagnosing a *\"host app cannot connect\"*, *\"connection accepted\n  but no bytes flow\"*, or *\"first round-trip works, the rest hang\"*\n  symptom against the relay's layered error surface.\n- Cross-checking the relay's view against the host application\n  side and the DPU-side terminator when the three appear to\n  disagree.\n\nDo **not** load this skill for general DOCA orientation, the comch\nprogramming API, RDMA programming, line-rate raw packet I\u002FO, or\nDOCA install. For those, route to\n[`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md),\n[`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md),\n[`doca-eth`](..\u002F..\u002Flibs\u002Fdoca-eth\u002FSKILL.md), or\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md).\n\n## What this skill provides\n\nThis is a **thin loader**. Substantive material lives in two\ncompanion files:\n\n- `CAPABILITIES.md` — what the Socket Relay carries and changes:\n  the three-axis configuration model (deployment shape × socket\n  type \u002F protocol × forwarding endpoint), the read-only vs\n  state-changing operation split, the version-availability overlay\n  that redirects to [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md),\n  the layered error taxonomy (tool-not-installed \u002F relay-not-bound\n  \u002F host-app-not-connecting \u002F DPU-side-terminator-not-reachable \u002F\n  permission \u002F version \u002F cross-cutting), the relay's role as the\n  data-plane counterpart to\n  [`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md), and the\n  high-stakes safety policy that makes a misconfigured forwarding\n  endpoint a silent data-path break.\n- `TASKS.md` — step-by-step workflows for the in-scope task verbs:\n  `configure` (the three-axis decision + the precondition probe),\n  `build` (route to install — the relay is shipped pre-built),\n  `modify` (refuse — modify the *invocation \u002F deployment*, not the\n  binary), `run` (the bind → connect → round-trip flow), `test`\n  (the smoke-before-bulk eval loop), `debug` (the layered\n  diagnosis ladder), plus a `Deferred task verbs` block and a\n  `Command appendix` that honors the bundle's\n  [`doca-structured-tools-contract`](..\u002F..\u002Fdoca-structured-tools-contract\u002FSKILL.md)\n  preamble.\n\nThe skill assumes a host or BlueField where DOCA is already\ninstalled (or the public NGC DOCA container is running with the\nright device passthrough) and the operator has whatever privileges\nthe public DOCA Socket Relay guide requires for the chosen\ndeployment shape.\n\n## What this skill deliberately does not ship\n\nThis skill is **agent guidance**, not a samples or scripts bundle.\nTo keep the boundary clean, it deliberately does not contain — and\npull requests should not add:\n\n- **Verbatim binary names, flag inventories, subcommand names,\n  socket-path defaults, port numbers, or output column names.**\n  The public DOCA Socket Relay guide on `docs.nvidia.com` and the\n  installed `--help` on the user's version are the joint source\n  of truth; copying them here pins the skill to one release and\n  silently rots when the relay evolves. The skill routes the agent\n  at those sources instead.\n- **Pre-baked example output.** Output is install-, version-, and\n  deployment-specific. A captured example will mislead an operator\n  on a different platform \u002F state.\n- **Wrappers, parsers, or scripts** in any language that consume\n  the relay's output. The output format is documented; users who\n  want to script against it should read the live guide and write\n  the parser against their installed version.\n- **A `samples\u002F` or `reference\u002F` subtree.** This is a thin loader\n  for a documented DOCA artifact; substantive material lives on\n  the public page and in `--help`.\n\n## Loading order\n\n1. Read this `SKILL.md` first to confirm the user's question is in\n   scope (the user wants to bridge a socket-based application onto\n   the DPU without rewriting it onto the DOCA programming surface,\n   not learn the comch \u002F eth \u002F RDMA APIs).\n2. **For what the relay carries, the three-axis configuration\n   model, the read-only vs state-changing split, version\n   availability, the layered error surface, observability, and\n   safety posture, see [CAPABILITIES.md](CAPABILITIES.md).**\n3. **For the documented invocations and the smoke-before-bulk\n   workflow — `configure`, `build`, `modify`, `run`, `test`,\n   `debug`, plus the `Command appendix` — see\n   [TASKS.md](TASKS.md).**\n\n## Related skills\n\n- [`doca-comch`](..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md) — the host ↔ DPU\n  **control-plane** primitive (PCIe-based message channel between a\n  host and a DPU process). The Socket Relay is the **data-plane**\n  counterpart for socket-oriented applications: comch is what an\n  application uses to *coordinate* across the host ↔ DPU boundary\n  programmatically; the relay is what an application uses to\n  *carry* socket-shaped bytes across that boundary without being\n  rewritten. Pair the two when an application owner is migrating\n  in stages — control plane first via comch, data plane via the\n  relay until a per-library rewrite is justified.\n- [`doca-eth`](..\u002F..\u002Flibs\u002Fdoca-eth\u002FSKILL.md) — the line-rate raw\n  packet I\u002FO surface that sits *below* the socket level. The relay\n  presents a socket-shaped interface to the application and rides\n  the underlying DOCA fabric; doca-eth is the right answer when\n  the application can be rewritten to operate on packets directly\n  rather than sockets, and when the throughput \u002F latency profile\n  the relay achieves is no longer sufficient.\n- [`doca-container-deployment`](..\u002F..\u002Fdoca-container-deployment\u002FSKILL.md)\n  — the BlueField service-runtime contract (kubelet standalone +\n  static-pod manifests + per-service config-file mount). Load this\n  alongside the present skill when the operator's chosen\n  deployment shape is a relay container running on the BlueField\n  rather than a host-side process; the runtime contract there owns\n  the pod-spec \u002F image-pull \u002F static-pod \u002F liveness pieces, this\n  skill owns the relay-specific config.\n- [`doca-comm-channel-admin`](..\u002Fdoca-comm-channel-admin\u002FSKILL.md)\n  — the operator-side admin CLI for comch channels. The\n  list → inspect → decide pattern there is the same shape the\n  Socket Relay uses for its own state: read-only inspection first,\n  state-changing operations gated on a clean smoke. Both tools are\n  members of the same family and the same patterns apply.\n- [`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md)\n  — routing to the public DOCA Socket Relay guide and the rest of\n  the public DOCA documentation set. The canonical URL is reached\n  via [`doca-public-knowledge-map ## DOCA tools`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md#doca-tools).\n- [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md) — canonical DOCA\n  version-handling rules. The `## Version compatibility` section\n  in [`CAPABILITIES.md`](CAPABILITIES.md) is a concise overlay\n  that redirects here for the body.\n- [`doca-structured-tools-contract`](..\u002F..\u002Fdoca-structured-tools-contract\u002FSKILL.md)\n  — the bundle's detect → prefer → fall back → report contract for\n  structured helper tools. The Command appendix in\n  [`TASKS.md`](TASKS.md) honors this contract.\n- [`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) — env preparation,\n  install verification, representor visibility checks, and the *I\n  have no install yet* path with the public NGC DOCA container.\n  This skill assumes its preconditions are satisfied.\n- [`doca-debug`](..\u002F..\u002Fdoca-debug\u002FSKILL.md) — the cross-cutting\n  debug ladder. The Socket Relay slots in at the *runtime* layer\n  as a data-path bridge whose layered error surface escalates to\n  the cross-cutting ladder when the cause is below DOCA.\n",{"data":32,"body":36},{"license":23,"name":4,"description":6,"metadata":33,"compatibility":35},{"kind":34},"tool","Requires DOCA SDK installed at \u002Fopt\u002Fmellanox\u002Fdoca on Linux (Ubuntu 22.04\u002F24.04 or RHEL\u002FSLES) with a BlueField DPU attached, plus the socket-oriented host application that will be migrated onto the fabric. Container-shape deployment additionally relies on the BlueField kubelet-standalone runtime per doca-container-deployment.\n",{"type":37,"children":38},"root",[39,47,153,160,165,418,424,436,493,539,570,576,581,635,686,692,704,830,835,841,853,934,940,1027,1033],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","DOCA Socket Relay",{"type":40,"tag":48,"props":49,"children":50},"p",{},[51,57,59,70,72,82,84,94,96,105,107,113,115,125,127,132,134,139,141,151],{"type":40,"tag":52,"props":53,"children":54},"strong",{},[55],{"type":45,"value":56},"Where to start:",{"type":45,"value":58}," This is a tool skill for invoking the DOCA Socket\nRelay — the host ↔ BlueField bridge that lets a socket-oriented host\napplication terminate its sockets locally while the relay forwards\nthe traffic to a DPU-side terminator across the DOCA fabric. Open\n",{"type":40,"tag":60,"props":61,"children":63},"a",{"href":62},"TASKS.md",[64],{"type":40,"tag":65,"props":66,"children":68},"code",{"className":67},[],[69],{"type":45,"value":62},{"type":45,"value":71}," and start at ",{"type":40,"tag":60,"props":73,"children":75},{"href":74},"TASKS.md#configure",[76],{"type":40,"tag":65,"props":77,"children":79},{"className":78},[],[80],{"type":45,"value":81},"## configure",{"type":45,"value":83},"\nfor the deployment-shape × socket-type × forwarding-endpoint\ndecision, then ",{"type":40,"tag":60,"props":85,"children":87},{"href":86},"TASKS.md#run",[88],{"type":40,"tag":65,"props":89,"children":91},{"className":90},[],[92],{"type":45,"value":93},"## run",{"type":45,"value":95}," for the bind → connect →\nround-trip flow. Open ",{"type":40,"tag":60,"props":97,"children":99},{"href":98},"CAPABILITIES.md",[100],{"type":40,"tag":65,"props":101,"children":103},{"className":102},[],[104],{"type":45,"value":98},{"type":45,"value":106}," when the\nquestion is ",{"type":40,"tag":108,"props":109,"children":110},"em",{},[111],{"type":45,"value":112},"what state can the relay carry, what does it report,\nand what does its data-path posture imply",{"type":45,"value":114},". If the user has not\ninstalled DOCA yet, route to\n",{"type":40,"tag":60,"props":116,"children":118},{"href":117},"..\u002F..\u002Fdoca-setup\u002FSKILL.md",[119],{"type":40,"tag":65,"props":120,"children":122},{"className":121},[],[123],{"type":45,"value":124},"doca-setup",{"type":45,"value":126}," first. If the user is\nasking about the host ↔ DPU ",{"type":40,"tag":52,"props":128,"children":129},{},[130],{"type":45,"value":131},"control plane",{"type":45,"value":133}," rather than the\n",{"type":40,"tag":52,"props":135,"children":136},{},[137],{"type":45,"value":138},"data plane",{"type":45,"value":140}," the relay carries, route to\n",{"type":40,"tag":60,"props":142,"children":144},{"href":143},"..\u002F..\u002Flibs\u002Fdoca-comch\u002FSKILL.md",[145],{"type":40,"tag":65,"props":146,"children":148},{"className":147},[],[149],{"type":45,"value":150},"doca-comch",{"type":45,"value":152}," — the relay is the\ndata-plane counterpart to comch.",{"type":40,"tag":154,"props":155,"children":157},"h2",{"id":156},"example-questions-this-skill-answers-well",[158],{"type":45,"value":159},"Example questions this skill answers well",{"type":40,"tag":48,"props":161,"children":162},{},[163],{"type":45,"value":164},"The CLASSES of socket-relay questions this skill is built to answer,\neach with one worked example. The class is the load-bearing piece;\nthe worked example is one instance.",{"type":40,"tag":166,"props":167,"children":168},"ul",{},[169,216,256,304,341,369],{"type":40,"tag":170,"props":171,"children":172},"li",{},[173,178,180,185,187,197],{"type":40,"tag":52,"props":174,"children":175},{},[176],{"type":45,"value":177},"\"Can I move my existing socket-based application onto a DOCA\nfabric without rewriting it?\"",{"type":45,"value":179}," — worked example: ",{"type":40,"tag":108,"props":181,"children":182},{},[183],{"type":45,"value":184},"\"a host service\nspeaks a socket protocol to a peer; I want the peer to live on\nthe BlueField DPU instead, but I do not want to port the\napplication to the comch programming surface\"",{"type":45,"value":186},". Answered by the\nuse-case framing in\n",{"type":40,"tag":60,"props":188,"children":190},{"href":189},"CAPABILITIES.md#capabilities-and-modes",[191],{"type":40,"tag":65,"props":192,"children":194},{"className":193},[],[195],{"type":45,"value":196},"CAPABILITIES.md ## Capabilities and modes",{"type":40,"tag":166,"props":198,"children":199},{},[200],{"type":40,"tag":170,"props":201,"children":202},{},[203,205,214],{"type":45,"value":204},"the deployment-shape decision in\n",{"type":40,"tag":60,"props":206,"children":207},{"href":74},[208],{"type":40,"tag":65,"props":209,"children":211},{"className":210},[],[212],{"type":45,"value":213},"TASKS.md ## configure",{"type":45,"value":215},".",{"type":40,"tag":170,"props":217,"children":218},{},[219,224,225,230,232,240],{"type":40,"tag":52,"props":220,"children":221},{},[222],{"type":45,"value":223},"\"Where does the relay sit, and what runs on the host vs the\nDPU?\"",{"type":45,"value":179},{"type":40,"tag":108,"props":226,"children":227},{},[228],{"type":45,"value":229},"\"do I run one relay process on the\nhost, a sidecar next to my app, or a relay container on the\nBlueField — and what is on the DPU side that actually terminates\nthe connection?\"",{"type":45,"value":231},". Answered by the three-axis configuration model\n(deployment shape × socket type × forwarding endpoint) in\n",{"type":40,"tag":60,"props":233,"children":234},{"href":189},[235],{"type":40,"tag":65,"props":236,"children":238},{"className":237},[],[239],{"type":45,"value":196},{"type":40,"tag":166,"props":241,"children":242},{},[243],{"type":40,"tag":170,"props":244,"children":245},{},[246,254],{"type":40,"tag":60,"props":247,"children":248},{"href":74},[249],{"type":40,"tag":65,"props":250,"children":252},{"className":251},[],[253],{"type":45,"value":213},{"type":45,"value":255}," step 2.",{"type":40,"tag":170,"props":257,"children":258},{},[259,264,266,279,281,291,293,303],{"type":40,"tag":52,"props":260,"children":261},{},[262],{"type":45,"value":263},"\"My relay is up but the host application cannot connect.\"",{"type":45,"value":265}," —\nworked example: ",{"type":40,"tag":108,"props":267,"children":268},{},[269,271,277],{"type":45,"value":270},"\"the relay process is running but the host app\nreports ",{"type":40,"tag":65,"props":272,"children":274},{"className":273},[],[275],{"type":45,"value":276},"ECONNREFUSED",{"type":45,"value":278}," \u002F connect timeout when it tries the\nsocket \u002F port the relay should be listening on\"",{"type":45,"value":280},". Answered by the\nlayered error taxonomy in\n",{"type":40,"tag":60,"props":282,"children":284},{"href":283},"CAPABILITIES.md#error-taxonomy",[285],{"type":40,"tag":65,"props":286,"children":288},{"className":287},[],[289],{"type":45,"value":290},"CAPABILITIES.md ## Error taxonomy",{"type":45,"value":292},"\nlayers 1-3 + the bind \u002F accept ladder in\n",{"type":40,"tag":60,"props":294,"children":296},{"href":295},"TASKS.md#debug",[297],{"type":40,"tag":65,"props":298,"children":300},{"className":299},[],[301],{"type":45,"value":302},"TASKS.md ## debug",{"type":45,"value":215},{"type":40,"tag":170,"props":305,"children":306},{},[307,312,313,318,320,328,330,340],{"type":40,"tag":52,"props":308,"children":309},{},[310],{"type":45,"value":311},"\"Bytes leave the host but never arrive on the DPU side.\"",{"type":45,"value":265},{"type":40,"tag":108,"props":314,"children":315},{},[316],{"type":45,"value":317},"\"the host app's socket connect succeeded, the\nrelay reports the connection accepted, but the DPU-side\nterminator never sees the data\"",{"type":45,"value":319},". Answered by the\nforwarding-endpoint layer in\n",{"type":40,"tag":60,"props":321,"children":322},{"href":283},[323],{"type":40,"tag":65,"props":324,"children":326},{"className":325},[],[327],{"type":45,"value":290},{"type":45,"value":329},"\nlayer 4 + the silent-data-path failure mode named in\n",{"type":40,"tag":60,"props":331,"children":333},{"href":332},"CAPABILITIES.md#safety-policy",[334],{"type":40,"tag":65,"props":335,"children":337},{"className":336},[],[338],{"type":45,"value":339},"CAPABILITIES.md ## Safety policy",{"type":45,"value":215},{"type":40,"tag":170,"props":342,"children":343},{},[344,349,350,355,357,367],{"type":40,"tag":52,"props":345,"children":346},{},[347],{"type":45,"value":348},"\"How do I prove the relay is the right answer before I admit\nthe whole fleet onto it?\"",{"type":45,"value":179},{"type":40,"tag":108,"props":351,"children":352},{},[353],{"type":45,"value":354},"\"I have N host\nclients; I want to confirm one of them works end-to-end before\npointing the rest at the relay\"",{"type":45,"value":356},". Answered by the\nsmoke-before-bulk loop in\n",{"type":40,"tag":60,"props":358,"children":360},{"href":359},"TASKS.md#test",[361],{"type":40,"tag":65,"props":362,"children":364},{"className":363},[],[365],{"type":45,"value":366},"TASKS.md ## test",{"type":45,"value":368}," (bind → confirm one host app\nconnects → confirm one round-trip end-to-end → only then admit\nthe fleet).",{"type":40,"tag":170,"props":370,"children":371},{},[372,377,379,392,394,404,406,416],{"type":40,"tag":52,"props":373,"children":374},{},[375],{"type":45,"value":376},"\"Is this Socket Relay shipped on my installed DOCA, and does\nits version match the comch \u002F eth pieces it sits on?\"",{"type":45,"value":378}," — worked\nexample: ",{"type":40,"tag":108,"props":380,"children":381},{},[382,384,390],{"type":45,"value":383},"\"is the relay binary present on this host, and does\nit agree with ",{"type":40,"tag":65,"props":385,"children":387},{"className":386},[],[388],{"type":45,"value":389},"pkg-config --modversion doca-common",{"type":45,"value":391},"\"",{"type":45,"value":393},". Answered\nby the version overlay in\n",{"type":40,"tag":60,"props":395,"children":397},{"href":396},"CAPABILITIES.md#version-compatibility",[398],{"type":40,"tag":65,"props":399,"children":401},{"className":400},[],[402],{"type":45,"value":403},"CAPABILITIES.md ## Version compatibility",{"type":45,"value":405},",\nwhich redirects to the canonical\n",{"type":40,"tag":60,"props":407,"children":409},{"href":408},"..\u002F..\u002Fdoca-version\u002FSKILL.md",[410],{"type":40,"tag":65,"props":411,"children":413},{"className":412},[],[414],{"type":45,"value":415},"doca-version",{"type":45,"value":417}," rules and adds the\nSocket Relay specifics (presence check, host vs BlueField\npackaging, agreement with companion libraries).",{"type":40,"tag":154,"props":419,"children":421},{"id":420},"audience",[422],{"type":45,"value":423},"Audience",{"type":40,"tag":48,"props":425,"children":426},{},[427,429,434],{"type":45,"value":428},"This skill serves ",{"type":40,"tag":52,"props":430,"children":431},{},[432],{"type":45,"value":433},"external operators, application owners, and AI\nagents who need to bridge a socket-oriented application onto a\nBlueField DPU without rewriting the application against the DOCA\nprogramming surface",{"type":45,"value":435},". Concretely:",{"type":40,"tag":166,"props":437,"children":438},{},[439,453,465,481],{"type":40,"tag":170,"props":440,"children":441},{},[442,444,452],{"type":45,"value":443},"A platform owner with an existing host service that speaks a\nsocket protocol to a peer and wants the peer to live on the\nBlueField instead — without porting the host service onto\n",{"type":40,"tag":60,"props":445,"children":446},{"href":143},[447],{"type":40,"tag":65,"props":448,"children":450},{"className":449},[],[451],{"type":45,"value":150},{"type":45,"value":215},{"type":40,"tag":170,"props":454,"children":455},{},[456,458,463],{"type":45,"value":457},"A migration engineer evaluating the relay as the ",{"type":40,"tag":108,"props":459,"children":460},{},[461],{"type":45,"value":462},"first",{"type":45,"value":464}," step of\na phased move onto DOCA, with the comch \u002F RDMA \u002F Ethernet\nrewrite reserved for a later phase.",{"type":40,"tag":170,"props":466,"children":467},{},[468,470,480],{"type":45,"value":469},"An SRE \u002F platform operator deploying the relay as a service\ncontainer on the BlueField via the runtime contract documented\nin ",{"type":40,"tag":60,"props":471,"children":473},{"href":472},"..\u002F..\u002Fdoca-container-deployment\u002FSKILL.md",[474],{"type":40,"tag":65,"props":475,"children":477},{"className":476},[],[478],{"type":45,"value":479},"doca-container-deployment",{"type":45,"value":215},{"type":40,"tag":170,"props":482,"children":483},{},[484,486,491],{"type":45,"value":485},"An AI agent answering ",{"type":40,"tag":108,"props":487,"children":488},{},[489],{"type":45,"value":490},"\"my host app cannot reach the DPU on the\nsocket I configured — what do I check\"",{"type":45,"value":492}," with the relay's layered\nerror surface as the diagnosis ladder.",{"type":40,"tag":48,"props":494,"children":495},{},[496,498,503,505,509,511,515,517,525,527,537],{"type":45,"value":497},"It is ",{"type":40,"tag":52,"props":499,"children":500},{},[501],{"type":45,"value":502},"not",{"type":45,"value":504}," for users debugging the Socket Relay binary itself,\n",{"type":40,"tag":52,"props":506,"children":507},{},[508],{"type":45,"value":502},{"type":45,"value":510}," a substitute for the live public DOCA Socket Relay guide,\nand ",{"type":40,"tag":52,"props":512,"children":513},{},[514],{"type":45,"value":502},{"type":45,"value":516}," the right place for users learning the comch\nprogramming API or for users doing line-rate raw-packet I\u002FO. Those\naudiences belong in ",{"type":40,"tag":60,"props":518,"children":519},{"href":143},[520],{"type":40,"tag":65,"props":521,"children":523},{"className":522},[],[524],{"type":45,"value":150},{"type":45,"value":526},"\nand ",{"type":40,"tag":60,"props":528,"children":530},{"href":529},"..\u002F..\u002Flibs\u002Fdoca-eth\u002FSKILL.md",[531],{"type":40,"tag":65,"props":532,"children":534},{"className":533},[],[535],{"type":45,"value":536},"doca-eth",{"type":45,"value":538}," respectively.",{"type":40,"tag":48,"props":540,"children":541},{},[542,544,552,554,560,562,568],{"type":45,"value":543},"The Socket Relay is shipped as a documented DOCA artifact on\ninstalls that include it; depending on the operator's deployment\nshape, it can be invoked as a CLI on the host or BlueField Arm, or\ndeployed as a service container on the BlueField via the\ndocumented kubelet-standalone runtime in\n",{"type":40,"tag":60,"props":545,"children":546},{"href":472},[547],{"type":40,"tag":65,"props":548,"children":550},{"className":549},[],[551],{"type":45,"value":479},{"type":45,"value":553},".\nThe skill uses the same ",{"type":40,"tag":65,"props":555,"children":557},{"className":556},[],[558],{"type":45,"value":559},"kind: tool",{"type":45,"value":561}," three-file shape as the\nrest of the bundle so the agent's task-verb contract\n(",{"type":40,"tag":65,"props":563,"children":565},{"className":564},[],[566],{"type":45,"value":567},"configure \u002F build \u002F modify \u002F run \u002F test \u002F debug",{"type":45,"value":569},") is uniform\nacross libraries, services, and tools.",{"type":40,"tag":154,"props":571,"children":573},{"id":572},"when-to-load-this-skill",[574],{"type":45,"value":575},"When to load this skill",{"type":40,"tag":48,"props":577,"children":578},{},[579],{"type":45,"value":580},"Load this skill when the user is — or the agent needs to — drive\nthe DOCA Socket Relay on a real host or BlueField Arm with DOCA\ninstalled (or inside the public NGC DOCA container with the right\ndevice passthrough). Concretely:",{"type":40,"tag":166,"props":582,"children":583},{},[584,589,594,599,604,630],{"type":40,"tag":170,"props":585,"children":586},{},[587],{"type":45,"value":588},"Migrating a socket-based application off a same-host peer onto\na BlueField-side terminator without rewriting the application.",{"type":40,"tag":170,"props":590,"children":591},{},[592],{"type":45,"value":593},"Picking the relay's deployment shape (in-process beside the app,\nsidecar process \u002F container, or a service container on the\nBlueField) for a specific environment.",{"type":40,"tag":170,"props":595,"children":596},{},[597],{"type":45,"value":598},"Configuring the host-side socket the relay binds and the DPU-side\nforwarding endpoint the relay points at, before any application\nclient tries to connect.",{"type":40,"tag":170,"props":600,"children":601},{},[602],{"type":45,"value":603},"Walking the bind → connect → round-trip → admit-fleet loop on a\nbrand-new relay deployment.",{"type":40,"tag":170,"props":605,"children":606},{},[607,609,614,616,621,623,628],{"type":45,"value":608},"Diagnosing a ",{"type":40,"tag":108,"props":610,"children":611},{},[612],{"type":45,"value":613},"\"host app cannot connect\"",{"type":45,"value":615},", ",{"type":40,"tag":108,"props":617,"children":618},{},[619],{"type":45,"value":620},"\"connection accepted\nbut no bytes flow\"",{"type":45,"value":622},", or ",{"type":40,"tag":108,"props":624,"children":625},{},[626],{"type":45,"value":627},"\"first round-trip works, the rest hang\"",{"type":45,"value":629},"\nsymptom against the relay's layered error surface.",{"type":40,"tag":170,"props":631,"children":632},{},[633],{"type":45,"value":634},"Cross-checking the relay's view against the host application\nside and the DPU-side terminator when the three appear to\ndisagree.",{"type":40,"tag":48,"props":636,"children":637},{},[638,640,644,646,656,658,666,667,675,677,685],{"type":45,"value":639},"Do ",{"type":40,"tag":52,"props":641,"children":642},{},[643],{"type":45,"value":502},{"type":45,"value":645}," load this skill for general DOCA orientation, the comch\nprogramming API, RDMA programming, line-rate raw packet I\u002FO, or\nDOCA install. For those, route to\n",{"type":40,"tag":60,"props":647,"children":649},{"href":648},"..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md",[650],{"type":40,"tag":65,"props":651,"children":653},{"className":652},[],[654],{"type":45,"value":655},"doca-public-knowledge-map",{"type":45,"value":657},",\n",{"type":40,"tag":60,"props":659,"children":660},{"href":143},[661],{"type":40,"tag":65,"props":662,"children":664},{"className":663},[],[665],{"type":45,"value":150},{"type":45,"value":657},{"type":40,"tag":60,"props":668,"children":669},{"href":529},[670],{"type":40,"tag":65,"props":671,"children":673},{"className":672},[],[674],{"type":45,"value":536},{"type":45,"value":676},", or\n",{"type":40,"tag":60,"props":678,"children":679},{"href":117},[680],{"type":40,"tag":65,"props":681,"children":683},{"className":682},[],[684],{"type":45,"value":124},{"type":45,"value":215},{"type":40,"tag":154,"props":687,"children":689},{"id":688},"what-this-skill-provides",[690],{"type":45,"value":691},"What this skill provides",{"type":40,"tag":48,"props":693,"children":694},{},[695,697,702],{"type":45,"value":696},"This is a ",{"type":40,"tag":52,"props":698,"children":699},{},[700],{"type":45,"value":701},"thin loader",{"type":45,"value":703},". Substantive material lives in two\ncompanion files:",{"type":40,"tag":166,"props":705,"children":706},{},[707,737],{"type":40,"tag":170,"props":708,"children":709},{},[710,715,717,725,727,735],{"type":40,"tag":65,"props":711,"children":713},{"className":712},[],[714],{"type":45,"value":98},{"type":45,"value":716}," — what the Socket Relay carries and changes:\nthe three-axis configuration model (deployment shape × socket\ntype \u002F protocol × forwarding endpoint), the read-only vs\nstate-changing operation split, the version-availability overlay\nthat redirects to ",{"type":40,"tag":60,"props":718,"children":719},{"href":408},[720],{"type":40,"tag":65,"props":721,"children":723},{"className":722},[],[724],{"type":45,"value":415},{"type":45,"value":726},",\nthe layered error taxonomy (tool-not-installed \u002F relay-not-bound\n\u002F host-app-not-connecting \u002F DPU-side-terminator-not-reachable \u002F\npermission \u002F version \u002F cross-cutting), the relay's role as the\ndata-plane counterpart to\n",{"type":40,"tag":60,"props":728,"children":729},{"href":143},[730],{"type":40,"tag":65,"props":731,"children":733},{"className":732},[],[734],{"type":45,"value":150},{"type":45,"value":736},", and the\nhigh-stakes safety policy that makes a misconfigured forwarding\nendpoint a silent data-path break.",{"type":40,"tag":170,"props":738,"children":739},{},[740,745,747,753,755,761,763,769,771,776,778,784,786,792,794,800,802,808,810,816,818,828],{"type":40,"tag":65,"props":741,"children":743},{"className":742},[],[744],{"type":45,"value":62},{"type":45,"value":746}," — step-by-step workflows for the in-scope task verbs:\n",{"type":40,"tag":65,"props":748,"children":750},{"className":749},[],[751],{"type":45,"value":752},"configure",{"type":45,"value":754}," (the three-axis decision + the precondition probe),\n",{"type":40,"tag":65,"props":756,"children":758},{"className":757},[],[759],{"type":45,"value":760},"build",{"type":45,"value":762}," (route to install — the relay is shipped pre-built),\n",{"type":40,"tag":65,"props":764,"children":766},{"className":765},[],[767],{"type":45,"value":768},"modify",{"type":45,"value":770}," (refuse — modify the ",{"type":40,"tag":108,"props":772,"children":773},{},[774],{"type":45,"value":775},"invocation \u002F deployment",{"type":45,"value":777},", not the\nbinary), ",{"type":40,"tag":65,"props":779,"children":781},{"className":780},[],[782],{"type":45,"value":783},"run",{"type":45,"value":785}," (the bind → connect → round-trip flow), ",{"type":40,"tag":65,"props":787,"children":789},{"className":788},[],[790],{"type":45,"value":791},"test",{"type":45,"value":793},"\n(the smoke-before-bulk eval loop), ",{"type":40,"tag":65,"props":795,"children":797},{"className":796},[],[798],{"type":45,"value":799},"debug",{"type":45,"value":801}," (the layered\ndiagnosis ladder), plus a ",{"type":40,"tag":65,"props":803,"children":805},{"className":804},[],[806],{"type":45,"value":807},"Deferred task verbs",{"type":45,"value":809}," block and a\n",{"type":40,"tag":65,"props":811,"children":813},{"className":812},[],[814],{"type":45,"value":815},"Command appendix",{"type":45,"value":817}," that honors the bundle's\n",{"type":40,"tag":60,"props":819,"children":821},{"href":820},"..\u002F..\u002Fdoca-structured-tools-contract\u002FSKILL.md",[822],{"type":40,"tag":65,"props":823,"children":825},{"className":824},[],[826],{"type":45,"value":827},"doca-structured-tools-contract",{"type":45,"value":829},"\npreamble.",{"type":40,"tag":48,"props":831,"children":832},{},[833],{"type":45,"value":834},"The skill assumes a host or BlueField where DOCA is already\ninstalled (or the public NGC DOCA container is running with the\nright device passthrough) and the operator has whatever privileges\nthe public DOCA Socket Relay guide requires for the chosen\ndeployment shape.",{"type":40,"tag":154,"props":836,"children":838},{"id":837},"what-this-skill-deliberately-does-not-ship",[839],{"type":45,"value":840},"What this skill deliberately does not ship",{"type":40,"tag":48,"props":842,"children":843},{},[844,846,851],{"type":45,"value":845},"This skill is ",{"type":40,"tag":52,"props":847,"children":848},{},[849],{"type":45,"value":850},"agent guidance",{"type":45,"value":852},", not a samples or scripts bundle.\nTo keep the boundary clean, it deliberately does not contain — and\npull requests should not add:",{"type":40,"tag":166,"props":854,"children":855},{},[856,882,892,902],{"type":40,"tag":170,"props":857,"children":858},{},[859,864,866,872,874,880],{"type":40,"tag":52,"props":860,"children":861},{},[862],{"type":45,"value":863},"Verbatim binary names, flag inventories, subcommand names,\nsocket-path defaults, port numbers, or output column names.",{"type":45,"value":865},"\nThe public DOCA Socket Relay guide on ",{"type":40,"tag":65,"props":867,"children":869},{"className":868},[],[870],{"type":45,"value":871},"docs.nvidia.com",{"type":45,"value":873}," and the\ninstalled ",{"type":40,"tag":65,"props":875,"children":877},{"className":876},[],[878],{"type":45,"value":879},"--help",{"type":45,"value":881}," on the user's version are the joint source\nof truth; copying them here pins the skill to one release and\nsilently rots when the relay evolves. The skill routes the agent\nat those sources instead.",{"type":40,"tag":170,"props":883,"children":884},{},[885,890],{"type":40,"tag":52,"props":886,"children":887},{},[888],{"type":45,"value":889},"Pre-baked example output.",{"type":45,"value":891}," Output is install-, version-, and\ndeployment-specific. A captured example will mislead an operator\non a different platform \u002F state.",{"type":40,"tag":170,"props":893,"children":894},{},[895,900],{"type":40,"tag":52,"props":896,"children":897},{},[898],{"type":45,"value":899},"Wrappers, parsers, or scripts",{"type":45,"value":901}," in any language that consume\nthe relay's output. The output format is documented; users who\nwant to script against it should read the live guide and write\nthe parser against their installed version.",{"type":40,"tag":170,"props":903,"children":904},{},[905,926,928,933],{"type":40,"tag":52,"props":906,"children":907},{},[908,910,916,918,924],{"type":45,"value":909},"A ",{"type":40,"tag":65,"props":911,"children":913},{"className":912},[],[914],{"type":45,"value":915},"samples\u002F",{"type":45,"value":917}," or ",{"type":40,"tag":65,"props":919,"children":921},{"className":920},[],[922],{"type":45,"value":923},"reference\u002F",{"type":45,"value":925}," subtree.",{"type":45,"value":927}," This is a thin loader\nfor a documented DOCA artifact; substantive material lives on\nthe public page and in ",{"type":40,"tag":65,"props":929,"children":931},{"className":930},[],[932],{"type":45,"value":879},{"type":45,"value":215},{"type":40,"tag":154,"props":935,"children":937},{"id":936},"loading-order",[938],{"type":45,"value":939},"Loading order",{"type":40,"tag":941,"props":942,"children":943},"ol",{},[944,957,970],{"type":40,"tag":170,"props":945,"children":946},{},[947,949,955],{"type":45,"value":948},"Read this ",{"type":40,"tag":65,"props":950,"children":952},{"className":951},[],[953],{"type":45,"value":954},"SKILL.md",{"type":45,"value":956}," first to confirm the user's question is in\nscope (the user wants to bridge a socket-based application onto\nthe DPU without rewriting it onto the DOCA programming surface,\nnot learn the comch \u002F eth \u002F RDMA APIs).",{"type":40,"tag":170,"props":958,"children":959},{},[960],{"type":40,"tag":52,"props":961,"children":962},{},[963,965,969],{"type":45,"value":964},"For what the relay carries, the three-axis configuration\nmodel, the read-only vs state-changing split, version\navailability, the layered error surface, observability, and\nsafety posture, see ",{"type":40,"tag":60,"props":966,"children":967},{"href":98},[968],{"type":45,"value":98},{"type":45,"value":215},{"type":40,"tag":170,"props":971,"children":972},{},[973],{"type":40,"tag":52,"props":974,"children":975},{},[976,978,983,984,989,990,995,996,1001,1002,1007,1008,1013,1015,1020,1022,1026],{"type":45,"value":977},"For the documented invocations and the smoke-before-bulk\nworkflow — ",{"type":40,"tag":65,"props":979,"children":981},{"className":980},[],[982],{"type":45,"value":752},{"type":45,"value":615},{"type":40,"tag":65,"props":985,"children":987},{"className":986},[],[988],{"type":45,"value":760},{"type":45,"value":615},{"type":40,"tag":65,"props":991,"children":993},{"className":992},[],[994],{"type":45,"value":768},{"type":45,"value":615},{"type":40,"tag":65,"props":997,"children":999},{"className":998},[],[1000],{"type":45,"value":783},{"type":45,"value":615},{"type":40,"tag":65,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":45,"value":791},{"type":45,"value":657},{"type":40,"tag":65,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":45,"value":799},{"type":45,"value":1014},", plus the ",{"type":40,"tag":65,"props":1016,"children":1018},{"className":1017},[],[1019],{"type":45,"value":815},{"type":45,"value":1021}," — see\n",{"type":40,"tag":60,"props":1023,"children":1024},{"href":62},[1025],{"type":45,"value":62},{"type":45,"value":215},{"type":40,"tag":154,"props":1028,"children":1030},{"id":1029},"related-skills",[1031],{"type":45,"value":1032},"Related skills",{"type":40,"tag":166,"props":1034,"children":1035},{},[1036,1077,1097,1110,1125,1149,1180,1203,1223],{"type":40,"tag":170,"props":1037,"children":1038},{},[1039,1047,1049,1054,1056,1061,1063,1068,1070,1075],{"type":40,"tag":60,"props":1040,"children":1041},{"href":143},[1042],{"type":40,"tag":65,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":45,"value":150},{"type":45,"value":1048}," — the host ↔ DPU\n",{"type":40,"tag":52,"props":1050,"children":1051},{},[1052],{"type":45,"value":1053},"control-plane",{"type":45,"value":1055}," primitive (PCIe-based message channel between a\nhost and a DPU process). The Socket Relay is the ",{"type":40,"tag":52,"props":1057,"children":1058},{},[1059],{"type":45,"value":1060},"data-plane",{"type":45,"value":1062},"\ncounterpart for socket-oriented applications: comch is what an\napplication uses to ",{"type":40,"tag":108,"props":1064,"children":1065},{},[1066],{"type":45,"value":1067},"coordinate",{"type":45,"value":1069}," across the host ↔ DPU boundary\nprogrammatically; the relay is what an application uses to\n",{"type":40,"tag":108,"props":1071,"children":1072},{},[1073],{"type":45,"value":1074},"carry",{"type":45,"value":1076}," socket-shaped bytes across that boundary without being\nrewritten. Pair the two when an application owner is migrating\nin stages — control plane first via comch, data plane via the\nrelay until a per-library rewrite is justified.",{"type":40,"tag":170,"props":1078,"children":1079},{},[1080,1088,1090,1095],{"type":40,"tag":60,"props":1081,"children":1082},{"href":529},[1083],{"type":40,"tag":65,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":45,"value":536},{"type":45,"value":1089}," — the line-rate raw\npacket I\u002FO surface that sits ",{"type":40,"tag":108,"props":1091,"children":1092},{},[1093],{"type":45,"value":1094},"below",{"type":45,"value":1096}," the socket level. The relay\npresents a socket-shaped interface to the application and rides\nthe underlying DOCA fabric; doca-eth is the right answer when\nthe application can be rewritten to operate on packets directly\nrather than sockets, and when the throughput \u002F latency profile\nthe relay achieves is no longer sufficient.",{"type":40,"tag":170,"props":1098,"children":1099},{},[1100,1108],{"type":40,"tag":60,"props":1101,"children":1102},{"href":472},[1103],{"type":40,"tag":65,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":45,"value":479},{"type":45,"value":1109},"\n— the BlueField service-runtime contract (kubelet standalone +\nstatic-pod manifests + per-service config-file mount). Load this\nalongside the present skill when the operator's chosen\ndeployment shape is a relay container running on the BlueField\nrather than a host-side process; the runtime contract there owns\nthe pod-spec \u002F image-pull \u002F static-pod \u002F liveness pieces, this\nskill owns the relay-specific config.",{"type":40,"tag":170,"props":1111,"children":1112},{},[1113,1123],{"type":40,"tag":60,"props":1114,"children":1116},{"href":1115},"..\u002Fdoca-comm-channel-admin\u002FSKILL.md",[1117],{"type":40,"tag":65,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":45,"value":1122},"doca-comm-channel-admin",{"type":45,"value":1124},"\n— the operator-side admin CLI for comch channels. The\nlist → inspect → decide pattern there is the same shape the\nSocket Relay uses for its own state: read-only inspection first,\nstate-changing operations gated on a clean smoke. Both tools are\nmembers of the same family and the same patterns apply.",{"type":40,"tag":170,"props":1126,"children":1127},{},[1128,1136,1138,1148],{"type":40,"tag":60,"props":1129,"children":1130},{"href":648},[1131],{"type":40,"tag":65,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":45,"value":655},{"type":45,"value":1137},"\n— routing to the public DOCA Socket Relay guide and the rest of\nthe public DOCA documentation set. The canonical URL is reached\nvia ",{"type":40,"tag":60,"props":1139,"children":1141},{"href":1140},"..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md#doca-tools",[1142],{"type":40,"tag":65,"props":1143,"children":1145},{"className":1144},[],[1146],{"type":45,"value":1147},"doca-public-knowledge-map ## DOCA tools",{"type":45,"value":215},{"type":40,"tag":170,"props":1150,"children":1151},{},[1152,1160,1162,1168,1170,1178],{"type":40,"tag":60,"props":1153,"children":1154},{"href":408},[1155],{"type":40,"tag":65,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":45,"value":415},{"type":45,"value":1161}," — canonical DOCA\nversion-handling rules. The ",{"type":40,"tag":65,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":45,"value":1167},"## Version compatibility",{"type":45,"value":1169}," section\nin ",{"type":40,"tag":60,"props":1171,"children":1172},{"href":98},[1173],{"type":40,"tag":65,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":45,"value":98},{"type":45,"value":1179}," is a concise overlay\nthat redirects here for the body.",{"type":40,"tag":170,"props":1181,"children":1182},{},[1183,1191,1193,1201],{"type":40,"tag":60,"props":1184,"children":1185},{"href":820},[1186],{"type":40,"tag":65,"props":1187,"children":1189},{"className":1188},[],[1190],{"type":45,"value":827},{"type":45,"value":1192},"\n— the bundle's detect → prefer → fall back → report contract for\nstructured helper tools. The Command appendix in\n",{"type":40,"tag":60,"props":1194,"children":1195},{"href":62},[1196],{"type":40,"tag":65,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":45,"value":62},{"type":45,"value":1202}," honors this contract.",{"type":40,"tag":170,"props":1204,"children":1205},{},[1206,1214,1216,1221],{"type":40,"tag":60,"props":1207,"children":1208},{"href":117},[1209],{"type":40,"tag":65,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":45,"value":124},{"type":45,"value":1215}," — env preparation,\ninstall verification, representor visibility checks, and the ",{"type":40,"tag":108,"props":1217,"children":1218},{},[1219],{"type":45,"value":1220},"I\nhave no install yet",{"type":45,"value":1222}," path with the public NGC DOCA container.\nThis skill assumes its preconditions are satisfied.",{"type":40,"tag":170,"props":1224,"children":1225},{},[1226,1236,1238,1243],{"type":40,"tag":60,"props":1227,"children":1229},{"href":1228},"..\u002F..\u002Fdoca-debug\u002FSKILL.md",[1230],{"type":40,"tag":65,"props":1231,"children":1233},{"className":1232},[],[1234],{"type":45,"value":1235},"doca-debug",{"type":45,"value":1237}," — the cross-cutting\ndebug ladder. The Socket Relay slots in at the ",{"type":40,"tag":108,"props":1239,"children":1240},{},[1241],{"type":45,"value":1242},"runtime",{"type":45,"value":1244}," layer\nas a data-path bridge whose layered error surface escalates to\nthe cross-cutting ladder when the cause is below DOCA.",{"items":1246,"total":1350},[1247,1264,1278,1292,1304,1321,1336],{"slug":1248,"name":1248,"fn":1249,"description":1250,"org":1251,"tags":1252,"stars":20,"repoUrl":21,"updatedAt":1263},"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},[1253,1256,1259,1260],{"name":1254,"slug":1255,"type":15},"Data Analysis","data-analysis",{"name":1257,"slug":1258,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1261,"slug":1262,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1265,"name":1265,"fn":1266,"description":1267,"org":1268,"tags":1269,"stars":20,"repoUrl":21,"updatedAt":1277},"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},[1270,1273,1276],{"name":1271,"slug":1272,"type":15},"Deployment","deployment",{"name":1274,"slug":1275,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1279,"name":1279,"fn":1280,"description":1281,"org":1282,"tags":1283,"stars":20,"repoUrl":21,"updatedAt":1291},"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},[1284,1287,1288],{"name":1285,"slug":1286,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1289,"slug":1290,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1293,"name":1293,"fn":1294,"description":1295,"org":1296,"tags":1297,"stars":20,"repoUrl":21,"updatedAt":1303},"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},[1298,1299,1300],{"name":1254,"slug":1255,"type":15},{"name":9,"slug":8,"type":15},{"name":1301,"slug":1302,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":1305,"name":1305,"fn":1306,"description":1307,"org":1308,"tags":1309,"stars":20,"repoUrl":21,"updatedAt":1320},"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},[1310,1313,1316,1317],{"name":1311,"slug":1312,"type":15},"Automation","automation",{"name":1314,"slug":1315,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1318,"slug":1319,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1322,"name":1322,"fn":1323,"description":1324,"org":1325,"tags":1326,"stars":20,"repoUrl":21,"updatedAt":1335},"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},[1327,1328,1331,1332],{"name":1271,"slug":1272,"type":15},{"name":1329,"slug":1330,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1333,"slug":1334,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1337,"name":1337,"fn":1338,"description":1339,"org":1340,"tags":1341,"stars":20,"repoUrl":21,"updatedAt":1349},"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},[1342,1343,1346],{"name":9,"slug":8,"type":15},{"name":1344,"slug":1345,"type":15},"Quantum Computing","quantum-computing",{"name":1347,"slug":1348,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":1352,"total":1503},[1353,1371,1387,1398,1410,1424,1437,1451,1462,1471,1485,1494],{"slug":1354,"name":1354,"fn":1355,"description":1356,"org":1357,"tags":1358,"stars":1368,"repoUrl":1369,"updatedAt":1370},"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},[1359,1362,1365],{"name":1360,"slug":1361,"type":15},"Documentation","documentation",{"name":1363,"slug":1364,"type":15},"MCP","mcp",{"name":1366,"slug":1367,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":1372,"name":1372,"fn":1373,"description":1374,"org":1375,"tags":1376,"stars":1384,"repoUrl":1385,"updatedAt":1386},"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},[1377,1380,1381],{"name":1378,"slug":1379,"type":15},"Containers","containers",{"name":1271,"slug":1272,"type":15},{"name":1382,"slug":1383,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":1388,"name":1388,"fn":1389,"description":1390,"org":1391,"tags":1392,"stars":1384,"repoUrl":1385,"updatedAt":1397},"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},[1393,1396],{"name":1394,"slug":1395,"type":15},"CI\u002FCD","ci-cd",{"name":1271,"slug":1272,"type":15},"2026-07-14T05:25:59.97109",{"slug":1399,"name":1399,"fn":1400,"description":1401,"org":1402,"tags":1403,"stars":1384,"repoUrl":1385,"updatedAt":1409},"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},[1404,1405,1406],{"name":1394,"slug":1395,"type":15},{"name":1271,"slug":1272,"type":15},{"name":1407,"slug":1408,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":1411,"name":1411,"fn":1412,"description":1413,"org":1414,"tags":1415,"stars":1384,"repoUrl":1385,"updatedAt":1423},"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},[1416,1419,1420],{"name":1417,"slug":1418,"type":15},"Debugging","debugging",{"name":1407,"slug":1408,"type":15},{"name":1421,"slug":1422,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":1425,"name":1425,"fn":1426,"description":1427,"org":1428,"tags":1429,"stars":1384,"repoUrl":1385,"updatedAt":1436},"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},[1430,1433],{"name":1431,"slug":1432,"type":15},"Best Practices","best-practices",{"name":1434,"slug":1435,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":1438,"name":1438,"fn":1439,"description":1440,"org":1441,"tags":1442,"stars":1384,"repoUrl":1385,"updatedAt":1450},"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},[1443,1446,1449],{"name":1444,"slug":1445,"type":15},"Machine Learning","machine-learning",{"name":1447,"slug":1448,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":1452,"name":1452,"fn":1453,"description":1454,"org":1455,"tags":1456,"stars":1384,"repoUrl":1385,"updatedAt":1461},"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},[1457,1460],{"name":1458,"slug":1459,"type":15},"QA","qa",{"name":1301,"slug":1302,"type":15},"2026-07-14T05:25:53.673039",{"slug":1463,"name":1463,"fn":1464,"description":1465,"org":1466,"tags":1467,"stars":1384,"repoUrl":1385,"updatedAt":1470},"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},[1468,1469],{"name":1271,"slug":1272,"type":15},{"name":1274,"slug":1275,"type":15},"2026-07-14T05:25:49.362534",{"slug":1472,"name":1472,"fn":1473,"description":1474,"org":1475,"tags":1476,"stars":1384,"repoUrl":1385,"updatedAt":1484},"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},[1477,1480,1481],{"name":1478,"slug":1479,"type":15},"Code Review","code-review",{"name":1407,"slug":1408,"type":15},{"name":1482,"slug":1483,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":1486,"name":1486,"fn":1487,"description":1488,"org":1489,"tags":1490,"stars":1384,"repoUrl":1385,"updatedAt":1493},"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},[1491,1492],{"name":1458,"slug":1459,"type":15},{"name":1301,"slug":1302,"type":15},"2026-07-14T05:25:54.928983",{"slug":1495,"name":1495,"fn":1496,"description":1497,"org":1498,"tags":1499,"stars":1384,"repoUrl":1385,"updatedAt":1502},"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},[1500,1501],{"name":1311,"slug":1312,"type":15},{"name":1394,"slug":1395,"type":15},"2026-07-30T05:29:03.275638",496]