> Use this skill when the user is doing hands-on DOCA DMA programming — bringing up a doca_dma context, configuring the single doca_dma_task_memcpy task type, sizing buffers via the doca_dma_cap_task_memcpy_* queries, setting LOCAL_READ_ONLY / LOCAL_READ_WRITE permissions on source / destination doca_mmap regions (plus doca_mmap_export_* for cross-peer copies), driving the progress engine, or debugging DOCA_ERROR_* returns. Trigger even when the user does not explicitly mention "DOCA DMA" or "doca_mmap" — typical implicit phrasings include "memcpy host buffer to BlueField without using the CPU", "offload a bulk copy to the DPU", "copy returns NOT_PERMITTED on first submit", "buffer too big for one DMA task", "task submitted but no completion", or "scatter-gather copy between two memory regions". Refuse and route elsewhere for cross-network copies (DOCA RDMA), producer/consumer messaging (DOCA Comch), DOCA Core / progress-engine internals, or DOCA install — those belong to other skills.
npx skills add https://github.com/NVIDIA/skills --skill doca-dma
Where to start: This skill assumes DOCA is already installed
and the user is doing hands-on DMA work on a BlueField /
ConnectX / host with DOCA. Open TASKS.md if the user
wants to *do* something (configure / build / modify / run / test /
debug); open CAPABILITIES.md when the question
is *what can DMA express* on this version. If the user has not
installed DOCA yet, route to
doca-setup first. If the user is
not sure DMA is even the right library — the data has to traverse
the network, or the flow is small messages between two processes —
read the path-selection rule in
CAPABILITIES.md ## Capabilities and modes
before configuring anything.
The CLASSES of DMA questions this skill is built to answer, each
with one worked example. The agent should treat the *class* as
the load-bearing piece — the worked example is a single instance.
between host and DPU?"** — worked example: *"copy a 64 KiB
buffer from host memory to DPU memory in one task, starting from
the shipped DMA Copy reference application"*. Answered by the
lifecycle + memcpy-task workflow in
TASKS.md ## configure +
CAPABILITIES.md ## Capabilities and modes
task-type table.
worked example: *"can I copy 16 MiB in a single
doca_dma_task_memcpy"*. Answered by the capability-query rule
(doca_dma_cap_task_memcpy_get_max_buf_size, plus
_get_max_buf_list_len for scatter-gather) in
CAPABILITIES.md ## Capabilities and modes
+ the discovery step in
TASKS.md ## configure.
worked example: *"my memcpy task returns
DOCA_ERROR_NOT_PERMITTED on the first submit"*. Answered by the
source / destination permission matrix in
CAPABILITIES.md ## Safety policy
+ the permission checklist in
TASKS.md ## test.
memcpy for this copy?"** — worked example: *"I have a 1 MiB copy
that has to go from a host process to a DPU process; do I want
DMA or Comch fast-path"*. Answered by the *"when to use DMA"*
vs *"when not to"* path-selection bullet in
CAPABILITIES.md ## Capabilities and modes
+ the routing pointers in ## Related skills.
supported on my device?"** — worked example: *"is
doca_dma_task_memcpy available on DOCA 2.6 against this
ConnectX-6"*. Answered by the version-compatibility overlay in
CAPABILITIES.md ## Version compatibility,
which cross-links the canonical detection chain in
doca-version, plus the
capability-query rule in
CAPABILITIES.md ## Capabilities and modes.
DOCA_ERROR_* from a DMA call mean and whichlayer caused it?"** — worked example: *"DOCA_ERROR_AGAIN from
doca_task_submit on a doca_dma_task_memcpy"*. Answered by
the DMA overlay on the cross-library taxonomy in
CAPABILITIES.md ## Error taxonomy
+ the layered ladder in
TASKS.md ## debug that escalates to
doca-debug.
This skill serves **external developers building applications
that consume the DOCA DMA library** — i.e., users whose code calls
doca_dma_* (directly in C/C++, or through FFI/bindings from
another language) to copy bytes between two doca_mmap regions
using the BlueField DMA engine instead of the host CPU. It is
*not* for NVIDIA developers contributing to DOCA DMA itself.
Language scope. DOCA DMA ships as a C library with
pkg-config module name doca-dma. The shipped samples are
written in C. C and C++ consumers are the canonical case and the
worked examples in TASKS.md assume that path. Other-language
consumers (Rust, Go, Python, …) consume the same *.so through
FFI or language-specific bindings; the skill's contribution in
that case is to keep the lifecycle, capability-discovery,
permission, error-taxonomy, and path-selection guidance
language-neutral, and to route the agent to the public C ABI as
the authoritative surface that any wrapper will eventually call.
Load this skill when the user is doing hands-on DOCA DMA work,
in any language. Concretely:
doca_dma context on a doca_dev andconfiguring the memcpy task type via
doca_dma_task_memcpy_set_conf before doca_ctx_start().
doca_mmap regions fora memcpy, including the per-side permission flags
(DOCA_ACCESS_FLAG_LOCAL_READ_ONLY on the source,
DOCA_ACCESS_FLAG_LOCAL_READ_WRITE on the destination) and,
for cross-peer copies, the doca_mmap_export_* step.
doca_dma_cap_task_memcpy_* query family
(_is_supported, _get_max_buf_size,
_get_max_buf_list_len) before sizing any buffer or assuming
scatter-gather is available.
doca_dma_task_memcpy tasks against a DOCA progressengine and reacting to per-task completion events.
the data has to cross the network, DOCA Comch fast-path for
message-oriented producer/consumer flows, plain CPU memcpy when
the copy is tiny and one-shot).
DOCA_ERROR_* returned from a DMA call (lifecyclevs. permission vs. capability vs. would-block) and the
per-task completion status reported on the progress engine.
that wrap the DMA C ABI — for the lifecycle, permission, and
capability rules the wrapper must honor.
Do not load this skill for general DOCA orientation, install
of DOCA itself, or non-DMA library questions. For those, use
doca-public-knowledge-map.
This is a thin loader. The body keeps only the orientation
needed to pick the right next file. The substantive DMA-specific
material lives in two companion files:
CAPABILITIES.md — what DMA can express on this version: thesingle doca_dma_task_memcpy task type and its scatter-gather
buffer-list shape, the capability-query surface
(doca_dma_cap_task_memcpy_*), the DMA error taxonomy (mapped
onto the cross-library DOCA_ERROR_* set), the observability
surface (per-task completion events on the progress engine),
the source / destination mmap permission policy, and the
path-selection rule against the adjacent libraries
(RDMA / Comch / CPU memcpy).
TASKS.md — step-by-step workflows for the six in-scope DMAverbs: configure, build, modify, run, test, debug.
Plus a Deferred task verbs block that points out-of-scope
questions at the right next skill.
The skill assumes a host or BlueField where DOCA is already
installed at the standard location and the user has the
privileges their public install profile expects. It does not
cover installing DOCA — that path goes through
doca-setup.
This skill is agent guidance, not a samples or templates
bundle. To keep the boundary clean, it deliberately does not
contain — and pull requests should not add:
language.** The verified DMA source code is the shipped C
samples at /opt/mellanox/doca/samples/doca_dma/<name>/ and
the DMA Copy reference application reachable via
doca-public-knowledge-map.
The agent's job is to route the user to those files and
prescribe a minimum-diff modification on them via the universal
modify-a-sample workflow in
doca-programming-guide,
layered with the DMA-specific overrides in
TASKS.md ## modify.
meson.build, CMakeLists.txt,Cargo.toml, …) parked inside the skill. The agent constructs
the build manifest *in the user's project directory* against
the user's installed DOCA, where `pkg-config --modversion
doca-dma` is the source of truth.
samples/, bindings/, or reference/ subtree of anykind. A mock or incomplete artifact in this skill's tree, even
one labeled "reference", is misleading: users will read it as
buildable.
SKILL.md first to confirm the user's question isin scope.
capability-query rule, the source / destination permission
matrix, the error taxonomy, observability, and the
path-selection rule against RDMA / Comch / CPU memcpy, see
CAPABILITIES.md.**
test, debug — see TASKS.md.**
Both companion files cross-link to each other,
doca-version for the canonical
version-handling rules, and
doca-public-knowledge-map
whenever the right answer is "look it up in the public docs or
the installed package layout" rather than "DMA-specific
guidance".
doca-public-knowledge-map —the routing table for every public DOCA documentation source
and the on-disk layout of an installed DOCA package. The DMA
URL is https://docs.nvidia.com/doca/sdk/DOCA-DMA/index.html;
the canonical reference application is *DMA Copy*.
doca-setup — env preparation,install verification, and the *I have no install yet* path
with the public NGC DOCA container. This skill assumes its
preconditions are satisfied.
doca-version — canonical DOCAversion-handling rules. This skill's `## Version
compatibility` cross-links the four-way match rule + detection
chain and adds at most one DMA-specific overlay rule.
doca-structured-tools-contract —the bundle's structured-tools precedence rule (detect / prefer
/ fall back / report). The Command appendix in
TASKS.md honors this contract.
doca-programming-guide —general DOCA programming patterns shared by every library: the
canonical pkg-config + meson build pattern, the universal
modify-a-shipped-sample first-app workflow, the universal
lifecycle, the cross-library DOCA_ERROR_* taxonomy, and the
program-side debug order. This skill layers DMA specifics on
top.
doca-rdma — the right library whenthe copy has to traverse the network. This skill's
path-selection rule routes to RDMA when DMA is *not* the
answer.
doca-comch — the right librarywhen the flow is producer / consumer messaging between a host
and DPU process pair, rather than a raw mmap-to-mmap copy.
doca-debug — the cross-cuttingdebug ladder (install / version / build / link / runtime /
program / driver). DMA-specific debug (lifecycle violations,
permission mismatches, oversize-buffer rejections) overlays on
top of that ladder.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Walk the operator through creating the first NanoClaw agent for a DM channel — resolve the operator's channel identity, wire the DM messaging group to a new agent, and trigger a welcome DM via the normal delivery path. Use after channel credentials are configured and the service is running.
Authoring playbook for building agents that triage and reply to customer messages — support tickets, email inquiries, chat questions, refund requests, or product issues. Use this when the user wants an agent that handles inbound customer questions, drafts replies, escalates hard cases, summarizes tickets, or follows a support playbook.
Reference skill for Zoom Team Chat. Use after routing to a chat workflow when building user-scoped messaging integrations, chatbot experiences, rich cards, buttons, slash commands, or chat webhooks.
LLM Agent 多语言注入规范。在修改 Agent 提示词、添加新的 Agent 端点、处理用户可见的后端消息(message_code)时使用。
> Advanced and operational chat.agent capabilities for Trigger.dev, loaded on demand. Load this when working on the raw Sessions primitive (sessions / SessionHandle), a custom chat transport or the realtime wire protocol, durable sub-agents (AgentChat, chat.stream.writer), human-in-the-loop, steering, actions, background injection (chat.defer / chat.inject), fast starts (preload, Head Start via @trigger.dev/sdk/chat-server), context resilience (compaction, recovery boot, OOM, large payloads), chat.local run-scoped state, offline testing with mockChatAgent, or prerelease/version upgrades. For the everyday chat.agent({...}) definition and the useTriggerChatTransport happy path, use the trigger-authoring-chat-agent skill instead.
Install and authenticate, on demand, the CLIs the sandbox does not prebake — Node/npm, `gws` (Google Workspace), `gcloud`, `agents-cli` (call remote A2A/ADK agents), and `mcp-cli` (use MCP-server tools). Use this whenever one of those tools is needed but missing (a `node`/`npm`/`gws`/`gcloud`/`agents-cli`/`mcp-cli` command returns "command not found"), or before starting any task that requires one — Google Workspace work (Drive, Gmail, Sheets, Calendar, Chat), GCP via `gcloud`, calling another agent deployed remotely over HTTP (Cloud Run or Vertex Agent Runtime), or using tools exposed by an MCP server. Setup only (install + config + headless auth); each tool's own usage lives in its own skill(s).
Use when preparing HubSpot customer briefs for meetings, renewals, QBRs, sales calls, escalations, handoffs, or follow-ups.
Take nvidia/doca-dma from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.