npx skills add ...
npx skills add nvidia/skills --skill doca-setup
Use this skill when the user is dealing with the DOCA environment around their workload — verifying an install is healthy, preparing the build env (pkg-config, headers, LD_LIBRARY_PATH, hugepages, devlink, representors), debugging env-class failures, deciding container-vs-bare-metal deployment shape, or reaching a DOCA install from a host that doesn't have one yet via the NGC DOCA container Stage-1 fallback. Trigger even when the user does not explicitly mention "DOCA setup" — typical implicit phrasings include "I just got a BlueField, what now", "my code is built, how do I run it", "pkg-config can't find doca-flow", "no free 2048 kB hugepages", "representor X not found", "I'm on a Mac and want to learn DOCA". Refuse and route elsewhere for library API specifics (Flow pipes, RDMA queues), the modify-a-sample first-app workflow or DOCA_ERROR_* program-side debugging, and "where is X documented" knowledge-map questions — those belong to other skills.
npx skills add nvidia/skills --skill doca-setup
Where to start: If the user's question is deployment-shaped
("how do I deploy", "how do I run my DOCA workload", "I just got a
BlueField, what now", "my code is built, what next"), walk
TASKS.md ## recognize first. It is the
bundle's front-door: it detects the system shape (host x86 / BlueField
Arm bare-metal / DPU-only / fresh laptop), asks the developer the
minimal set of questions needed to disambiguate, and routes to the
correct downstream skill — the container deployment path
(doca-container-deployment),
the bare-metal hardware deployment path
(doca-bare-metal-deployment),
or the no-hardware fallback
(TASKS.md ## no-install). The wrong failure
mode is to silently steer every developer onto containers because the
agent loaded that skill first; ## recognize exists to prevent that.
If the user does not have DOCA installed yet and the request is not
deployment-shaped, jump straight to
TASKS.md ## no-install for the NGC container
path. Deployment-shaped requests still enter ## recognize first,
which routes fresh-laptop cases to ## no-install. Otherwise read
## When to load this skill to confirm the
question is env-class, then route to the section below that matches the
user's intent.
The CLASSES this skill is built to handle, each with one worked example. The skill must answer the class; the worked example is illustrative.
TASKS.md ## recognize, which detects the
system shape, asks the minimum residual question, and routes to
either the container or the bare-metal deployment skill.TASKS.md ## test plus the
version-detection rules in
CAPABILITIES.md ## Capabilities and modes.TASKS.md ## no-install (NGC DOCA container
as universal Stage-1).pkg-config --cflags doca-flow returns nothing — what's
missing?" Resolved by the build-prep workflow in
TASKS.md ## configure and the build-class
error taxonomy in
CAPABILITIES.md ## Error taxonomy.TASKS.md ## configure and the runtime
observability rules in
CAPABILITIES.md ## Observability.pkg-config cannot find it at runtime." Resolved by the layered
env-class debug workflow in TASKS.md ## debug.CAPABILITIES.md ## Safety policy.If the question is library-API-shaped (Flow pipe construction, RDMA
queue setup, …) or program-shaped (how to build, modify a sample, debug
the program itself), route to
doca-programming-guide or the
matching library skill instead — env-class only lives here.
Load this skill when the user is dealing with the environment around DOCA — installing it, verifying the install is healthy, preparing the build / runtime preconditions, debugging env-class failures, figuring out how to reach an install from a host that doesn't have one yet, or asking a deployment-shaped question that hasn't yet been routed (containers vs. bare-metal) — the front-door routing decision lives here. Concretely:
## recognize first so the agent does not silently push the user onto the wrong path.pkg-config, headers, library paths).devlink device visibility, representor enumeration, kernel-module prerequisites.*.pc file, hugepages not mounted, representor not visible, header-vs-runtime version mismatch.nvcr.io/nvidia/doca/doca (works on any OS that runs Docker; no NVIDIA hardware required for the build / read / learn loop). See TASKS.md ## no-install.Do not load this skill for:
doca-public-knowledge-map.DOCA_ERROR_BAD_STATE mean?" — those are programming-class questions and live in doca-programming-guide, which owns the universal ## modify (first-app derivation), the canonical ## build pattern, the universal lifecycle, and the cross-library DOCA_ERROR_* taxonomy.doca-flow). This skill stops at "the install is healthy and the env is ready"; it does not own program semantics.This is a thin loader. The body keeps only the orientation needed to pick the right next file. The substantive env material lives in two companion files:
CAPABILITIES.md — what the install / build / runtime environment surface looks like: install profiles (doca-all, doca-ofed, doca-networking), where the build flavors (release vs trace) live on disk and how to point LD_LIBRARY_PATH at them, the env-side version-detection rules, the env-class error taxonomy (pkg-config not finding doca-flow, hugepages not reserved, representors not visible), what a healthy install looks like under observation, and the safety constraints on environment changes (hugepages global, mlxconfig reset, eswitch mode change).TASKS.md — env workflows: recognize (the front-door system-shape detect + dev-Q decision tree that routes deployment-shaped questions to either container or bare-metal), configure (env prep), test (install health snapshot), debug (env-class layered diagnosis), and no-install (the I have no install yet procedure with the NGC container as Path 0). Three other anchors (build, modify, run) exist for lint compliance and route to doca-programming-guide, which owns those verbs after the env / program split.This skill assumes nothing about whether DOCA is installed — the ## no-install workflow exists precisely for the fresh laptop case.
SKILL.md and classify the question as programming,
knowledge-map, beginner orientation, deployment routing, or
environment work. Programming and knowledge-map questions route to
their owning skill and stop here.TASKS.md ## no-install Stage 1 vs Stage 2 roadmap
before any command. Then route Stage 1/container learning to
## no-install Path 0 and Stage 2/hardware runtime to
## no-install Paths A/C, followed by ## recognize before
selecting container versus bare-metal. Ask one clarifying question
when the stage is unknown; if it remains unknown or no reply is
available in unattended execution, stop with
confirmation_required and both paths explained rather than
guessing.configure, test, debug, and
no-install — see TASKS.md. The build, modify,
and run anchors route to
doca-programming-guide.doca-programming-guide, then the matching library skill.Both companion files cross-link to each other and to doca-public-knowledge-map whenever the right answer is "look it up in the public docs or the installed package layout" rather than "setup-specific guidance".
doca-container-deployment — the container deployment runtime (kubelet standalone + YAML pod-spec drop) for any DOCA service container on BlueField. ## recognize here routes to this skill when the developer's workload + system shape land on the container path.doca-bare-metal-deployment — the bare-metal hardware deployment runtime (host x86 OR BlueField Arm direct launch — systemd / tmux / direct invocation, hardware-resource binding, per-tenant isolation, restart discipline) for a DOCA-linked binary. ## recognize here routes to this skill when the developer's workload + system shape land on the bare-metal path.doca-public-knowledge-map — public DOCA documentation routing and the on-disk layout of an installed DOCA package. This skill defers all "where is X documented", "where on disk is Y", and "how do I check the installed version" questions to the knowledge-map.doca-programming-guide — general DOCA programming patterns once the env is healthy: the canonical pkg-config doca-<library> build pattern, the universal derive a custom first app from a sample workflow (with C / C++ + non-C tracks), the universal lifecycle, and the cross-library DOCA_ERROR_* taxonomy. Anything beyond "is the install healthy and the env ready" lives there.doca-flow — DOCA Flow on BlueField. Builds on this skill for env preparation and on doca-programming-guide for the universal first-app derivation, then layers Flow-specific overrides on top.*