[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-doca-verbs":3,"mdc-w5g87q-key":31,"related-repo-nvidia-doca-verbs":1880,"related-org-nvidia-doca-verbs":1986},{"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-verbs","manage raw-verbs in NVIDIA DOCA","Use this skill when the user is dropping below the higher-level DOCA libraries (doca-rdma \u002F doca-eth \u002F doca-rmax) into the raw-verbs escape hatch — managing QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F AH \u002F CC-group \u002F Ethernet-SQ-RQ primitives inside DOCA Core, porting libibverbs code into the DOCA Core model, capability-querying a specific verb \u002F opcode \u002F WR flag \u002F QP attribute via doca_verbs_query_device, or debugging DOCA_ERROR_* from doca_verbs_* calls. Trigger even when the user does not say \"doca-verbs\" — implicit phrasings include \"raw QP attribute the task API doesn't expose\", \"keep my ibv_* code next to doca_* on the same QP\", \"IO_FAILED on WR submit\", \"QP state transition rejected\", \"attach a congestion- control group\", or \"porting my libibverbs code\". The skill's first job is to route MOST users back UP to the higher-level library. Refuse and route elsewhere for general doca-rdma \u002F doca-eth \u002F doca-rmax workloads, DOCA install, Core internals, and general libibverbs theory — 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},"Hardware","hardware","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:07.908674","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-verbs","---\nlicense: Apache-2.0\nname: doca-verbs\ndescription: >\n  Use this skill when the user is dropping below the higher-level DOCA\n  libraries (doca-rdma \u002F doca-eth \u002F doca-rmax) into the raw-verbs escape\n  hatch — managing QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F AH \u002F CC-group \u002F Ethernet-SQ-RQ\n  primitives inside DOCA Core, porting libibverbs code into the DOCA Core\n  model, capability-querying a specific verb \u002F opcode \u002F WR flag \u002F QP\n  attribute via doca_verbs_query_device, or debugging DOCA_ERROR_* from\n  doca_verbs_* calls. Trigger even when the user does not say \"doca-verbs\"\n  — implicit phrasings include \"raw QP attribute the task API doesn't\n  expose\", \"keep my ibv_* code next to doca_* on the same QP\", \"IO_FAILED\n  on WR submit\", \"QP state transition rejected\", \"attach a congestion-\n  control group\", or \"porting my libibverbs code\". The skill's first job\n  is to route MOST users back UP to the higher-level library. Refuse and\n  route elsewhere for general doca-rdma \u002F doca-eth \u002F doca-rmax workloads,\n  DOCA install, Core internals, and general libibverbs theory — those\n  belong to other skills.\nmetadata:\n  kind: library\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 or ConnectX NIC attached.\n  Reads the user's local install via `pkg-config doca-verbs` (experimental\n  ABI tier — symbols may shift between releases) and inspects\n  \u002Fopt\u002Fmellanox\u002Fdoca\u002F{lib,include,samples,applications}. The verbs headers\n  (doca_verbs.h + adjacent doca_verbs_*.h family) are the authoritative\n  symbol surface per headers-win-over-docs.\n---\n\n# DOCA Verbs\n\n## STOP — most RDMA tasks do NOT belong here\n\nIf the task is general RDMA **data movement** (send \u002F receive \u002F read \u002F\nwrite \u002F atomic between endpoints) and the user did **not** name a\nspecific raw QP \u002F CQ \u002F work-request \u002F SRQ \u002F Address-Handle attribute\nthat the higher-level API genuinely cannot express, this skill is\n**out of scope**. Route to [`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md) and\nfollow its non-negotiable: the deliverable **links `libdoca_rdma` and\ncalls `doca_rdma_*`**.\n\nLoading this raw-verbs skill is **never** a license to hand-roll\n`libibverbs` \u002F `librdmacm`. \"Raw verbs is fewer lines\" or \"the high-level\nbinding is more work\" is **not** a reason. A general-RDMA deliverable\nwhose `ldd` shows no `libdoca_rdma` is a **failed task** — exactly the\nsame rule [`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md) enforces. Raw `doca_verbs_*`\nis in scope only for the narrow attribute-level needs enumerated below;\neverything else climbs back up to the matching higher-level library.\n\n**Where to start:** This skill is the **raw-verbs escape hatch\nbeneath the higher-level DOCA libraries** ([`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md)\nfor RDMA workloads, [`doca-eth`](..\u002Fdoca-eth\u002FSKILL.md) for Ethernet\nqueues, [`doca-rmax`](..\u002Fdoca-rmax\u002FSKILL.md) for timing-precise\nmedia). The agent's first job, before anything else, is to confirm\nthe user actually needs to drop down — most users do not, and the\nright answer is almost always *\"stay in the higher-level library\"*.\nOpen [`CAPABILITIES.md`](CAPABILITIES.md) when the question is\n*what does the verbs surface actually expose and where is the\nboundary with vanilla libibverbs*; open [`TASKS.md`](TASKS.md) when\nthe user has *already confirmed* they need raw verbs and wants the\nconfigure \u002F build \u002F modify \u002F run \u002F test \u002F debug workflow for them.\nIf the user has not installed DOCA yet, route to\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) first.\n\n## The decision this skill exists to gate\n\nThe single load-bearing decision every conversation that loads this\nskill must make, FIRST, before any code-level discussion:\n\n1. **Has the user confirmed that the matching higher-level DOCA\n   library does not expose the semantic they need?** If no — stop\n   here, route back to the matching higher-level library:\n   [`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md) for general RDMA work\n   (Send \u002F Receive \u002F Read \u002F Write \u002F Atomic \u002F Sync-Event task\n   patterns); [`doca-eth`](..\u002Fdoca-eth\u002FSKILL.md) for Ethernet TX \u002F\n   RX queue patterns; [`doca-rmax`](..\u002Fdoca-rmax\u002FSKILL.md) for\n   timing-precise media \u002F data-over-IP streaming. The most common\n   baseline-agent failure for raw verbs is recommending them\n   *unnecessarily* because the user said the word \"verbs\" or \"QP\"\n   without checking whether the higher-level surface already covers\n   their case.\n2. **Is the semantic the user needs a specific verb \u002F opcode \u002F\n   work-request flag \u002F QP attribute \u002F SRQ option that the matching\n   higher-level library genuinely does not expose?** Examples: a\n   specific raw WR flag the `doca_rdma_task_*` abstractions do not\n   surface; custom completion-queue handling beyond what the DOCA\n   progress engine exposes; an esoteric QP attribute (path MTU,\n   PSN tuning, ECE attributes); explicit SRQ control; congestion-\n   control group (`doca_verbs_cc_group_*`) attachment to QPs;\n   Address-Handle attribute tuning (DGID \u002F DLID \u002F SL \u002F SGID index \u002F\n   hop limit \u002F traffic class \u002F UDP source port). If yes — this\n   skill is in scope.\n3. **Is the user porting existing libibverbs code into the DOCA\n   Core model?** This skill is in scope, AND the agent must teach\n   the porting path (replace libibverbs handles with `doca_verbs_*`\n   handles, integrate with the DOCA Core lifecycle through\n   `doca_verbs_context_create`, drive completions via the DOCA\n   progress engine instead of polling CQ directly) rather than\n   recommend a mechanical 1:1 textual replacement.\n\nIf none of (1)-(3) apply, the answer to *\"should I use\n`doca-verbs`?\"* is **no**. Route the user back to the matching\nhigher-level DOCA library. This is by design: a correctly-loaded\nraw-verbs skill that talks the user *out* of raw verbs is doing its\njob.\n\n## Example questions this skill answers well\n\nThe CLASSES of raw-verbs questions this skill is built to answer,\neach with one worked example. The agent should treat the *class* as\nthe load-bearing piece — the worked example is a single instance.\n\n- **\"Should I drop to `doca-verbs` for this?\"** — worked example:\n  *\"I want to set a specific raw work-request flag and the\n  `doca_rdma_task_*` abstraction does not expose it\"*. Answered by\n  the path-selection rule in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  higher-level-vs-doca-verbs table + the *climb back up* step in\n  [`TASKS.md ## configure`](TASKS.md#configure).\n- **\"How is `doca-verbs` different from `libibverbs`?\"** — worked\n  example: *\"I have existing `ibv_*` code; can I just keep using\n  it and call `doca_*` next to it?\"*. Answered by the\n  libibverbs-vs-doca-verbs boundary rule in\n  [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)\n  + the porting workflow in\n  [`TASKS.md ## modify`](TASKS.md#modify).\n- **\"Is this raw verb \u002F opcode \u002F QP option \u002F SRQ feature\n  supported on my device + DOCA version?\"** — worked example:\n  *\"does this device advertise the QP feature my raw WR needs\"*.\n  Answered by the capability-query rule\n  (`doca_verbs_query_device` + the\n  `doca_verbs_device_attr_get_*` family) in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  + the discovery step in\n  [`TASKS.md ## configure`](TASKS.md#configure).\n- **\"I'm porting libibverbs code into the DOCA Core model — what\n  does the agent walk me through?\"** — worked example: *\"I have a\n  small libibverbs sender\u002Freceiver that uses `IBV_SEND_INLINE` on\n  a custom QP attribute, and I want it to live inside a DOCA Core\n  context\"*. Answered by the porting overlay in\n  [`TASKS.md ## modify`](TASKS.md#modify) +\n  [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)\n  no-mixing rule.\n- **\"What does this `DOCA_ERROR_*` from a raw-verbs call mean?\"** —\n  worked example: *\"`DOCA_ERROR_IO_FAILED` from a WR submission —\n  what do I look at?\"*. Answered by the verbs overlay on the\n  cross-library taxonomy in\n  [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)\n  (which sends the agent to inspect the completion-queue entry,\n  not the submit return value) + the layered ladder in\n  [`TASKS.md ## debug`](TASKS.md#debug).\n- **\"When do I climb back up from `doca-verbs` to the matching\n  higher-level library?\"** — worked example: *\"my raw-verbs\n  prototype works; do I keep it or refactor onto `doca-rdma`?\"*.\n  Answered by the climb-back rule in\n  [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)\n  (raw verbs is a *targeted* surface, not a default; once the\n  specific need is covered, the higher-level surface is the\n  long-term home).\n\n## Audience\n\nThis skill serves **external developers building applications that\nconsume the DOCA Verbs library** — i.e., users whose code calls\n`doca_verbs_*` (directly in C\u002FC++, or through FFI\u002Fbindings from\nanother language) for raw QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F Address-Handle\n\u002F Ethernet-SQ \u002F Ethernet-RQ control inside a DOCA Core context. It\nis *not* for NVIDIA developers contributing to DOCA Verbs itself,\nand it is *not* the right entry point for general DOCA RDMA \u002F Eth\n\u002F RMAX work — that belongs in the matching higher-level library\nskill.\n\n## Language scope\n\nDOCA Verbs ships as a C library with `pkg-config` module name\n`doca-verbs`. The public headers live under the installed DOCA\ninfrastructure tree\n(`$(pkg-config --variable=includedir doca-common) doca_verbs.h` and the\nadjacent `doca_verbs_*.h` family); per the\nheaders-win-over-docs rule in\n[`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md), the headers on the\nuser's install are the authoritative truth for the live symbol\nsurface. C and C++ consumers are the canonical case; the worked\nexamples in `TASKS.md` assume that path. Other-language consumers\n(Rust, Go, Python, …) consume the same `*.so` through FFI or\nlanguage-specific bindings; the skill's contribution in that case\nis to keep the *drop-down decision*, *libibverbs boundary*,\n*cap-query rule*, *lifecycle in verbs terms*, and *error-handling\nrule* language-neutral, and to route the agent to the public C ABI\nas the authoritative surface that any wrapper will eventually\ncall.\n\n## When to load this skill\n\nLoad this skill ONLY after the user (or the agent on the user's\nbehalf) has confirmed the matching higher-level DOCA library does\nnot expose the semantic they need. Concretely:\n\n- The user explicitly asks *\"do I need to drop to `doca-verbs` for\n  this?\"* — load this skill to answer, but expect the answer to be\n  *\"no, stay in the higher-level library\"* unless the user can\n  name the specific verb \u002F opcode \u002F option the higher-level library\n  does not surface.\n- The user wants a specific raw WR flag, raw QP option, SRQ\n  feature, custom CQ-handling pattern, or congestion-control group\n  attachment that the higher-level library does not expose.\n- The user is porting existing libibverbs code into the DOCA Core\n  model and needs the integration path (lifecycle, progress engine,\n  no-mixing rule).\n- A `DOCA_ERROR_*` returned from a `doca_verbs_*` call needs\n  diagnosis — including the IO_FAILED case where the answer lives\n  on the completion-queue entry, not the submit return.\n- Designing or extending non-C bindings (Rust, Go, Python, …) that\n  wrap the verbs C ABI — for the boundary, lifecycle, and\n  cap-query rules the wrapper must honor.\n\nDo **not** load this skill for: general DOCA RDMA work (use\n[`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md)); general DOCA Ethernet\nqueueing (use [`doca-eth`](..\u002Fdoca-eth\u002FSKILL.md)); timing-precise\nmedia \u002F data-over-IP streaming (use\n[`doca-rmax`](..\u002Fdoca-rmax\u002FSKILL.md)); use cases a different\nhigher-level DOCA library covers ([`doca-flow`](..\u002Fdoca-flow\u002FSKILL.md)\nfor steering, the storage-transport library for NVMe-oF — routed via\n[`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md));\ninstall of DOCA itself (use\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md)); or general DOCA\norientation (use\n[`doca-public-knowledge-map`](..\u002F..\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 raw-verbs\nmaterial lives in two companion files:\n\n- `CAPABILITIES.md` — what `doca-verbs` can express on this\n  version: the higher-level-library-vs-doca-verbs selection table,\n  the libibverbs-vs-doca-verbs boundary, the verbs object model\n  (`doca_verbs_context` + QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F\n  Address-Handle \u002F Completion-Channel \u002F Ethernet-SQ \u002F Ethernet-RQ \u002F\n  CC-group) inside DOCA Core, the capability-query surface\n  (`doca_verbs_query_device` + `doca_verbs_device_attr_get_*`),\n  the raw-verbs error taxonomy (mapped onto the cross-library\n  `DOCA_ERROR_*` set, with the IO_FAILED → completion-queue-entry\n  overlay), the observability surface (DOCA progress engine vs\n  manual CQ polling vs comp-channel event delivery), and the\n  safety policy that gates the no-mixing-with-libibverbs rule.\n- `TASKS.md` — step-by-step workflows for the six in-scope verbs:\n  `configure`, `build`, `modify`, `run`, `test`, `debug`. Plus a\n  `Deferred task verbs` block that points out-of-scope questions\n  at the right next skill. Every workflow assumes the drop-down\n  decision in this `SKILL.md` has already been made; the\n  `## configure` step always begins by re-confirming it.\n\nThe skill assumes a host or BlueField where DOCA is already\ninstalled at the standard location and the user has the privileges\ntheir public install profile expects (the RDMA stack on host with\nproper module loads, same as\n[`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md)). It does not cover\ninstalling DOCA — that path goes through\n[`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md).\n\n## What this skill deliberately does not ship\n\nThis skill is **agent guidance**, not a samples or templates\nbundle. To keep the boundary clean, it deliberately does not\ncontain — and pull requests should not add:\n\n- **Pre-written DOCA Verbs application source code, in any\n  language.** The verified verbs source code is the shipped C\n  samples on the user's install (path discoverable via `ls\n  \u002Fopt\u002Fmellanox\u002Fdoca\u002Fsamples\u002F`); the agent's job is to route the\n  user to those files and prescribe a minimum-diff modification on\n  them via the universal modify-a-sample workflow in\n  [`doca-programming-guide`](..\u002F..\u002Fdoca-programming-guide\u002FSKILL.md),\n  layered with the verbs-specific overrides in\n  [`TASKS.md ## modify`](TASKS.md#modify).\n- **Standalone build manifests** (`meson.build`, `CMakeLists.txt`,\n  `Cargo.toml`, …) parked inside the skill. The agent constructs\n  the build manifest *in the user's project directory* against the\n  user's installed DOCA, where `pkg-config --modversion doca-verbs`\n  is the source of truth.\n- **A `samples\u002F`, `bindings\u002F`, or `reference\u002F` subtree** of any\n  kind. A mock or incomplete artifact in this skill's tree, even\n  one labeled \"reference\", is misleading: users will read it as\n  buildable.\n- **A migration script from libibverbs to `doca-verbs`.** The\n  porting path is *judgment*, not a mechanical textual\n  replacement — see\n  [`TASKS.md ## modify`](TASKS.md#modify) for why.\n\n## Loading order\n\n1. Read this `SKILL.md` first to confirm the user's question is in\n   scope — i.e., to walk the drop-down decision above.\n2. **For the higher-level-library-vs-doca-verbs split, the\n   libibverbs-vs-doca-verbs boundary, the verbs object model,\n   capability discovery, error taxonomy, observability, and\n   safety policy, see [CAPABILITIES.md](CAPABILITIES.md).**\n3. **For step-by-step workflows — configure, build, modify, run,\n   test, debug — see [TASKS.md](TASKS.md).**\n\nBoth companion files cross-link to each other, the matching\nhigher-level libraries\n([`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md),\n[`doca-eth`](..\u002Fdoca-eth\u002FSKILL.md),\n[`doca-rmax`](..\u002Fdoca-rmax\u002FSKILL.md)) as the climb-back homes,\n[`doca-common`](..\u002Fdoca-common\u002FSKILL.md) for the foundation\nprimitives every verbs context rests on (`doca_dev` \u002F\n`doca_pe` \u002F `doca_ctx`),\n[`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md) for the canonical\nversion-handling rules, and\n[`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md)\nwhenever the right answer is \"look it up in the public docs or the\ninstalled package layout\" rather than \"verbs-specific guidance\".\n\n## Related skills\n\n- [`doca-rdma`](..\u002Fdoca-rdma\u002FSKILL.md) — the canonical higher-level\n  DOCA RDMA library and the home this skill routes most RDMA users\n  *back* to. Every conversation that loads `doca-verbs` for an\n  RDMA-class question should also have `doca-rdma` loaded so the\n  climb-back-up answer is immediate when the raw-verbs need turns\n  out to be coverable there.\n- [`doca-eth`](..\u002Fdoca-eth\u002FSKILL.md) — the canonical higher-level\n  DOCA Ethernet queue library. `doca-verbs` also exposes\n  Ethernet-side SQ \u002F RQ verbs (`doca_verbs_eth_sq_*`,\n  `doca_verbs_eth_rq_*`); when the user has confirmed the\n  higher-level `doca-eth` does not expose the option they need\n  (e.g., explicit TS-source-type tuning, plane-index pinning,\n  multi-pkt-send-WQE), this skill takes over.\n- [`doca-rmax`](..\u002Fdoca-rmax\u002FSKILL.md) — the canonical higher-level\n  DOCA Rivermax library for timing-precise media. Most Rivermax\n  cases should stay in `doca-rmax`; raw verbs is the escape hatch\n  for the rare media use case where the user needs a verb the\n  Rivermax integration does not expose.\n- [`doca-common`](..\u002Fdoca-common\u002FSKILL.md) — the foundation library\n  every DOCA context (including `doca_verbs_context`) rests on.\n  The `doca_dev` \u002F `doca_pe` \u002F `doca_ctx` primitives, the\n  capability-query rule against the active `doca_devinfo`, and\n  the lifecycle are owned there; this skill layers verbs-specific\n  patterns on top.\n- [`doca-public-knowledge-map`](..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md) —\n  the routing table for every public DOCA documentation source\n  and the on-disk layout of an installed DOCA package. The DOCA\n  Verbs public guide is listed there; this skill does not\n  duplicate the URL.\n- [`doca-setup`](..\u002F..\u002Fdoca-setup\u002FSKILL.md) — env preparation,\n  install verification, and the *I have no install yet* path\n  with the public NGC DOCA container. This skill assumes its\n  preconditions are satisfied.\n- [`doca-version`](..\u002F..\u002Fdoca-version\u002FSKILL.md) — canonical DOCA\n  version-handling rules. This skill's `## Version compatibility`\n  cross-links the four-way match rule (with `doca-verbs.pc` joining\n  the match set) and the cap-query-is-runtime-authority rule.\n- [`doca-structured-tools-contract`](..\u002F..\u002Fdoca-structured-tools-contract\u002FSKILL.md) —\n  the bundle's structured-tools precedence rule (detect \u002F prefer \u002F\n  fall back \u002F report). The Command appendix in\n  [TASKS.md](TASKS.md) honors this contract.\n- [`doca-programming-guide`](..\u002F..\u002Fdoca-programming-guide\u002FSKILL.md) —\n  general DOCA programming patterns shared by every library: the\n  canonical `pkg-config` + meson build pattern, the universal\n  modify-a-shipped-sample first-app workflow, the universal\n  lifecycle, the cross-library `DOCA_ERROR_*` taxonomy, and the\n  program-side debug order. This skill layers raw-verbs specifics\n  on top.\n- [`doca-debug`](..\u002F..\u002Fdoca-debug\u002FSKILL.md) — the cross-cutting\n  debug ladder (install \u002F version \u002F build \u002F link \u002F runtime \u002F\n  program \u002F driver). Raw-verbs-specific debug (completion-entry\n  inspection, no-mixing-with-libibverbs, lifecycle in verbs terms)\n  overlays on top of that ladder.\n- [`doca-hardware-safety`](..\u002F..\u002Fdoca-hardware-safety\u002FSKILL.md) —\n  the cross-cutting hardware-safety meta-policy this skill's\n  `## Safety policy` overlays.\n",{"data":32,"body":36},{"license":23,"name":4,"description":6,"metadata":33,"compatibility":35},{"kind":34},"library","Requires DOCA SDK installed at \u002Fopt\u002Fmellanox\u002Fdoca on Linux (Ubuntu 22.04\u002F24.04 or RHEL\u002FSLES) with a BlueField DPU or ConnectX NIC attached. Reads the user's local install via `pkg-config doca-verbs` (experimental ABI tier — symbols may shift between releases) and inspects \u002Fopt\u002Fmellanox\u002Fdoca\u002F{lib,include,samples,applications}. The verbs headers (doca_verbs.h + adjacent doca_verbs_*.h family) are the authoritative symbol surface per headers-win-over-docs.\n",{"type":37,"children":38},"root",[39,47,54,117,191,298,304,309,412,445,451,463,807,813,844,850,947,953,958,1021,1106,1112,1124,1250,1274,1280,1292,1445,1451,1492,1580,1586],{"type":40,"tag":41,"props":42,"children":43},"element","h1",{"id":4},[44],{"type":45,"value":46},"text","DOCA Verbs",{"type":40,"tag":48,"props":49,"children":51},"h2",{"id":50},"stop-most-rdma-tasks-do-not-belong-here",[52],{"type":45,"value":53},"STOP — most RDMA tasks do NOT belong here",{"type":40,"tag":55,"props":56,"children":57},"p",{},[58,60,66,68,73,75,80,82,94,96,115],{"type":45,"value":59},"If the task is general RDMA ",{"type":40,"tag":61,"props":62,"children":63},"strong",{},[64],{"type":45,"value":65},"data movement",{"type":45,"value":67}," (send \u002F receive \u002F read \u002F\nwrite \u002F atomic between endpoints) and the user did ",{"type":40,"tag":61,"props":69,"children":70},{},[71],{"type":45,"value":72},"not",{"type":45,"value":74}," name a\nspecific raw QP \u002F CQ \u002F work-request \u002F SRQ \u002F Address-Handle attribute\nthat the higher-level API genuinely cannot express, this skill is\n",{"type":40,"tag":61,"props":76,"children":77},{},[78],{"type":45,"value":79},"out of scope",{"type":45,"value":81},". Route to ",{"type":40,"tag":83,"props":84,"children":86},"a",{"href":85},"..\u002Fdoca-rdma\u002FSKILL.md",[87],{"type":40,"tag":88,"props":89,"children":91},"code",{"className":90},[],[92],{"type":45,"value":93},"doca-rdma",{"type":45,"value":95}," and\nfollow its non-negotiable: the deliverable ",{"type":40,"tag":61,"props":97,"children":98},{},[99,101,107,109],{"type":45,"value":100},"links ",{"type":40,"tag":88,"props":102,"children":104},{"className":103},[],[105],{"type":45,"value":106},"libdoca_rdma",{"type":45,"value":108}," and\ncalls ",{"type":40,"tag":88,"props":110,"children":112},{"className":111},[],[113],{"type":45,"value":114},"doca_rdma_*",{"type":45,"value":116},".",{"type":40,"tag":55,"props":118,"children":119},{},[120,122,127,129,135,137,143,145,149,151,157,159,164,166,171,173,181,183,189],{"type":45,"value":121},"Loading this raw-verbs skill is ",{"type":40,"tag":61,"props":123,"children":124},{},[125],{"type":45,"value":126},"never",{"type":45,"value":128}," a license to hand-roll\n",{"type":40,"tag":88,"props":130,"children":132},{"className":131},[],[133],{"type":45,"value":134},"libibverbs",{"type":45,"value":136}," \u002F ",{"type":40,"tag":88,"props":138,"children":140},{"className":139},[],[141],{"type":45,"value":142},"librdmacm",{"type":45,"value":144},". \"Raw verbs is fewer lines\" or \"the high-level\nbinding is more work\" is ",{"type":40,"tag":61,"props":146,"children":147},{},[148],{"type":45,"value":72},{"type":45,"value":150}," a reason. A general-RDMA deliverable\nwhose ",{"type":40,"tag":88,"props":152,"children":154},{"className":153},[],[155],{"type":45,"value":156},"ldd",{"type":45,"value":158}," shows no ",{"type":40,"tag":88,"props":160,"children":162},{"className":161},[],[163],{"type":45,"value":106},{"type":45,"value":165}," is a ",{"type":40,"tag":61,"props":167,"children":168},{},[169],{"type":45,"value":170},"failed task",{"type":45,"value":172}," — exactly the\nsame rule ",{"type":40,"tag":83,"props":174,"children":175},{"href":85},[176],{"type":40,"tag":88,"props":177,"children":179},{"className":178},[],[180],{"type":45,"value":93},{"type":45,"value":182}," enforces. Raw ",{"type":40,"tag":88,"props":184,"children":186},{"className":185},[],[187],{"type":45,"value":188},"doca_verbs_*",{"type":45,"value":190},"\nis in scope only for the narrow attribute-level needs enumerated below;\neverything else climbs back up to the matching higher-level library.",{"type":40,"tag":55,"props":192,"children":193},{},[194,199,201,206,208,216,218,228,230,240,242,248,250,259,261,266,268,277,279,284,286,296],{"type":40,"tag":61,"props":195,"children":196},{},[197],{"type":45,"value":198},"Where to start:",{"type":45,"value":200}," This skill is the ",{"type":40,"tag":61,"props":202,"children":203},{},[204],{"type":45,"value":205},"raw-verbs escape hatch\nbeneath the higher-level DOCA libraries",{"type":45,"value":207}," (",{"type":40,"tag":83,"props":209,"children":210},{"href":85},[211],{"type":40,"tag":88,"props":212,"children":214},{"className":213},[],[215],{"type":45,"value":93},{"type":45,"value":217},"\nfor RDMA workloads, ",{"type":40,"tag":83,"props":219,"children":221},{"href":220},"..\u002Fdoca-eth\u002FSKILL.md",[222],{"type":40,"tag":88,"props":223,"children":225},{"className":224},[],[226],{"type":45,"value":227},"doca-eth",{"type":45,"value":229}," for Ethernet\nqueues, ",{"type":40,"tag":83,"props":231,"children":233},{"href":232},"..\u002Fdoca-rmax\u002FSKILL.md",[234],{"type":40,"tag":88,"props":235,"children":237},{"className":236},[],[238],{"type":45,"value":239},"doca-rmax",{"type":45,"value":241}," for timing-precise\nmedia). The agent's first job, before anything else, is to confirm\nthe user actually needs to drop down — most users do not, and the\nright answer is almost always ",{"type":40,"tag":243,"props":244,"children":245},"em",{},[246],{"type":45,"value":247},"\"stay in the higher-level library\"",{"type":45,"value":249},".\nOpen ",{"type":40,"tag":83,"props":251,"children":253},{"href":252},"CAPABILITIES.md",[254],{"type":40,"tag":88,"props":255,"children":257},{"className":256},[],[258],{"type":45,"value":252},{"type":45,"value":260}," when the question is\n",{"type":40,"tag":243,"props":262,"children":263},{},[264],{"type":45,"value":265},"what does the verbs surface actually expose and where is the\nboundary with vanilla libibverbs",{"type":45,"value":267},"; open ",{"type":40,"tag":83,"props":269,"children":271},{"href":270},"TASKS.md",[272],{"type":40,"tag":88,"props":273,"children":275},{"className":274},[],[276],{"type":45,"value":270},{"type":45,"value":278}," when\nthe user has ",{"type":40,"tag":243,"props":280,"children":281},{},[282],{"type":45,"value":283},"already confirmed",{"type":45,"value":285}," they need raw verbs and wants the\nconfigure \u002F build \u002F modify \u002F run \u002F test \u002F debug workflow for them.\nIf the user has not installed DOCA yet, route to\n",{"type":40,"tag":83,"props":287,"children":289},{"href":288},"..\u002F..\u002Fdoca-setup\u002FSKILL.md",[290],{"type":40,"tag":88,"props":291,"children":293},{"className":292},[],[294],{"type":45,"value":295},"doca-setup",{"type":45,"value":297}," first.",{"type":40,"tag":48,"props":299,"children":301},{"id":300},"the-decision-this-skill-exists-to-gate",[302],{"type":45,"value":303},"The decision this skill exists to gate",{"type":40,"tag":55,"props":305,"children":306},{},[307],{"type":45,"value":308},"The single load-bearing decision every conversation that loads this\nskill must make, FIRST, before any code-level discussion:",{"type":40,"tag":310,"props":311,"children":312},"ol",{},[313,361,387],{"type":40,"tag":314,"props":315,"children":316},"li",{},[317,322,324,332,334,342,344,352,354,359],{"type":40,"tag":61,"props":318,"children":319},{},[320],{"type":45,"value":321},"Has the user confirmed that the matching higher-level DOCA\nlibrary does not expose the semantic they need?",{"type":45,"value":323}," If no — stop\nhere, route back to the matching higher-level library:\n",{"type":40,"tag":83,"props":325,"children":326},{"href":85},[327],{"type":40,"tag":88,"props":328,"children":330},{"className":329},[],[331],{"type":45,"value":93},{"type":45,"value":333}," for general RDMA work\n(Send \u002F Receive \u002F Read \u002F Write \u002F Atomic \u002F Sync-Event task\npatterns); ",{"type":40,"tag":83,"props":335,"children":336},{"href":220},[337],{"type":40,"tag":88,"props":338,"children":340},{"className":339},[],[341],{"type":45,"value":227},{"type":45,"value":343}," for Ethernet TX \u002F\nRX queue patterns; ",{"type":40,"tag":83,"props":345,"children":346},{"href":232},[347],{"type":40,"tag":88,"props":348,"children":350},{"className":349},[],[351],{"type":45,"value":239},{"type":45,"value":353}," for\ntiming-precise media \u002F data-over-IP streaming. The most common\nbaseline-agent failure for raw verbs is recommending them\n",{"type":40,"tag":243,"props":355,"children":356},{},[357],{"type":45,"value":358},"unnecessarily",{"type":45,"value":360}," because the user said the word \"verbs\" or \"QP\"\nwithout checking whether the higher-level surface already covers\ntheir case.",{"type":40,"tag":314,"props":362,"children":363},{},[364,369,371,377,379,385],{"type":40,"tag":61,"props":365,"children":366},{},[367],{"type":45,"value":368},"Is the semantic the user needs a specific verb \u002F opcode \u002F\nwork-request flag \u002F QP attribute \u002F SRQ option that the matching\nhigher-level library genuinely does not expose?",{"type":45,"value":370}," Examples: a\nspecific raw WR flag the ",{"type":40,"tag":88,"props":372,"children":374},{"className":373},[],[375],{"type":45,"value":376},"doca_rdma_task_*",{"type":45,"value":378}," abstractions do not\nsurface; custom completion-queue handling beyond what the DOCA\nprogress engine exposes; an esoteric QP attribute (path MTU,\nPSN tuning, ECE attributes); explicit SRQ control; congestion-\ncontrol group (",{"type":40,"tag":88,"props":380,"children":382},{"className":381},[],[383],{"type":45,"value":384},"doca_verbs_cc_group_*",{"type":45,"value":386},") attachment to QPs;\nAddress-Handle attribute tuning (DGID \u002F DLID \u002F SL \u002F SGID index \u002F\nhop limit \u002F traffic class \u002F UDP source port). If yes — this\nskill is in scope.",{"type":40,"tag":314,"props":388,"children":389},{},[390,395,397,402,404,410],{"type":40,"tag":61,"props":391,"children":392},{},[393],{"type":45,"value":394},"Is the user porting existing libibverbs code into the DOCA\nCore model?",{"type":45,"value":396}," This skill is in scope, AND the agent must teach\nthe porting path (replace libibverbs handles with ",{"type":40,"tag":88,"props":398,"children":400},{"className":399},[],[401],{"type":45,"value":188},{"type":45,"value":403},"\nhandles, integrate with the DOCA Core lifecycle through\n",{"type":40,"tag":88,"props":405,"children":407},{"className":406},[],[408],{"type":45,"value":409},"doca_verbs_context_create",{"type":45,"value":411},", drive completions via the DOCA\nprogress engine instead of polling CQ directly) rather than\nrecommend a mechanical 1:1 textual replacement.",{"type":40,"tag":55,"props":413,"children":414},{},[415,417,429,431,436,438,443],{"type":45,"value":416},"If none of (1)-(3) apply, the answer to ",{"type":40,"tag":243,"props":418,"children":419},{},[420,422,427],{"type":45,"value":421},"\"should I use\n",{"type":40,"tag":88,"props":423,"children":425},{"className":424},[],[426],{"type":45,"value":4},{"type":45,"value":428},"?\"",{"type":45,"value":430}," is ",{"type":40,"tag":61,"props":432,"children":433},{},[434],{"type":45,"value":435},"no",{"type":45,"value":437},". Route the user back to the matching\nhigher-level DOCA library. This is by design: a correctly-loaded\nraw-verbs skill that talks the user ",{"type":40,"tag":243,"props":439,"children":440},{},[441],{"type":45,"value":442},"out",{"type":45,"value":444}," of raw verbs is doing its\njob.",{"type":40,"tag":48,"props":446,"children":448},{"id":447},"example-questions-this-skill-answers-well",[449],{"type":45,"value":450},"Example questions this skill answers well",{"type":40,"tag":55,"props":452,"children":453},{},[454,456,461],{"type":45,"value":455},"The CLASSES of raw-verbs questions this skill is built to answer,\neach with one worked example. The agent should treat the ",{"type":40,"tag":243,"props":457,"children":458},{},[459],{"type":45,"value":460},"class",{"type":45,"value":462}," as\nthe load-bearing piece — the worked example is a single instance.",{"type":40,"tag":464,"props":465,"children":466},"ul",{},[467,528,603,660,705,761],{"type":40,"tag":314,"props":468,"children":469},{},[470,482,484,496,498,508,510,515,517,527],{"type":40,"tag":61,"props":471,"children":472},{},[473,475,480],{"type":45,"value":474},"\"Should I drop to ",{"type":40,"tag":88,"props":476,"children":478},{"className":477},[],[479],{"type":45,"value":4},{"type":45,"value":481}," for this?\"",{"type":45,"value":483}," — worked example:\n",{"type":40,"tag":243,"props":485,"children":486},{},[487,489,494],{"type":45,"value":488},"\"I want to set a specific raw work-request flag and the\n",{"type":40,"tag":88,"props":490,"children":492},{"className":491},[],[493],{"type":45,"value":376},{"type":45,"value":495}," abstraction does not expose it\"",{"type":45,"value":497},". Answered by\nthe path-selection rule in\n",{"type":40,"tag":83,"props":499,"children":501},{"href":500},"CAPABILITIES.md#capabilities-and-modes",[502],{"type":40,"tag":88,"props":503,"children":505},{"className":504},[],[506],{"type":45,"value":507},"CAPABILITIES.md ## Capabilities and modes",{"type":45,"value":509},"\nhigher-level-vs-doca-verbs table + the ",{"type":40,"tag":243,"props":511,"children":512},{},[513],{"type":45,"value":514},"climb back up",{"type":45,"value":516}," step in\n",{"type":40,"tag":83,"props":518,"children":520},{"href":519},"TASKS.md#configure",[521],{"type":40,"tag":88,"props":522,"children":524},{"className":523},[],[525],{"type":45,"value":526},"TASKS.md ## configure",{"type":45,"value":116},{"type":40,"tag":314,"props":529,"children":530},{},[531,549,551,572,574,584],{"type":40,"tag":61,"props":532,"children":533},{},[534,536,541,543,548],{"type":45,"value":535},"\"How is ",{"type":40,"tag":88,"props":537,"children":539},{"className":538},[],[540],{"type":45,"value":4},{"type":45,"value":542}," different from ",{"type":40,"tag":88,"props":544,"children":546},{"className":545},[],[547],{"type":45,"value":134},{"type":45,"value":428},{"type":45,"value":550}," — worked\nexample: ",{"type":40,"tag":243,"props":552,"children":553},{},[554,556,562,564,570],{"type":45,"value":555},"\"I have existing ",{"type":40,"tag":88,"props":557,"children":559},{"className":558},[],[560],{"type":45,"value":561},"ibv_*",{"type":45,"value":563}," code; can I just keep using\nit and call ",{"type":40,"tag":88,"props":565,"children":567},{"className":566},[],[568],{"type":45,"value":569},"doca_*",{"type":45,"value":571}," next to it?\"",{"type":45,"value":573},". Answered by the\nlibibverbs-vs-doca-verbs boundary rule in\n",{"type":40,"tag":83,"props":575,"children":577},{"href":576},"CAPABILITIES.md#safety-policy",[578],{"type":40,"tag":88,"props":579,"children":581},{"className":580},[],[582],{"type":45,"value":583},"CAPABILITIES.md ## Safety policy",{"type":40,"tag":464,"props":585,"children":586},{},[587],{"type":40,"tag":314,"props":588,"children":589},{},[590,592,602],{"type":45,"value":591},"the porting workflow in\n",{"type":40,"tag":83,"props":593,"children":595},{"href":594},"TASKS.md#modify",[596],{"type":40,"tag":88,"props":597,"children":599},{"className":598},[],[600],{"type":45,"value":601},"TASKS.md ## modify",{"type":45,"value":116},{"type":40,"tag":314,"props":604,"children":605},{},[606,611,612,617,619,625,627,633,635,643],{"type":40,"tag":61,"props":607,"children":608},{},[609],{"type":45,"value":610},"\"Is this raw verb \u002F opcode \u002F QP option \u002F SRQ feature\nsupported on my device + DOCA version?\"",{"type":45,"value":483},{"type":40,"tag":243,"props":613,"children":614},{},[615],{"type":45,"value":616},"\"does this device advertise the QP feature my raw WR needs\"",{"type":45,"value":618},".\nAnswered by the capability-query rule\n(",{"type":40,"tag":88,"props":620,"children":622},{"className":621},[],[623],{"type":45,"value":624},"doca_verbs_query_device",{"type":45,"value":626}," + the\n",{"type":40,"tag":88,"props":628,"children":630},{"className":629},[],[631],{"type":45,"value":632},"doca_verbs_device_attr_get_*",{"type":45,"value":634}," family) in\n",{"type":40,"tag":83,"props":636,"children":637},{"href":500},[638],{"type":40,"tag":88,"props":639,"children":641},{"className":640},[],[642],{"type":45,"value":507},{"type":40,"tag":464,"props":644,"children":645},{},[646],{"type":40,"tag":314,"props":647,"children":648},{},[649,651,659],{"type":45,"value":650},"the discovery step in\n",{"type":40,"tag":83,"props":652,"children":653},{"href":519},[654],{"type":40,"tag":88,"props":655,"children":657},{"className":656},[],[658],{"type":45,"value":526},{"type":45,"value":116},{"type":40,"tag":314,"props":661,"children":662},{},[663,668,670,683,685,693,695,703],{"type":40,"tag":61,"props":664,"children":665},{},[666],{"type":45,"value":667},"\"I'm porting libibverbs code into the DOCA Core model — what\ndoes the agent walk me through?\"",{"type":45,"value":669}," — worked example: ",{"type":40,"tag":243,"props":671,"children":672},{},[673,675,681],{"type":45,"value":674},"\"I have a\nsmall libibverbs sender\u002Freceiver that uses ",{"type":40,"tag":88,"props":676,"children":678},{"className":677},[],[679],{"type":45,"value":680},"IBV_SEND_INLINE",{"type":45,"value":682}," on\na custom QP attribute, and I want it to live inside a DOCA Core\ncontext\"",{"type":45,"value":684},". Answered by the porting overlay in\n",{"type":40,"tag":83,"props":686,"children":687},{"href":594},[688],{"type":40,"tag":88,"props":689,"children":691},{"className":690},[],[692],{"type":45,"value":601},{"type":45,"value":694}," +\n",{"type":40,"tag":83,"props":696,"children":697},{"href":576},[698],{"type":40,"tag":88,"props":699,"children":701},{"className":700},[],[702],{"type":45,"value":583},{"type":45,"value":704},"\nno-mixing rule.",{"type":40,"tag":314,"props":706,"children":707},{},[708,721,723,736,738,748,750,760],{"type":40,"tag":61,"props":709,"children":710},{},[711,713,719],{"type":45,"value":712},"\"What does this ",{"type":40,"tag":88,"props":714,"children":716},{"className":715},[],[717],{"type":45,"value":718},"DOCA_ERROR_*",{"type":45,"value":720}," from a raw-verbs call mean?\"",{"type":45,"value":722}," —\nworked example: ",{"type":40,"tag":243,"props":724,"children":725},{},[726,728,734],{"type":45,"value":727},"\"",{"type":40,"tag":88,"props":729,"children":731},{"className":730},[],[732],{"type":45,"value":733},"DOCA_ERROR_IO_FAILED",{"type":45,"value":735}," from a WR submission —\nwhat do I look at?\"",{"type":45,"value":737},". Answered by the verbs overlay on the\ncross-library taxonomy in\n",{"type":40,"tag":83,"props":739,"children":741},{"href":740},"CAPABILITIES.md#error-taxonomy",[742],{"type":40,"tag":88,"props":743,"children":745},{"className":744},[],[746],{"type":45,"value":747},"CAPABILITIES.md ## Error taxonomy",{"type":45,"value":749},"\n(which sends the agent to inspect the completion-queue entry,\nnot the submit return value) + the layered ladder in\n",{"type":40,"tag":83,"props":751,"children":753},{"href":752},"TASKS.md#debug",[754],{"type":40,"tag":88,"props":755,"children":757},{"className":756},[],[758],{"type":45,"value":759},"TASKS.md ## debug",{"type":45,"value":116},{"type":40,"tag":314,"props":762,"children":763},{},[764,776,777,788,790,798,800,805],{"type":40,"tag":61,"props":765,"children":766},{},[767,769,774],{"type":45,"value":768},"\"When do I climb back up from ",{"type":40,"tag":88,"props":770,"children":772},{"className":771},[],[773],{"type":45,"value":4},{"type":45,"value":775}," to the matching\nhigher-level library?\"",{"type":45,"value":669},{"type":40,"tag":243,"props":778,"children":779},{},[780,782,787],{"type":45,"value":781},"\"my raw-verbs\nprototype works; do I keep it or refactor onto ",{"type":40,"tag":88,"props":783,"children":785},{"className":784},[],[786],{"type":45,"value":93},{"type":45,"value":428},{"type":45,"value":789},".\nAnswered by the climb-back rule in\n",{"type":40,"tag":83,"props":791,"children":792},{"href":500},[793],{"type":40,"tag":88,"props":794,"children":796},{"className":795},[],[797],{"type":45,"value":507},{"type":45,"value":799},"\n(raw verbs is a ",{"type":40,"tag":243,"props":801,"children":802},{},[803],{"type":45,"value":804},"targeted",{"type":45,"value":806}," surface, not a default; once the\nspecific need is covered, the higher-level surface is the\nlong-term home).",{"type":40,"tag":48,"props":808,"children":810},{"id":809},"audience",[811],{"type":45,"value":812},"Audience",{"type":40,"tag":55,"props":814,"children":815},{},[816,818,823,825,830,832,836,838,842],{"type":45,"value":817},"This skill serves ",{"type":40,"tag":61,"props":819,"children":820},{},[821],{"type":45,"value":822},"external developers building applications that\nconsume the DOCA Verbs library",{"type":45,"value":824}," — i.e., users whose code calls\n",{"type":40,"tag":88,"props":826,"children":828},{"className":827},[],[829],{"type":45,"value":188},{"type":45,"value":831}," (directly in C\u002FC++, or through FFI\u002Fbindings from\nanother language) for raw QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F Address-Handle\n\u002F Ethernet-SQ \u002F Ethernet-RQ control inside a DOCA Core context. It\nis ",{"type":40,"tag":243,"props":833,"children":834},{},[835],{"type":45,"value":72},{"type":45,"value":837}," for NVIDIA developers contributing to DOCA Verbs itself,\nand it is ",{"type":40,"tag":243,"props":839,"children":840},{},[841],{"type":45,"value":72},{"type":45,"value":843}," the right entry point for general DOCA RDMA \u002F Eth\n\u002F RMAX work — that belongs in the matching higher-level library\nskill.",{"type":40,"tag":48,"props":845,"children":847},{"id":846},"language-scope",[848],{"type":45,"value":849},"Language scope",{"type":40,"tag":55,"props":851,"children":852},{},[853,855,861,863,868,870,876,878,884,886,896,898,903,905,911,913,918,920,925,927,932,933,938,940,945],{"type":45,"value":854},"DOCA Verbs ships as a C library with ",{"type":40,"tag":88,"props":856,"children":858},{"className":857},[],[859],{"type":45,"value":860},"pkg-config",{"type":45,"value":862}," module name\n",{"type":40,"tag":88,"props":864,"children":866},{"className":865},[],[867],{"type":45,"value":4},{"type":45,"value":869},". The public headers live under the installed DOCA\ninfrastructure tree\n(",{"type":40,"tag":88,"props":871,"children":873},{"className":872},[],[874],{"type":45,"value":875},"$(pkg-config --variable=includedir doca-common) doca_verbs.h",{"type":45,"value":877}," and the\nadjacent ",{"type":40,"tag":88,"props":879,"children":881},{"className":880},[],[882],{"type":45,"value":883},"doca_verbs_*.h",{"type":45,"value":885}," family); per the\nheaders-win-over-docs rule in\n",{"type":40,"tag":83,"props":887,"children":889},{"href":888},"..\u002F..\u002Fdoca-version\u002FSKILL.md",[890],{"type":40,"tag":88,"props":891,"children":893},{"className":892},[],[894],{"type":45,"value":895},"doca-version",{"type":45,"value":897},", the headers on the\nuser's install are the authoritative truth for the live symbol\nsurface. C and C++ consumers are the canonical case; the worked\nexamples in ",{"type":40,"tag":88,"props":899,"children":901},{"className":900},[],[902],{"type":45,"value":270},{"type":45,"value":904}," assume that path. Other-language consumers\n(Rust, Go, Python, …) consume the same ",{"type":40,"tag":88,"props":906,"children":908},{"className":907},[],[909],{"type":45,"value":910},"*.so",{"type":45,"value":912}," through FFI or\nlanguage-specific bindings; the skill's contribution in that case\nis to keep the ",{"type":40,"tag":243,"props":914,"children":915},{},[916],{"type":45,"value":917},"drop-down decision",{"type":45,"value":919},", ",{"type":40,"tag":243,"props":921,"children":922},{},[923],{"type":45,"value":924},"libibverbs boundary",{"type":45,"value":926},",\n",{"type":40,"tag":243,"props":928,"children":929},{},[930],{"type":45,"value":931},"cap-query rule",{"type":45,"value":919},{"type":40,"tag":243,"props":934,"children":935},{},[936],{"type":45,"value":937},"lifecycle in verbs terms",{"type":45,"value":939},", and ",{"type":40,"tag":243,"props":941,"children":942},{},[943],{"type":45,"value":944},"error-handling\nrule",{"type":45,"value":946}," language-neutral, and to route the agent to the public C ABI\nas the authoritative surface that any wrapper will eventually\ncall.",{"type":40,"tag":48,"props":948,"children":950},{"id":949},"when-to-load-this-skill",[951],{"type":45,"value":952},"When to load this skill",{"type":40,"tag":55,"props":954,"children":955},{},[956],{"type":45,"value":957},"Load this skill ONLY after the user (or the agent on the user's\nbehalf) has confirmed the matching higher-level DOCA library does\nnot expose the semantic they need. Concretely:",{"type":40,"tag":464,"props":959,"children":960},{},[961,987,992,997,1016],{"type":40,"tag":314,"props":962,"children":963},{},[964,966,978,980,985],{"type":45,"value":965},"The user explicitly asks ",{"type":40,"tag":243,"props":967,"children":968},{},[969,971,976],{"type":45,"value":970},"\"do I need to drop to ",{"type":40,"tag":88,"props":972,"children":974},{"className":973},[],[975],{"type":45,"value":4},{"type":45,"value":977}," for\nthis?\"",{"type":45,"value":979}," — load this skill to answer, but expect the answer to be\n",{"type":40,"tag":243,"props":981,"children":982},{},[983],{"type":45,"value":984},"\"no, stay in the higher-level library\"",{"type":45,"value":986}," unless the user can\nname the specific verb \u002F opcode \u002F option the higher-level library\ndoes not surface.",{"type":40,"tag":314,"props":988,"children":989},{},[990],{"type":45,"value":991},"The user wants a specific raw WR flag, raw QP option, SRQ\nfeature, custom CQ-handling pattern, or congestion-control group\nattachment that the higher-level library does not expose.",{"type":40,"tag":314,"props":993,"children":994},{},[995],{"type":45,"value":996},"The user is porting existing libibverbs code into the DOCA Core\nmodel and needs the integration path (lifecycle, progress engine,\nno-mixing rule).",{"type":40,"tag":314,"props":998,"children":999},{},[1000,1002,1007,1009,1014],{"type":45,"value":1001},"A ",{"type":40,"tag":88,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":45,"value":718},{"type":45,"value":1008}," returned from a ",{"type":40,"tag":88,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":45,"value":188},{"type":45,"value":1015}," call needs\ndiagnosis — including the IO_FAILED case where the answer lives\non the completion-queue entry, not the submit return.",{"type":40,"tag":314,"props":1017,"children":1018},{},[1019],{"type":45,"value":1020},"Designing or extending non-C bindings (Rust, Go, Python, …) that\nwrap the verbs C ABI — for the boundary, lifecycle, and\ncap-query rules the wrapper must honor.",{"type":40,"tag":55,"props":1022,"children":1023},{},[1024,1026,1030,1032,1040,1042,1050,1052,1060,1062,1072,1074,1084,1086,1094,1096,1104],{"type":45,"value":1025},"Do ",{"type":40,"tag":61,"props":1027,"children":1028},{},[1029],{"type":45,"value":72},{"type":45,"value":1031}," load this skill for: general DOCA RDMA work (use\n",{"type":40,"tag":83,"props":1033,"children":1034},{"href":85},[1035],{"type":40,"tag":88,"props":1036,"children":1038},{"className":1037},[],[1039],{"type":45,"value":93},{"type":45,"value":1041},"); general DOCA Ethernet\nqueueing (use ",{"type":40,"tag":83,"props":1043,"children":1044},{"href":220},[1045],{"type":40,"tag":88,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":45,"value":227},{"type":45,"value":1051},"); timing-precise\nmedia \u002F data-over-IP streaming (use\n",{"type":40,"tag":83,"props":1053,"children":1054},{"href":232},[1055],{"type":40,"tag":88,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":45,"value":239},{"type":45,"value":1061},"); use cases a different\nhigher-level DOCA library covers (",{"type":40,"tag":83,"props":1063,"children":1065},{"href":1064},"..\u002Fdoca-flow\u002FSKILL.md",[1066],{"type":40,"tag":88,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":45,"value":1071},"doca-flow",{"type":45,"value":1073},"\nfor steering, the storage-transport library for NVMe-oF — routed via\n",{"type":40,"tag":83,"props":1075,"children":1077},{"href":1076},"..\u002F..\u002Fdoca-public-knowledge-map\u002FSKILL.md",[1078],{"type":40,"tag":88,"props":1079,"children":1081},{"className":1080},[],[1082],{"type":45,"value":1083},"doca-public-knowledge-map",{"type":45,"value":1085},");\ninstall of DOCA itself (use\n",{"type":40,"tag":83,"props":1087,"children":1088},{"href":288},[1089],{"type":40,"tag":88,"props":1090,"children":1092},{"className":1091},[],[1093],{"type":45,"value":295},{"type":45,"value":1095},"); or general DOCA\norientation (use\n",{"type":40,"tag":83,"props":1097,"children":1098},{"href":1076},[1099],{"type":40,"tag":88,"props":1100,"children":1102},{"className":1101},[],[1103],{"type":45,"value":1083},{"type":45,"value":1105},").",{"type":40,"tag":48,"props":1107,"children":1109},{"id":1108},"what-this-skill-provides",[1110],{"type":45,"value":1111},"What this skill provides",{"type":40,"tag":55,"props":1113,"children":1114},{},[1115,1117,1122],{"type":45,"value":1116},"This is a ",{"type":40,"tag":61,"props":1118,"children":1119},{},[1120],{"type":45,"value":1121},"thin loader",{"type":45,"value":1123},". The body keeps only the orientation\nneeded to pick the right next file. The substantive raw-verbs\nmaterial lives in two companion files:",{"type":40,"tag":464,"props":1125,"children":1126},{},[1127,1173],{"type":40,"tag":314,"props":1128,"children":1129},{},[1130,1135,1137,1142,1144,1150,1152,1157,1159,1164,1166,1171],{"type":40,"tag":88,"props":1131,"children":1133},{"className":1132},[],[1134],{"type":45,"value":252},{"type":45,"value":1136}," — what ",{"type":40,"tag":88,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":45,"value":4},{"type":45,"value":1143}," can express on this\nversion: the higher-level-library-vs-doca-verbs selection table,\nthe libibverbs-vs-doca-verbs boundary, the verbs object model\n(",{"type":40,"tag":88,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":45,"value":1149},"doca_verbs_context",{"type":45,"value":1151}," + QP \u002F CQ \u002F PD \u002F MR \u002F SRQ \u002F\nAddress-Handle \u002F Completion-Channel \u002F Ethernet-SQ \u002F Ethernet-RQ \u002F\nCC-group) inside DOCA Core, the capability-query surface\n(",{"type":40,"tag":88,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":45,"value":624},{"type":45,"value":1158}," + ",{"type":40,"tag":88,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":45,"value":632},{"type":45,"value":1165},"),\nthe raw-verbs error taxonomy (mapped onto the cross-library\n",{"type":40,"tag":88,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":45,"value":718},{"type":45,"value":1172}," set, with the IO_FAILED → completion-queue-entry\noverlay), the observability surface (DOCA progress engine vs\nmanual CQ polling vs comp-channel event delivery), and the\nsafety policy that gates the no-mixing-with-libibverbs rule.",{"type":40,"tag":314,"props":1174,"children":1175},{},[1176,1181,1183,1189,1190,1196,1197,1203,1204,1210,1211,1217,1218,1224,1226,1232,1234,1240,1242,1248],{"type":40,"tag":88,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":45,"value":270},{"type":45,"value":1182}," — step-by-step workflows for the six in-scope verbs:\n",{"type":40,"tag":88,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":45,"value":1188},"configure",{"type":45,"value":919},{"type":40,"tag":88,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":45,"value":1195},"build",{"type":45,"value":919},{"type":40,"tag":88,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":45,"value":1202},"modify",{"type":45,"value":919},{"type":40,"tag":88,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":45,"value":1209},"run",{"type":45,"value":919},{"type":40,"tag":88,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":45,"value":1216},"test",{"type":45,"value":919},{"type":40,"tag":88,"props":1219,"children":1221},{"className":1220},[],[1222],{"type":45,"value":1223},"debug",{"type":45,"value":1225},". Plus a\n",{"type":40,"tag":88,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":45,"value":1231},"Deferred task verbs",{"type":45,"value":1233}," block that points out-of-scope questions\nat the right next skill. Every workflow assumes the drop-down\ndecision in this ",{"type":40,"tag":88,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":45,"value":1239},"SKILL.md",{"type":45,"value":1241}," has already been made; the\n",{"type":40,"tag":88,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":45,"value":1247},"## configure",{"type":45,"value":1249}," step always begins by re-confirming it.",{"type":40,"tag":55,"props":1251,"children":1252},{},[1253,1255,1263,1265,1273],{"type":45,"value":1254},"The skill assumes a host or BlueField where DOCA is already\ninstalled at the standard location and the user has the privileges\ntheir public install profile expects (the RDMA stack on host with\nproper module loads, same as\n",{"type":40,"tag":83,"props":1256,"children":1257},{"href":85},[1258],{"type":40,"tag":88,"props":1259,"children":1261},{"className":1260},[],[1262],{"type":45,"value":93},{"type":45,"value":1264},"). It does not cover\ninstalling DOCA — that path goes through\n",{"type":40,"tag":83,"props":1266,"children":1267},{"href":288},[1268],{"type":40,"tag":88,"props":1269,"children":1271},{"className":1270},[],[1272],{"type":45,"value":295},{"type":45,"value":116},{"type":40,"tag":48,"props":1275,"children":1277},{"id":1276},"what-this-skill-deliberately-does-not-ship",[1278],{"type":45,"value":1279},"What this skill deliberately does not ship",{"type":40,"tag":55,"props":1281,"children":1282},{},[1283,1285,1290],{"type":45,"value":1284},"This skill is ",{"type":40,"tag":61,"props":1286,"children":1287},{},[1288],{"type":45,"value":1289},"agent guidance",{"type":45,"value":1291},", not a samples or templates\nbundle. To keep the boundary clean, it deliberately does not\ncontain — and pull requests should not add:",{"type":40,"tag":464,"props":1293,"children":1294},{},[1295,1334,1380,1412],{"type":40,"tag":314,"props":1296,"children":1297},{},[1298,1303,1305,1311,1313,1323,1325,1333],{"type":40,"tag":61,"props":1299,"children":1300},{},[1301],{"type":45,"value":1302},"Pre-written DOCA Verbs application source code, in any\nlanguage.",{"type":45,"value":1304}," The verified verbs source code is the shipped C\nsamples on the user's install (path discoverable via ",{"type":40,"tag":88,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":45,"value":1310},"ls \u002Fopt\u002Fmellanox\u002Fdoca\u002Fsamples\u002F",{"type":45,"value":1312},"); the agent's job is to route the\nuser to those files and prescribe a minimum-diff modification on\nthem via the universal modify-a-sample workflow in\n",{"type":40,"tag":83,"props":1314,"children":1316},{"href":1315},"..\u002F..\u002Fdoca-programming-guide\u002FSKILL.md",[1317],{"type":40,"tag":88,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":45,"value":1322},"doca-programming-guide",{"type":45,"value":1324},",\nlayered with the verbs-specific overrides in\n",{"type":40,"tag":83,"props":1326,"children":1327},{"href":594},[1328],{"type":40,"tag":88,"props":1329,"children":1331},{"className":1330},[],[1332],{"type":45,"value":601},{"type":45,"value":116},{"type":40,"tag":314,"props":1335,"children":1336},{},[1337,1342,1343,1349,1350,1356,1357,1363,1365,1370,1372,1378],{"type":40,"tag":61,"props":1338,"children":1339},{},[1340],{"type":45,"value":1341},"Standalone build manifests",{"type":45,"value":207},{"type":40,"tag":88,"props":1344,"children":1346},{"className":1345},[],[1347],{"type":45,"value":1348},"meson.build",{"type":45,"value":919},{"type":40,"tag":88,"props":1351,"children":1353},{"className":1352},[],[1354],{"type":45,"value":1355},"CMakeLists.txt",{"type":45,"value":926},{"type":40,"tag":88,"props":1358,"children":1360},{"className":1359},[],[1361],{"type":45,"value":1362},"Cargo.toml",{"type":45,"value":1364},", …) parked inside the skill. The agent constructs\nthe build manifest ",{"type":40,"tag":243,"props":1366,"children":1367},{},[1368],{"type":45,"value":1369},"in the user's project directory",{"type":45,"value":1371}," against the\nuser's installed DOCA, where ",{"type":40,"tag":88,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":45,"value":1377},"pkg-config --modversion doca-verbs",{"type":45,"value":1379},"\nis the source of truth.",{"type":40,"tag":314,"props":1381,"children":1382},{},[1383,1410],{"type":40,"tag":61,"props":1384,"children":1385},{},[1386,1387,1393,1394,1400,1402,1408],{"type":45,"value":1001},{"type":40,"tag":88,"props":1388,"children":1390},{"className":1389},[],[1391],{"type":45,"value":1392},"samples\u002F",{"type":45,"value":919},{"type":40,"tag":88,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":45,"value":1399},"bindings\u002F",{"type":45,"value":1401},", or ",{"type":40,"tag":88,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":45,"value":1407},"reference\u002F",{"type":45,"value":1409}," subtree",{"type":45,"value":1411}," of any\nkind. A mock or incomplete artifact in this skill's tree, even\none labeled \"reference\", is misleading: users will read it as\nbuildable.",{"type":40,"tag":314,"props":1413,"children":1414},{},[1415,1426,1428,1433,1435,1443],{"type":40,"tag":61,"props":1416,"children":1417},{},[1418,1420,1425],{"type":45,"value":1419},"A migration script from libibverbs to ",{"type":40,"tag":88,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":45,"value":4},{"type":45,"value":116},{"type":45,"value":1427}," The\nporting path is ",{"type":40,"tag":243,"props":1429,"children":1430},{},[1431],{"type":45,"value":1432},"judgment",{"type":45,"value":1434},", not a mechanical textual\nreplacement — see\n",{"type":40,"tag":83,"props":1436,"children":1437},{"href":594},[1438],{"type":40,"tag":88,"props":1439,"children":1441},{"className":1440},[],[1442],{"type":45,"value":601},{"type":45,"value":1444}," for why.",{"type":40,"tag":48,"props":1446,"children":1448},{"id":1447},"loading-order",[1449],{"type":45,"value":1450},"Loading order",{"type":40,"tag":310,"props":1452,"children":1453},{},[1454,1466,1479],{"type":40,"tag":314,"props":1455,"children":1456},{},[1457,1459,1464],{"type":45,"value":1458},"Read this ",{"type":40,"tag":88,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":45,"value":1239},{"type":45,"value":1465}," first to confirm the user's question is in\nscope — i.e., to walk the drop-down decision above.",{"type":40,"tag":314,"props":1467,"children":1468},{},[1469],{"type":40,"tag":61,"props":1470,"children":1471},{},[1472,1474,1478],{"type":45,"value":1473},"For the higher-level-library-vs-doca-verbs split, the\nlibibverbs-vs-doca-verbs boundary, the verbs object model,\ncapability discovery, error taxonomy, observability, and\nsafety policy, see ",{"type":40,"tag":83,"props":1475,"children":1476},{"href":252},[1477],{"type":45,"value":252},{"type":45,"value":116},{"type":40,"tag":314,"props":1480,"children":1481},{},[1482],{"type":40,"tag":61,"props":1483,"children":1484},{},[1485,1487,1491],{"type":45,"value":1486},"For step-by-step workflows — configure, build, modify, run,\ntest, debug — see ",{"type":40,"tag":83,"props":1488,"children":1489},{"href":270},[1490],{"type":45,"value":270},{"type":45,"value":116},{"type":40,"tag":55,"props":1493,"children":1494},{},[1495,1497,1505,1506,1514,1515,1523,1525,1535,1537,1543,1545,1551,1552,1558,1560,1568,1570,1578],{"type":45,"value":1496},"Both companion files cross-link to each other, the matching\nhigher-level libraries\n(",{"type":40,"tag":83,"props":1498,"children":1499},{"href":85},[1500],{"type":40,"tag":88,"props":1501,"children":1503},{"className":1502},[],[1504],{"type":45,"value":93},{"type":45,"value":926},{"type":40,"tag":83,"props":1507,"children":1508},{"href":220},[1509],{"type":40,"tag":88,"props":1510,"children":1512},{"className":1511},[],[1513],{"type":45,"value":227},{"type":45,"value":926},{"type":40,"tag":83,"props":1516,"children":1517},{"href":232},[1518],{"type":40,"tag":88,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":45,"value":239},{"type":45,"value":1524},") as the climb-back homes,\n",{"type":40,"tag":83,"props":1526,"children":1528},{"href":1527},"..\u002Fdoca-common\u002FSKILL.md",[1529],{"type":40,"tag":88,"props":1530,"children":1532},{"className":1531},[],[1533],{"type":45,"value":1534},"doca-common",{"type":45,"value":1536}," for the foundation\nprimitives every verbs context rests on (",{"type":40,"tag":88,"props":1538,"children":1540},{"className":1539},[],[1541],{"type":45,"value":1542},"doca_dev",{"type":45,"value":1544}," \u002F\n",{"type":40,"tag":88,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":45,"value":1550},"doca_pe",{"type":45,"value":136},{"type":40,"tag":88,"props":1553,"children":1555},{"className":1554},[],[1556],{"type":45,"value":1557},"doca_ctx",{"type":45,"value":1559},"),\n",{"type":40,"tag":83,"props":1561,"children":1562},{"href":888},[1563],{"type":40,"tag":88,"props":1564,"children":1566},{"className":1565},[],[1567],{"type":45,"value":895},{"type":45,"value":1569}," for the canonical\nversion-handling rules, and\n",{"type":40,"tag":83,"props":1571,"children":1572},{"href":1076},[1573],{"type":40,"tag":88,"props":1574,"children":1576},{"className":1575},[],[1577],{"type":45,"value":1083},{"type":45,"value":1579},"\nwhenever the right answer is \"look it up in the public docs or the\ninstalled package layout\" rather than \"verbs-specific guidance\".",{"type":40,"tag":48,"props":1581,"children":1583},{"id":1582},"related-skills",[1584],{"type":45,"value":1585},"Related skills",{"type":40,"tag":464,"props":1587,"children":1588},{},[1589,1623,1665,1685,1732,1745,1765,1794,1815,1842,1857],{"type":40,"tag":314,"props":1590,"children":1591},{},[1592,1600,1602,1607,1609,1614,1616,1621],{"type":40,"tag":83,"props":1593,"children":1594},{"href":85},[1595],{"type":40,"tag":88,"props":1596,"children":1598},{"className":1597},[],[1599],{"type":45,"value":93},{"type":45,"value":1601}," — the canonical higher-level\nDOCA RDMA library and the home this skill routes most RDMA users\n",{"type":40,"tag":243,"props":1603,"children":1604},{},[1605],{"type":45,"value":1606},"back",{"type":45,"value":1608}," to. Every conversation that loads ",{"type":40,"tag":88,"props":1610,"children":1612},{"className":1611},[],[1613],{"type":45,"value":4},{"type":45,"value":1615}," for an\nRDMA-class question should also have ",{"type":40,"tag":88,"props":1617,"children":1619},{"className":1618},[],[1620],{"type":45,"value":93},{"type":45,"value":1622}," loaded so the\nclimb-back-up answer is immediate when the raw-verbs need turns\nout to be coverable there.",{"type":40,"tag":314,"props":1624,"children":1625},{},[1626,1634,1636,1641,1643,1649,1650,1656,1658,1663],{"type":40,"tag":83,"props":1627,"children":1628},{"href":220},[1629],{"type":40,"tag":88,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":45,"value":227},{"type":45,"value":1635}," — the canonical higher-level\nDOCA Ethernet queue library. ",{"type":40,"tag":88,"props":1637,"children":1639},{"className":1638},[],[1640],{"type":45,"value":4},{"type":45,"value":1642}," also exposes\nEthernet-side SQ \u002F RQ verbs (",{"type":40,"tag":88,"props":1644,"children":1646},{"className":1645},[],[1647],{"type":45,"value":1648},"doca_verbs_eth_sq_*",{"type":45,"value":926},{"type":40,"tag":88,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":45,"value":1655},"doca_verbs_eth_rq_*",{"type":45,"value":1657},"); when the user has confirmed the\nhigher-level ",{"type":40,"tag":88,"props":1659,"children":1661},{"className":1660},[],[1662],{"type":45,"value":227},{"type":45,"value":1664}," does not expose the option they need\n(e.g., explicit TS-source-type tuning, plane-index pinning,\nmulti-pkt-send-WQE), this skill takes over.",{"type":40,"tag":314,"props":1666,"children":1667},{},[1668,1676,1678,1683],{"type":40,"tag":83,"props":1669,"children":1670},{"href":232},[1671],{"type":40,"tag":88,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":45,"value":239},{"type":45,"value":1677}," — the canonical higher-level\nDOCA Rivermax library for timing-precise media. Most Rivermax\ncases should stay in ",{"type":40,"tag":88,"props":1679,"children":1681},{"className":1680},[],[1682],{"type":45,"value":239},{"type":45,"value":1684},"; raw verbs is the escape hatch\nfor the rare media use case where the user needs a verb the\nRivermax integration does not expose.",{"type":40,"tag":314,"props":1686,"children":1687},{},[1688,1696,1698,1703,1705,1710,1711,1716,1717,1722,1724,1730],{"type":40,"tag":83,"props":1689,"children":1690},{"href":1527},[1691],{"type":40,"tag":88,"props":1692,"children":1694},{"className":1693},[],[1695],{"type":45,"value":1534},{"type":45,"value":1697}," — the foundation library\nevery DOCA context (including ",{"type":40,"tag":88,"props":1699,"children":1701},{"className":1700},[],[1702],{"type":45,"value":1149},{"type":45,"value":1704},") rests on.\nThe ",{"type":40,"tag":88,"props":1706,"children":1708},{"className":1707},[],[1709],{"type":45,"value":1542},{"type":45,"value":136},{"type":40,"tag":88,"props":1712,"children":1714},{"className":1713},[],[1715],{"type":45,"value":1550},{"type":45,"value":136},{"type":40,"tag":88,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":45,"value":1557},{"type":45,"value":1723}," primitives, the\ncapability-query rule against the active ",{"type":40,"tag":88,"props":1725,"children":1727},{"className":1726},[],[1728],{"type":45,"value":1729},"doca_devinfo",{"type":45,"value":1731},", and\nthe lifecycle are owned there; this skill layers verbs-specific\npatterns on top.",{"type":40,"tag":314,"props":1733,"children":1734},{},[1735,1743],{"type":40,"tag":83,"props":1736,"children":1737},{"href":1076},[1738],{"type":40,"tag":88,"props":1739,"children":1741},{"className":1740},[],[1742],{"type":45,"value":1083},{"type":45,"value":1744}," —\nthe routing table for every public DOCA documentation source\nand the on-disk layout of an installed DOCA package. The DOCA\nVerbs public guide is listed there; this skill does not\nduplicate the URL.",{"type":40,"tag":314,"props":1746,"children":1747},{},[1748,1756,1758,1763],{"type":40,"tag":83,"props":1749,"children":1750},{"href":288},[1751],{"type":40,"tag":88,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":45,"value":295},{"type":45,"value":1757}," — env preparation,\ninstall verification, and the ",{"type":40,"tag":243,"props":1759,"children":1760},{},[1761],{"type":45,"value":1762},"I have no install yet",{"type":45,"value":1764}," path\nwith the public NGC DOCA container. This skill assumes its\npreconditions are satisfied.",{"type":40,"tag":314,"props":1766,"children":1767},{},[1768,1776,1778,1784,1786,1792],{"type":40,"tag":83,"props":1769,"children":1770},{"href":888},[1771],{"type":40,"tag":88,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":45,"value":895},{"type":45,"value":1777}," — canonical DOCA\nversion-handling rules. This skill's ",{"type":40,"tag":88,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":45,"value":1783},"## Version compatibility",{"type":45,"value":1785},"\ncross-links the four-way match rule (with ",{"type":40,"tag":88,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":45,"value":1791},"doca-verbs.pc",{"type":45,"value":1793}," joining\nthe match set) and the cap-query-is-runtime-authority rule.",{"type":40,"tag":314,"props":1795,"children":1796},{},[1797,1807,1809,1813],{"type":40,"tag":83,"props":1798,"children":1800},{"href":1799},"..\u002F..\u002Fdoca-structured-tools-contract\u002FSKILL.md",[1801],{"type":40,"tag":88,"props":1802,"children":1804},{"className":1803},[],[1805],{"type":45,"value":1806},"doca-structured-tools-contract",{"type":45,"value":1808}," —\nthe bundle's structured-tools precedence rule (detect \u002F prefer \u002F\nfall back \u002F report). The Command appendix in\n",{"type":40,"tag":83,"props":1810,"children":1811},{"href":270},[1812],{"type":45,"value":270},{"type":45,"value":1814}," honors this contract.",{"type":40,"tag":314,"props":1816,"children":1817},{},[1818,1826,1828,1833,1835,1840],{"type":40,"tag":83,"props":1819,"children":1820},{"href":1315},[1821],{"type":40,"tag":88,"props":1822,"children":1824},{"className":1823},[],[1825],{"type":45,"value":1322},{"type":45,"value":1827}," —\ngeneral DOCA programming patterns shared by every library: the\ncanonical ",{"type":40,"tag":88,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":45,"value":860},{"type":45,"value":1834}," + meson build pattern, the universal\nmodify-a-shipped-sample first-app workflow, the universal\nlifecycle, the cross-library ",{"type":40,"tag":88,"props":1836,"children":1838},{"className":1837},[],[1839],{"type":45,"value":718},{"type":45,"value":1841}," taxonomy, and the\nprogram-side debug order. This skill layers raw-verbs specifics\non top.",{"type":40,"tag":314,"props":1843,"children":1844},{},[1845,1855],{"type":40,"tag":83,"props":1846,"children":1848},{"href":1847},"..\u002F..\u002Fdoca-debug\u002FSKILL.md",[1849],{"type":40,"tag":88,"props":1850,"children":1852},{"className":1851},[],[1853],{"type":45,"value":1854},"doca-debug",{"type":45,"value":1856}," — the cross-cutting\ndebug ladder (install \u002F version \u002F build \u002F link \u002F runtime \u002F\nprogram \u002F driver). Raw-verbs-specific debug (completion-entry\ninspection, no-mixing-with-libibverbs, lifecycle in verbs terms)\noverlays on top of that ladder.",{"type":40,"tag":314,"props":1858,"children":1859},{},[1860,1870,1872,1878],{"type":40,"tag":83,"props":1861,"children":1863},{"href":1862},"..\u002F..\u002Fdoca-hardware-safety\u002FSKILL.md",[1864],{"type":40,"tag":88,"props":1865,"children":1867},{"className":1866},[],[1868],{"type":45,"value":1869},"doca-hardware-safety",{"type":45,"value":1871}," —\nthe cross-cutting hardware-safety meta-policy this skill's\n",{"type":40,"tag":88,"props":1873,"children":1875},{"className":1874},[],[1876],{"type":45,"value":1877},"## Safety policy",{"type":45,"value":1879}," overlays.",{"items":1881,"total":1985},[1882,1899,1913,1927,1939,1956,1971],{"slug":1883,"name":1883,"fn":1884,"description":1885,"org":1886,"tags":1887,"stars":20,"repoUrl":21,"updatedAt":1898},"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},[1888,1891,1894,1895],{"name":1889,"slug":1890,"type":15},"Data Analysis","data-analysis",{"name":1892,"slug":1893,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":1896,"slug":1897,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":1900,"name":1900,"fn":1901,"description":1902,"org":1903,"tags":1904,"stars":20,"repoUrl":21,"updatedAt":1912},"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},[1905,1908,1911],{"name":1906,"slug":1907,"type":15},"Deployment","deployment",{"name":1909,"slug":1910,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":1914,"name":1914,"fn":1915,"description":1916,"org":1917,"tags":1918,"stars":20,"repoUrl":21,"updatedAt":1926},"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},[1919,1922,1923],{"name":1920,"slug":1921,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":1924,"slug":1925,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":1928,"name":1928,"fn":1929,"description":1930,"org":1931,"tags":1932,"stars":20,"repoUrl":21,"updatedAt":1938},"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},[1933,1934,1935],{"name":1889,"slug":1890,"type":15},{"name":9,"slug":8,"type":15},{"name":1936,"slug":1937,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":1940,"name":1940,"fn":1941,"description":1942,"org":1943,"tags":1944,"stars":20,"repoUrl":21,"updatedAt":1955},"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},[1945,1948,1951,1952],{"name":1946,"slug":1947,"type":15},"Automation","automation",{"name":1949,"slug":1950,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":1953,"slug":1954,"type":15},"Video","video","2026-07-17T05:28:53.905004",{"slug":1957,"name":1957,"fn":1958,"description":1959,"org":1960,"tags":1961,"stars":20,"repoUrl":21,"updatedAt":1970},"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},[1962,1963,1966,1967],{"name":1906,"slug":1907,"type":15},{"name":1964,"slug":1965,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":1968,"slug":1969,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":1972,"name":1972,"fn":1973,"description":1974,"org":1975,"tags":1976,"stars":20,"repoUrl":21,"updatedAt":1984},"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},[1977,1978,1981],{"name":9,"slug":8,"type":15},{"name":1979,"slug":1980,"type":15},"Quantum Computing","quantum-computing",{"name":1982,"slug":1983,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":1987,"total":2138},[1988,2006,2022,2033,2045,2059,2072,2086,2097,2106,2120,2129],{"slug":1989,"name":1989,"fn":1990,"description":1991,"org":1992,"tags":1993,"stars":2003,"repoUrl":2004,"updatedAt":2005},"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},[1994,1997,2000],{"name":1995,"slug":1996,"type":15},"Documentation","documentation",{"name":1998,"slug":1999,"type":15},"MCP","mcp",{"name":2001,"slug":2002,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2007,"name":2007,"fn":2008,"description":2009,"org":2010,"tags":2011,"stars":2019,"repoUrl":2020,"updatedAt":2021},"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},[2012,2015,2016],{"name":2013,"slug":2014,"type":15},"Containers","containers",{"name":1906,"slug":1907,"type":15},{"name":2017,"slug":2018,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2023,"name":2023,"fn":2024,"description":2025,"org":2026,"tags":2027,"stars":2019,"repoUrl":2020,"updatedAt":2032},"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},[2028,2031],{"name":2029,"slug":2030,"type":15},"CI\u002FCD","ci-cd",{"name":1906,"slug":1907,"type":15},"2026-07-14T05:25:59.97109",{"slug":2034,"name":2034,"fn":2035,"description":2036,"org":2037,"tags":2038,"stars":2019,"repoUrl":2020,"updatedAt":2044},"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},[2039,2040,2041],{"name":2029,"slug":2030,"type":15},{"name":1906,"slug":1907,"type":15},{"name":2042,"slug":2043,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2046,"name":2046,"fn":2047,"description":2048,"org":2049,"tags":2050,"stars":2019,"repoUrl":2020,"updatedAt":2058},"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},[2051,2054,2055],{"name":2052,"slug":2053,"type":15},"Debugging","debugging",{"name":2042,"slug":2043,"type":15},{"name":2056,"slug":2057,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2060,"name":2060,"fn":2061,"description":2062,"org":2063,"tags":2064,"stars":2019,"repoUrl":2020,"updatedAt":2071},"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},[2065,2068],{"name":2066,"slug":2067,"type":15},"Best Practices","best-practices",{"name":2069,"slug":2070,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2073,"name":2073,"fn":2074,"description":2075,"org":2076,"tags":2077,"stars":2019,"repoUrl":2020,"updatedAt":2085},"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},[2078,2081,2084],{"name":2079,"slug":2080,"type":15},"Machine Learning","machine-learning",{"name":2082,"slug":2083,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2087,"name":2087,"fn":2088,"description":2089,"org":2090,"tags":2091,"stars":2019,"repoUrl":2020,"updatedAt":2096},"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},[2092,2095],{"name":2093,"slug":2094,"type":15},"QA","qa",{"name":1936,"slug":1937,"type":15},"2026-07-14T05:25:53.673039",{"slug":2098,"name":2098,"fn":2099,"description":2100,"org":2101,"tags":2102,"stars":2019,"repoUrl":2020,"updatedAt":2105},"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},[2103,2104],{"name":1906,"slug":1907,"type":15},{"name":1909,"slug":1910,"type":15},"2026-07-14T05:25:49.362534",{"slug":2107,"name":2107,"fn":2108,"description":2109,"org":2110,"tags":2111,"stars":2019,"repoUrl":2020,"updatedAt":2119},"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},[2112,2115,2116],{"name":2113,"slug":2114,"type":15},"Code Review","code-review",{"name":2042,"slug":2043,"type":15},{"name":2117,"slug":2118,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2121,"name":2121,"fn":2122,"description":2123,"org":2124,"tags":2125,"stars":2019,"repoUrl":2020,"updatedAt":2128},"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},[2126,2127],{"name":2093,"slug":2094,"type":15},{"name":1936,"slug":1937,"type":15},"2026-07-14T05:25:54.928983",{"slug":2130,"name":2130,"fn":2131,"description":2132,"org":2133,"tags":2134,"stars":2019,"repoUrl":2020,"updatedAt":2137},"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},[2135,2136],{"name":1946,"slug":1947,"type":15},{"name":2029,"slug":2030,"type":15},"2026-07-30T05:29:03.275638",496]