DOCA Common
Where to start: This skill is the foundation every DOCA app
loads first — before doca-flow, doca-rdma, doca-eth, doca-comch, or
any other higher-level library. Every doca_<library>_* context is
built on top of doca_ctx, every device handle is a doca_dev
discovered through doca_devinfo, every zero-copy buffer is a
doca_buf from a doca_buf_inventory over a doca_mmap, every
task completion drains through a doca_pe, and every log line emits
through doca_log. Open CAPABILITIES.md when
the question is what does Common express on this install; open
TASKS.md when the user wants to do something
(configure / build / modify / run / test / debug). If the user has
not installed DOCA yet, route to
doca-setup first. If the user is
already past the foundation and asking a library-specific question
(e.g. "how do I program a Flow pipe"), load the matching per-library
skill alongside this one — they cross-link back here for the shared
primitives.
Example questions this skill answers well
The CLASSES of doca-common 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.
- "What is the doca-common foundation I have to set up BEFORE I
open a doca-flow / doca-rdma / doca-eth / … context?" — worked
example: "I'm starting a brand-new DOCA Flow program on
BlueField-3; what's the doca-common skeleton I need before I open
the Flow port?". Answered by the universal foundation walk in
TASKS.md ## configure +
CAPABILITIES.md ## ctx +
CAPABILITIES.md ## dev +
CAPABILITIES.md ## progress engine.
- "How do I discover a device and gate on its capabilities before
trusting the public docs?" — worked example: "I want to use
doca_eth_txq but the docs hint at a feature only on certain
firmware bands". Answered by the capability-discovery rule
(doca_devinfo_create_list → doca_*_cap_* against the active
doca_devinfo is the runtime authority) in
CAPABILITIES.md ## dev +
TASKS.md ## use.
- "What's the doca_buf / doca_mmap / doca_buf_inventory wiring
for zero-copy I/O, and what's the lifecycle order?" — worked
example: "I want to register a user-space buffer with my device,
carve it into N data-plane buffers, and reference-count them
across multiple DOCA libraries". Answered by the zero-copy
buffer model in
CAPABILITIES.md ## buf +
the buffer-lifecycle walk in
TASKS.md ## configure +
TASKS.md ## use.
- "How does the progress engine work and where do I have to call
it?" — worked example: "my doca_rdma task submits cleanly but
nothing completes — what loop am I missing?". Answered by the PE
surface in
CAPABILITIES.md ## progress engine
- the run-loop pattern in
TASKS.md ## run.
- "Why don't my DOCA log lines appear at the level I expect, and
what's the difference between
--sdk-log-level and the app-side
setter?" — worked example: "I set --sdk-log-level DEBUG, my
own DOCA_LOG_DBG lines still don't print". Answered by the
two-tier log model in CAPABILITIES.md ## log
- the tier-flip iteration in
TASKS.md ## log.
- "What does this
DOCA_ERROR_* from a doca_buf_* / doca_ctx_*
/ doca_dev_* / doca_pe_* / doca_log_* call mean?" —
worked example: "DOCA_ERROR_BAD_STATE from doca_ctx_start".
Answered by the Common overlay on the cross-library DOCA_ERROR_*
taxonomy in
CAPABILITIES.md ## Error taxonomy
- the layered ladder in
TASKS.md ## debug that escalates to
doca-debug.
Audience
This skill serves every external developer building applications
that consume any DOCA library — i.e., users whose code calls any
doca_* symbol (directly in C/C++, or through FFI/bindings from
another language). Whether the user's primary library is doca-flow,
doca-rdma, doca-eth, doca-comch, doca-dma, doca-rmax, doca-sha,
doca-aes-gcm, doca-erasure-coding, or any other, the doca-common
surface is under it and the user will hit doca_buf, doca_ctx,
doca_dev, doca_pe, and doca_log as part of the first-app
journey. It is not for NVIDIA developers contributing to DOCA
Common itself.
Language scope
DOCA Common ships as a C library with pkg-config module name
doca-common. The shipped samples that demonstrate Common primitives
live inside every per-library samples tree (any
/opt/mellanox/doca/samples/<library>/<sample>/*_main.c is a worked
example of the universal foundation — doca_devinfo_create_list
→ doca_dev_open → per-library doca_ctx create → doca_pe_create
→ doca_pe_connect_ctx → doca_ctx_start → submit work → drive
doca_pe_progress → drain completions → doca_ctx_stop → destroy).
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
universal foundation walk, the lifecycle, the capability-discovery
rule, the PE-drives-completion rule, and the two-tier log model
language-neutral, and to route the agent to the public C ABI as the
authoritative surface that any wrapper will eventually call.
When to load this skill
Load this skill whenever the user is doing any hands-on DOCA
work — it is the foundation. Concretely:
- Setting up the universal DOCA-side skeleton before opening any
per-library context (Flow, RDMA, Eth, Comch, DMA, Rmax, …).
- Discovering devices and representors and gating capability use
on the active
doca_devinfo via the doca_*_cap_* family.
- Wiring
doca_mmap + doca_buf_inventory + doca_buf for
zero-copy I/O that crosses libraries (e.g. doca-eth feeds
doca-dma feeds doca-rdma — they share the same buf surface).
- Driving the progress engine (
doca_pe_create /
doca_pe_connect_ctx / doca_pe_progress) — the universal
task-completion drain every DOCA Core context relies on.
- Wiring DOCA Log into a fresh app or modifying a shipped sample to
add the user's own per-component log lines via the two-tier
(
--sdk-log-level vs app-side registry) model.
- Debugging a
DOCA_ERROR_* returned from any doca_buf_* /
doca_ctx_* / doca_dev_* / doca_pe_* / doca_log_* call —
the Common surface is where most lifecycle / capability /
permission errors first surface for higher-level libraries.
- Designing or extending non-C bindings (Rust, Go, Python, …) that
wrap any DOCA library — for the universal foundation surface
(buf, ctx, dev, pe, log) the wrapper has to expose first.
Do not load this skill for library-specific Flow, RDMA, Eth,
Comch, DMA, Rmax, … questions in isolation — load the matching
per-library skill alongside this one. Do not load this skill for
general DOCA orientation, install of DOCA itself, or
"where do I find docs". For those, use
doca-public-knowledge-map
or doca-setup.
What this skill provides
This is a thin loader. The body keeps only the orientation
needed to pick the right next file. The substantive Common material
lives in two companion files:
CAPABILITIES.md — what doca-common expresses on this install:
the ## Capabilities and modes overview of the universal
primitives every DOCA application touches; the five subsystem
H2s (## log, ## buf, ## ctx, ## dev, ## progress engine) that own the per-primitive surface; the
## Version compatibility doca-common-specific overlay;
the ## Error taxonomy Common-side view of the universal
DOCA_ERROR_* set; the ## Observability surface (logs, PE
events, capability snapshots); and the ## Safety policy overlay
on the bundle-wide hardware-safety meta-policy.
TASKS.md — step-by-step workflows for the universal verbs
(configure, build, modify, run, test, debug, use)
PLUS a ## log verb-side that covers the two-tier log model in
workflow form. Plus a Deferred task verbs block that points
install / deploy / rollback 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.
What this skill deliberately does not ship
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:
- Pre-written DOCA application source code, in any language.
The verified Common usage shows up inside every shipped DOCA
sample at
/opt/mellanox/doca/samples/<library>/<sample>/*_main.c
and inside every shipped reference application. 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.
- Standalone build manifests (
meson.build,
CMakeLists.txt, Cargo.toml, setup.py, go.mod, …) 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-common is the source of
truth.
- A
samples/, bindings/, or reference/ subtree of any
kind. A mock or incomplete artifact in this skill's tree, even
one labeled "reference", is misleading: users will read it as
buildable.
Loading order
- Read this
SKILL.md first to confirm the user's question is in
scope.
- For the universal primitives (
log / buf / ctx / dev /
progress engine), the pkg-config --modversion doca-common
anchor, the Common error overlay, observability, and safety
policy, see CAPABILITIES.md.
- For step-by-step workflows — configure, build, modify, run,
test, debug, use, log — see TASKS.md.
Both companion files cross-link to each other,
doca-version for the canonical
version-handling rules,
doca-programming-guide
for the universal modify-a-shipped-sample workflow and the
cross-library DOCA_ERROR_* taxonomy,
doca-debug for the cross-cutting
debug ladder, and
doca-public-knowledge-map
whenever the right answer is "look it up in the public docs or the
installed package layout" rather than "Common-specific guidance".
Related skills
doca-public-knowledge-map —
the routing table for every public DOCA documentation source and
the on-disk layout of an installed DOCA package. Always available
alongside this skill; this skill expects to be able to defer
documentation-finding and install-layout questions there instead
of duplicating them.
doca-setup — env preparation,
install verification, and the I have no install yet path with
the public NGC DOCA container (nvcr.io/nvidia/doca/doca) as the
universal Stage-1 fallback. This skill assumes its preconditions
are satisfied.
doca-version — canonical DOCA
version-handling rules (four-way match, NGC semantics,
headers-win-over-docs). pkg-config --modversion doca-common is
the build-time anchor every DOCA install carries; this skill's
## Version compatibility overlays the Common-specific notes on
top.
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 is the primitives layer
the programming-guide patterns rest on.
doca-debug — the cross-cutting
debug ladder (install / version / build / link / runtime /
program / driver) and the verbosity-escalation surface. DOCA Log
is the foundation doca-debug builds its runtime-debug story on;
this skill is where the two-tier log model and the universal
lifecycle errors first surface, and doca-debug cross-links here
for both.
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-hardware-safety —
the cross-cutting hardware-safety meta-policy this skill's
## Safety policy overlays.
- Per-library skills (
doca-flow, doca-rdma, doca-eth,
doca-comch, doca-dma, doca-rmax, doca-sha, doca-aes-gcm,
doca-erasure-coding, doca-compress, doca-dpa, doca-gpunetio,
doca-pcc, doca-sta, doca-telemetry, doca-urom,
doca-verbs, doca-argp, doca-devemu,
doca-dpdk-bridge, …) — every per-library skill cross-links
back to this skill for the foundation primitives. Loading this
skill alongside any of them is the recommended default.
1---2name: doca-common3description: Use this skill whenever the user is doing hands-on DOCA programming on a BlueField DPU or ConnectX NIC and needs the foundation primitives every per-library context rests on — walking the doca_ctx lifecycle, discovering doca_dev / doca_devinfo and gating on doca_*_cap_* before trusting a feature, wiring doca_mmap / doca_buf_inventory / doca_buf for zero-copy I/O across libraries, driving doca_pe for completions, or DOCA Log's two-tier (--sdk-log-level vs app-side) model. Trigger even when the user does not say "DOCA Common" — typical implicit phrasings include "my tasks submit but nothing completes", "DOCA_ERROR_BAD_STATE from doca_ctx_start", "--sdk-log-level does nothing for my DOCA_LOG_DBG lines", "share a buf between doca_dma and doca_rdma", or "crashes far from the offending line". Refuse and route elsewhere for per-library questions in isolation (load doca-flow / doca-rdma / doca-eth alongside), installing DOCA (doca-setup), or doc lookup (doca-public-knowledge-map).4license: Apache-2.05---67# DOCA Common89**Where to start:** This skill is the **foundation every DOCA app10loads first** — before doca-flow, doca-rdma, doca-eth, doca-comch, or11any other higher-level library. Every `doca_<library>_*` context is12built on top of `doca_ctx`, every device handle is a `doca_dev`13discovered through `doca_devinfo`, every zero-copy buffer is a14`doca_buf` from a `doca_buf_inventory` over a `doca_mmap`, every15task completion drains through a `doca_pe`, and every log line emits16through `doca_log`. Open [`CAPABILITIES.md`](CAPABILITIES.md) when17the question is *what does Common express* on this install; open18[`TASKS.md`](TASKS.md) when the user wants to *do* something19(configure / build / modify / run / test / debug). If the user has20not installed DOCA yet, route to21[`doca-setup`](../../doca-setup/SKILL.md) first. If the user is22already past the foundation and asking a library-specific question23(e.g. *"how do I program a Flow pipe"*), load the matching per-library24skill alongside this one — they cross-link back here for the shared25primitives.2627## Example questions this skill answers well2829The CLASSES of doca-common questions this skill is built to answer,30each with one worked example. The agent should treat the *class* as31the load-bearing piece — the worked example is a single instance.3233- **"What is the doca-common foundation I have to set up BEFORE I34 open a doca-flow / doca-rdma / doca-eth / … context?"** — worked35 example: *"I'm starting a brand-new DOCA Flow program on36 BlueField-3; what's the doca-common skeleton I need before I open37 the Flow port?"*. Answered by the universal foundation walk in38 [`TASKS.md ## configure`](TASKS.md#configure) +39 [`CAPABILITIES.md ## ctx`](CAPABILITIES.md#ctx) +40 [`CAPABILITIES.md ## dev`](CAPABILITIES.md#dev) +41 [`CAPABILITIES.md ## progress engine`](CAPABILITIES.md#progress-engine).42- **"How do I discover a device and gate on its capabilities before43 trusting the public docs?"** — worked example: *"I want to use44 `doca_eth_txq` but the docs hint at a feature only on certain45 firmware bands"*. Answered by the capability-discovery rule46 (`doca_devinfo_create_list` → `doca_*_cap_*` against the active47 `doca_devinfo` is the runtime authority) in48 [`CAPABILITIES.md ## dev`](CAPABILITIES.md#dev) +49 [`TASKS.md ## use`](TASKS.md#use).50- **"What's the doca_buf / doca_mmap / doca_buf_inventory wiring51 for zero-copy I/O, and what's the lifecycle order?"** — worked52 example: *"I want to register a user-space buffer with my device,53 carve it into N data-plane buffers, and reference-count them54 across multiple DOCA libraries"*. Answered by the zero-copy55 buffer model in56 [`CAPABILITIES.md ## buf`](CAPABILITIES.md#buf) +57 the buffer-lifecycle walk in58 [`TASKS.md ## configure`](TASKS.md#configure) +59 [`TASKS.md ## use`](TASKS.md#use).60- **"How does the progress engine work and where do I have to call61 it?"** — worked example: *"my doca_rdma task submits cleanly but62 nothing completes — what loop am I missing?"*. Answered by the PE63 surface in64 [`CAPABILITIES.md ## progress engine`](CAPABILITIES.md#progress-engine)65 + the run-loop pattern in [`TASKS.md ## run`](TASKS.md#run).66- **"Why don't my DOCA log lines appear at the level I expect, and67 what's the difference between `--sdk-log-level` and the app-side68 setter?"** — worked example: *"I set `--sdk-log-level DEBUG`, my69 own `DOCA_LOG_DBG` lines still don't print"*. Answered by the70 two-tier log model in [`CAPABILITIES.md ## log`](CAPABILITIES.md#log)71 + the tier-flip iteration in [`TASKS.md ## log`](TASKS.md#log).72- **"What does this `DOCA_ERROR_*` from a `doca_buf_*` / `doca_ctx_*`73 / `doca_dev_*` / `doca_pe_*` / `doca_log_*` call mean?"** —74 worked example: *"`DOCA_ERROR_BAD_STATE` from `doca_ctx_start`"*.75 Answered by the Common overlay on the cross-library `DOCA_ERROR_*`76 taxonomy in77 [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)78 + the layered ladder in79 [`TASKS.md ## debug`](TASKS.md#debug) that escalates to80 [`doca-debug`](../../doca-debug/SKILL.md).8182## Audience8384This skill serves **every external developer building applications85that consume any DOCA library** — i.e., users whose code calls *any*86`doca_*` symbol (directly in C/C++, or through FFI/bindings from87another language). Whether the user's primary library is doca-flow,88doca-rdma, doca-eth, doca-comch, doca-dma, doca-rmax, doca-sha,89doca-aes-gcm, doca-erasure-coding, or any other, the doca-common90surface is *under* it and the user will hit `doca_buf`, `doca_ctx`,91`doca_dev`, `doca_pe`, and `doca_log` as part of the first-app92journey. It is *not* for NVIDIA developers contributing to DOCA93Common itself.9495## Language scope9697DOCA Common ships as a C library with `pkg-config` module name98`doca-common`. The shipped samples that demonstrate Common primitives99live *inside* every per-library samples tree (any100`/opt/mellanox/doca/samples/<library>/<sample>/*_main.c` is a worked101example of the universal foundation — `doca_devinfo_create_list`102→ `doca_dev_open` → per-library `doca_ctx` create → `doca_pe_create`103→ `doca_pe_connect_ctx` → `doca_ctx_start` → submit work → drive104`doca_pe_progress` → drain completions → `doca_ctx_stop` → destroy).105C and C++ consumers are the canonical case and the worked examples106in `TASKS.md` assume that path. Other-language consumers (Rust, Go,107Python, …) consume the same `*.so` through FFI or language-specific108bindings; the skill's contribution in that case is to keep the109universal foundation walk, the lifecycle, the capability-discovery110rule, the PE-drives-completion rule, and the two-tier log model111language-neutral, and to route the agent to the public C ABI as the112authoritative surface that any wrapper will eventually call.113114## When to load this skill115116Load this skill whenever the user is doing **any** hands-on DOCA117work — it is the foundation. Concretely:118119- Setting up the universal DOCA-side skeleton before opening any120 per-library context (Flow, RDMA, Eth, Comch, DMA, Rmax, …).121- Discovering devices and representors and gating capability use122 on the active `doca_devinfo` via the `doca_*_cap_*` family.123- Wiring `doca_mmap` + `doca_buf_inventory` + `doca_buf` for124 zero-copy I/O that crosses libraries (e.g. doca-eth feeds125 doca-dma feeds doca-rdma — they share the same buf surface).126- Driving the progress engine (`doca_pe_create` /127 `doca_pe_connect_ctx` / `doca_pe_progress`) — the universal128 task-completion drain every DOCA Core context relies on.129- Wiring DOCA Log into a fresh app or modifying a shipped sample to130 add the user's own per-component log lines via the two-tier131 (`--sdk-log-level` vs app-side registry) model.132- Debugging a `DOCA_ERROR_*` returned from any `doca_buf_*` /133 `doca_ctx_*` / `doca_dev_*` / `doca_pe_*` / `doca_log_*` call —134 the Common surface is where most lifecycle / capability /135 permission errors first surface for higher-level libraries.136- Designing or extending non-C bindings (Rust, Go, Python, …) that137 wrap any DOCA library — for the universal foundation surface138 (buf, ctx, dev, pe, log) the wrapper has to expose first.139140Do **not** load this skill for library-specific Flow, RDMA, Eth,141Comch, DMA, Rmax, … questions in isolation — load the matching142per-library skill alongside this one. Do **not** load this skill for143general DOCA orientation, install of DOCA itself, or144*"where do I find docs"*. For those, use145[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)146or [`doca-setup`](../../doca-setup/SKILL.md).147148## What this skill provides149150This is a **thin loader**. The body keeps only the orientation151needed to pick the right next file. The substantive Common material152lives in two companion files:153154- `CAPABILITIES.md` — what doca-common expresses on this install:155 the `## Capabilities and modes` overview of the universal156 primitives every DOCA application touches; the five subsystem157 H2s (`## log`, `## buf`, `## ctx`, `## dev`, `## progress158 engine`) that own the per-primitive surface; the159 `## Version compatibility` doca-common-specific overlay;160 the `## Error taxonomy` Common-side view of the universal161 `DOCA_ERROR_*` set; the `## Observability` surface (logs, PE162 events, capability snapshots); and the `## Safety policy` overlay163 on the bundle-wide hardware-safety meta-policy.164- `TASKS.md` — step-by-step workflows for the universal verbs165 (`configure`, `build`, `modify`, `run`, `test`, `debug`, `use`)166 PLUS a `## log` verb-side that covers the two-tier log model in167 workflow form. Plus a `Deferred task verbs` block that points168 install / deploy / rollback questions at the right next skill.169170The skill assumes a host or BlueField where DOCA is already171installed at the standard location and the user has the privileges172their public install profile expects. It does not cover installing173DOCA — that path goes through174[`doca-setup`](../../doca-setup/SKILL.md).175176## What this skill deliberately does not ship177178This skill is **agent guidance**, not a samples or templates179bundle. To keep the boundary clean, it deliberately does not180contain — and pull requests should not add:181182- **Pre-written DOCA application source code, in any language.**183 The verified Common usage shows up inside every shipped DOCA184 sample at `/opt/mellanox/doca/samples/<library>/<sample>/*_main.c`185 and inside every shipped reference application. The agent's job186 is to route the user to those files and prescribe a minimum-diff187 modification on them via the universal modify-a-sample workflow188 in189 [`doca-programming-guide`](../../doca-programming-guide/SKILL.md).190- **Standalone build manifests** (`meson.build`,191 `CMakeLists.txt`, `Cargo.toml`, `setup.py`, `go.mod`, …) parked192 inside the skill. The agent constructs the build manifest *in193 the user's project directory* against the user's installed DOCA,194 where `pkg-config --modversion doca-common` is the source of195 truth.196- **A `samples/`, `bindings/`, or `reference/` subtree** of any197 kind. A mock or incomplete artifact in this skill's tree, even198 one labeled "reference", is misleading: users will read it as199 buildable.200201## Loading order2022031. Read this `SKILL.md` first to confirm the user's question is in204 scope.2052. **For the universal primitives (`log` / `buf` / `ctx` / `dev` /206 `progress engine`), the `pkg-config --modversion doca-common`207 anchor, the Common error overlay, observability, and safety208 policy, see [CAPABILITIES.md](CAPABILITIES.md).**2093. **For step-by-step workflows — configure, build, modify, run,210 test, debug, use, log — see [TASKS.md](TASKS.md).**211212Both companion files cross-link to each other,213[`doca-version`](../../doca-version/SKILL.md) for the canonical214version-handling rules,215[`doca-programming-guide`](../../doca-programming-guide/SKILL.md)216for the universal modify-a-shipped-sample workflow and the217cross-library `DOCA_ERROR_*` taxonomy,218[`doca-debug`](../../doca-debug/SKILL.md) for the cross-cutting219debug ladder, and220[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)221whenever the right answer is "look it up in the public docs or the222installed package layout" rather than "Common-specific guidance".223224## Related skills225226- [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md) —227 the routing table for every public DOCA documentation source and228 the on-disk layout of an installed DOCA package. Always available229 alongside this skill; this skill expects to be able to defer230 documentation-finding and install-layout questions there instead231 of duplicating them.232- [`doca-setup`](../../doca-setup/SKILL.md) — env preparation,233 install verification, and the *I have no install yet* path with234 the public NGC DOCA container (`nvcr.io/nvidia/doca/doca`) as the235 universal Stage-1 fallback. This skill assumes its preconditions236 are satisfied.237- [`doca-version`](../../doca-version/SKILL.md) — canonical DOCA238 version-handling rules (four-way match, NGC semantics,239 headers-win-over-docs). `pkg-config --modversion doca-common` is240 the build-time anchor *every* DOCA install carries; this skill's241 `## Version compatibility` overlays the Common-specific notes on242 top.243- [`doca-programming-guide`](../../doca-programming-guide/SKILL.md) —244 general DOCA programming patterns shared by every library: the245 canonical `pkg-config` + meson build pattern, the universal246 modify-a-shipped-sample first-app workflow, the universal247 lifecycle, the cross-library `DOCA_ERROR_*` taxonomy, and the248 program-side debug order. This skill is the *primitives* layer249 the programming-guide patterns rest on.250- [`doca-debug`](../../doca-debug/SKILL.md) — the cross-cutting251 debug ladder (install / version / build / link / runtime /252 program / driver) and the verbosity-escalation surface. DOCA Log253 is the foundation `doca-debug` builds its runtime-debug story on;254 this skill is where the two-tier log model and the universal255 lifecycle errors first surface, and `doca-debug` cross-links here256 for both.257- [`doca-structured-tools-contract`](../../doca-structured-tools-contract/SKILL.md) —258 the bundle's structured-tools precedence rule (detect / prefer /259 fall back / report). The Command appendix in260 [TASKS.md](TASKS.md) honors this contract.261- [`doca-hardware-safety`](../../doca-hardware-safety/SKILL.md) —262 the cross-cutting hardware-safety meta-policy this skill's263 `## Safety policy` overlays.264- Per-library skills (`doca-flow`, `doca-rdma`, `doca-eth`,265 `doca-comch`, `doca-dma`, `doca-rmax`, `doca-sha`, `doca-aes-gcm`,266 `doca-erasure-coding`, `doca-compress`, `doca-dpa`, `doca-gpunetio`,267 `doca-pcc`, `doca-sta`, `doca-telemetry`, `doca-urom`,268 `doca-verbs`, `doca-argp`, `doca-devemu`,269 `doca-dpdk-bridge`, …) — every per-library skill cross-links270 back to this skill for the foundation primitives. Loading this271 skill alongside any of them is the recommended default.