DOCA STA (Storage Target Acceleration)
Where to start: This skill assumes DOCA is already installed and
the user is doing hands-on NVMe-over-Fabrics storage-target work on
a BlueField-class device with DOCA. Open TASKS.md if
the user wants to do something (configure / modify / build / run
/ test / debug); open CAPABILITIES.md when the
question is what can DOCA STA express on this version. If the
user has not installed DOCA yet, route to
doca-setup first. If the user is
asking "is this an NVMe-oF initiator/host transport?", the
answer is no — doca-sta accelerates the target side: it presents
NVMe-oF doca_sta_subsystem targets backed by local NVMe-PCI
disks; the model lives in
CAPABILITIES.md ## Capabilities and modes.
Example questions this skill answers well
The CLASSES of DOCA STA 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.
- "How do I bring up an NVMe-oF target that uses the BlueField
to accelerate the storage data path?" — worked example: "define
a
doca_sta_subsystem (NQN) with one namespace backed by a local
NVMe-PCI disk (doca_sta_be) and accept NVMe-over-RDMA
connections from a remote initiator". Answered by the
target-model-and-lifecycle
workflow in TASKS.md ## configure +
CAPABILITIES.md ## Capabilities and modes
target-object table.
- "Can this BlueField accelerate an NVMe-oF target at all?" —
worked example: "my data center is RoCE end-to-end; does this
device support DOCA STA target acceleration?". STA transport is
RDMA-only (there is no NVMe-over-TCP path). Answered by the
capability-query rule (
doca_sta_cap_is_supported against a
doca_devinfo) in
CAPABILITIES.md ## Capabilities and modes
- the discovery step in
TASKS.md ## configure.
- "How deep can I size my I/O queues, and how many I/O queues
per connection?" — worked example: "I want 16 I/O queues at
depth 1024 each — does this device support that?". Answered by
the queue-sizing capability surface in
CAPABILITIES.md ## Capabilities and modes
- the queue-sizing step in
TASKS.md ## configure which gates on
the matching doca_sta_get_max_* query (e.g.
doca_sta_get_max_qps, doca_sta_get_max_io_queue_size).
- "Which other DOCA libraries do I need alongside doca-sta?" —
worked example: "do I need doca-rdma directly, or does doca-sta
hide it from me?". Answered by the substrate-library rule in
CAPABILITIES.md ## Safety policy
- the env-prep checklist in
TASKS.md ## configure step 1, which
routes the steering side to
doca-flow and the RDMA substrate
to doca-rdma.
- "Is this STA capability available on my installed DOCA?" —
worked example: "is STA target acceleration supported on this
BlueField + DOCA version?". Answered by the version-and-device
overlay in
CAPABILITIES.md ## Version compatibility,
which cross-links the canonical detection chain in
doca-version and adds the
STA-specific cap-query rule (pkg-config --modversion doca-sta
is the build-time anchor; the runtime doca_sta_cap_is_supported
query is the truth).
- "What does this
DOCA_ERROR_* from a STA call mean and which
layer caused it?" — worked example: "DOCA_ERROR_IO_FAILED
on a submitted NVMe read I/O against a target I can ping".
Answered by the STA overlay on the cross-library taxonomy in
CAPABILITIES.md ## Error taxonomy
- the layered ladder in
TASKS.md ## debug that escalates to
doca-debug.
Audience
This skill serves external developers building NVMe-over-Fabrics
storage targets that consume DOCA STA on BlueField — i.e., users
whose code calls doca_sta_* (directly in C/C++, or through
FFI/bindings from another language) to accelerate the target-side
data path of an NVMe-oF target on the BlueField hardware: presenting
doca_sta_subsystem targets (NQN + namespaces) backed by local
NVMe-PCI disks (doca_sta_be) to remote initiators over RDMA. The
skill is not for NVIDIA developers contributing to DOCA STA
itself, and it is not for initiator/host-side NVMe stacks.
Language scope. DOCA STA ships as a C library with
pkg-config module name doca-sta. DOCA STA ships no public
samples — it is absent from the DOCA libraries /
extension_libraries sample profiles — so the worked examples in
TASKS.md build against the public headers directly rather than
modify a shipped sample. C and C++ consumers are the canonical
case. 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 target-model, lifecycle,
capability-discovery, queue-pair shape, substrate-dependency,
and error-taxonomy guidance 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 when the user is doing hands-on DOCA STA work,
in any language. Concretely:
- Initializing a
doca_sta instance on a doca_dev opened
against a BlueField PF / SF and configuring the NVMe-oF
target subsystems before doca_ctx_start().
- Defining target resources —
doca_sta_subsystem (NQN +
namespaces) and doca_sta_be backend controllers (local
NVMe-PCI disks) — and accepting NVMe-oF connections (admin
queue plus N I/O queues per connection) on the target side as
remote initiators connect over RDMA CM.
- Reading or setting STA properties via the
doca_sta_set_*
family, checking device support via doca_sta_cap_is_supported,
and querying sizing limits via the doca_sta_get_max_* family
(max I/O queue depth, max number of queue pairs, max I/O size,
max subsystems, max namespaces per subsystem, max backends).
- Wiring the NVMe-over-RDMA transport — STA's only transport;
it lands on the
doca-rdma substrate and uses RDMA CM for
connection establishment — for the target's I/O queues.
- Wiring DOCA Flow rules so that NVMe-oF traffic actually
reaches the STA-managed queues — the steering boundary is
doca-flow, not doca-sta.
- Debugging a
DOCA_ERROR_* returned from a STA call (lifecycle
vs. capability vs. transport-layer I/O failure vs.
driver-below) and the per-queue events on the DOCA Core
progress engine.
- Designing or extending non-C bindings (Rust, Go, Python, …)
that wrap the DOCA STA C ABI — for the lifecycle, queue-pair,
cap-query, and substrate-dependency rules the wrapper must
honor.
Do not load this skill for general DOCA orientation, install
of DOCA itself, raw RDMA data movement (use
doca-rdma), raw packet I/O on
Ethernet queues (use doca-eth),
flow-rule programming (use doca-flow),
or initiator/host-side NVMe stack development
(SPDK or kernel-nvme own that, not this skill). For DOCA
documentation orientation, use
doca-public-knowledge-map.
What this skill provides
This is a thin loader. The body keeps only the orientation
needed to pick the right next file. The substantive STA-specific
material lives in two companion files:
CAPABILITIES.md — what DOCA STA can express on this
version: the target object model (doca_sta_subsystem /
namespaces / doca_sta_be backend NVMe-PCI disks),
the NVMe queue-pair shape (admin queue + I/O queues over RDMA),
the RDMA-only transport,
the capability-query surface (doca_sta_cap_is_supported plus
the doca_sta_get_max_* sizing queries), the STA
error taxonomy (mapped onto the cross-library DOCA_ERROR_*
set), the observability surface (per-queue progress engine
events, capability snapshots), and the safety policy that
gates substrate-library, permission, and steering
preconditions.
TASKS.md — step-by-step workflows for the six in-scope
STA verbs: configure, modify, build, run, test,
debug. Plus a Deferred task verbs block that points
out-of-scope questions at the right next skill, and a
Command appendix of the recurring commands the agent
reaches for.
The skill assumes a BlueField (with DOCA installed at the
standard location) plus a remote NVMe-oF initiator reachable on
the fabric to connect into the accelerated target, and one or
more local NVMe-PCI disks to back the target's namespaces. It
does not cover installing
DOCA — that path goes through
doca-setup. It does not cover
initiator/host-side NVMe stacks (SPDK bdev_nvme, kernel nvme
host) or NVMe protocol semantics above the accelerated target
data path — those are out of scope.
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 STA application source code, in any
language. DOCA STA ships no public samples — there is no
/opt/mellanox/doca/samples/doca_sta/ directory, and STA is
absent from the libraries / extension_libraries sample
profiles. The authoritative surface is the public headers under
$(pkg-config --variable=includedir doca-common) plus the public
DOCA STA guide; the agent builds against those directly rather
than modifying a shipped sample, per the
TASKS.md ## modify workflow.
- Initiator/host-side NVMe stack glue. SPDK
bdev_nvme,
the kernel nvme host, and any initiator-side NVMe stack are
upstream projects out of scope for this skill — DOCA STA is
target-side acceleration, not an initiator transport provider.
- Standalone build manifests (
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-sta 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 STA capability matrix, the target object model,
queue-pair shape, RDMA-only transport, capability-query
rules, error taxonomy, observability, and safety policy,
see CAPABILITIES.md.
- For step-by-step workflows — configure, modify, build,
run, test, debug — see TASKS.md.
Both companion files cross-link to each other,
doca-version for the canonical
version-handling rules,
doca-rdma for the RDMA substrate
that NVMe-over-RDMA transport lands on,
doca-flow for the steering rules
that direct NVMe traffic to STA-managed queues, and
doca-public-knowledge-map
whenever the right answer is "look it up in the public docs or
the installed package layout" rather than "STA-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. The
STA URL slug is DOCA-STA.
doca-setup — env preparation,
install verification, BlueField mode checks, and the
permission / group-membership requirements for opening a
doca_dev. This skill assumes its preconditions are
satisfied.
doca-version — canonical
DOCA version-handling rules. This skill's ## Version compatibility cross-links the four-way match rule and adds
only the STA-specific overlay (STA target-acceleration
availability windows, NVMe-oF feature-set device-conditional
support).
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 STA specifics on top.
doca-rdma — the RDMA substrate
that NVMe-over-RDMA transport lands on. STA hides most of
the RDMA queue-pair details from the consumer, but the user
still needs doca-rdma linked in and the device's RDMA
capabilities discoverable for the NVMe-over-RDMA path to
work.
doca-eth — the queue-pair
shape that STA's per-connection queue model echoes. Reach
here if the user is asking general questions about how
DOCA exposes queue-pairs that don't have an STA-specific
answer.
doca-flow — the steering
surface that decides which NVMe-oF packets land on which
STA-managed queue. DOCA STA does not program steering
itself; an NVMe-oF target whose connections never come up
is often a missing or wrong Flow rule, not a STA bug.
doca-debug — the
cross-cutting debug ladder (install / version / build /
link / runtime / program / driver). STA-specific debug
(transport-type mismatches, queue-depth oversize,
IO-failed transport errors) overlays on top of that
ladder.
1---2name: doca-sta3description: Use this skill when the user is doing hands-on NVMe-over-Fabrics storage-target work on a BlueField DPU or ConnectX NIC with DOCA STA — standing up a doca_sta DOCA Core context that accelerates the target-side NVMe-oF data path over RDMA, defining doca_sta_subsystem targets (NQN + namespaces) backed by local NVMe-PCI backend disks (doca_sta_be), checking device support via doca_sta_cap_is_supported, sizing the per-connection I/O queues, or debugging DOCA_ERROR_* from a STA call. Trigger even when the user does not say "DOCA STA" — typical implicit phrasings include "my NVMe-oF Connect never completes", "Identify Controller times out over RoCE", "16 I/O queues at depth 1024 — does this BlueField support that", "offload the nvmf target onto the DPU", or "DOCA_ERROR_IO_FAILED on an NVMe read". Refuse and route elsewhere for DOCA install, raw RDMA data movement, raw packet I/O, flow-rule programming, or initiator-side / host NVMe stack work — those belong to other skills.4license: Apache-2.05---67# DOCA STA (Storage Target Acceleration)89**Where to start:** This skill assumes DOCA is already installed and10the user is doing **hands-on NVMe-over-Fabrics storage-target work** on11a BlueField-class device with DOCA. Open [`TASKS.md`](TASKS.md) if12the user wants to *do* something (configure / modify / build / run13/ test / debug); open [`CAPABILITIES.md`](CAPABILITIES.md) when the14question is *what can DOCA STA express* on this version. If the15user has not installed DOCA yet, route to16[`doca-setup`](../../doca-setup/SKILL.md) first. If the user is17asking *"is this an NVMe-oF initiator/host transport?"*, the18answer is no — doca-sta accelerates the **target** side: it presents19NVMe-oF `doca_sta_subsystem` targets backed by local NVMe-PCI20disks; the model lives in21[`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes).2223## Example questions this skill answers well2425The CLASSES of DOCA STA questions this skill is built to answer,26each with one worked example. The agent should treat the *class*27as the load-bearing piece — the worked example is a single28instance.2930- **"How do I bring up an NVMe-oF target that uses the BlueField31 to accelerate the storage data path?"** — worked example: *"define32 a `doca_sta_subsystem` (NQN) with one namespace backed by a local33 NVMe-PCI disk (`doca_sta_be`) and accept NVMe-over-RDMA34 connections from a remote initiator"*. Answered by the35 target-model-and-lifecycle36 workflow in [`TASKS.md ## configure`](TASKS.md#configure) +37 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)38 target-object table.39- **"Can this BlueField accelerate an NVMe-oF target at all?"** —40 worked example: *"my data center is RoCE end-to-end; does this41 device support DOCA STA target acceleration?"*. STA transport is42 RDMA-only (there is no NVMe-over-TCP path). Answered by the43 capability-query rule (`doca_sta_cap_is_supported` against a44 `doca_devinfo`) in45 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)46 + the discovery step in47 [`TASKS.md ## configure`](TASKS.md#configure).48- **"How deep can I size my I/O queues, and how many I/O queues49 per connection?"** — worked example: *"I want 16 I/O queues at50 depth 1024 each — does this device support that?"*. Answered by51 the queue-sizing capability surface in52 [`CAPABILITIES.md ## Capabilities and modes`](CAPABILITIES.md#capabilities-and-modes)53 + the queue-sizing step in54 [`TASKS.md ## configure`](TASKS.md#configure) which gates on55 the matching `doca_sta_get_max_*` query (e.g.56 `doca_sta_get_max_qps`, `doca_sta_get_max_io_queue_size`).57- **"Which other DOCA libraries do I need alongside doca-sta?"** —58 worked example: *"do I need doca-rdma directly, or does doca-sta59 hide it from me?"*. Answered by the substrate-library rule in60 [`CAPABILITIES.md ## Safety policy`](CAPABILITIES.md#safety-policy)61 + the env-prep checklist in62 [`TASKS.md ## configure`](TASKS.md#configure) step 1, which63 routes the steering side to64 [`doca-flow`](../doca-flow/SKILL.md) and the RDMA substrate65 to [`doca-rdma`](../doca-rdma/SKILL.md).66- **"Is this STA capability available on my installed DOCA?"** —67 worked example: *"is STA target acceleration supported on this68 BlueField + DOCA version?"*. Answered by the version-and-device69 overlay in70 [`CAPABILITIES.md ## Version compatibility`](CAPABILITIES.md#version-compatibility),71 which cross-links the canonical detection chain in72 [`doca-version`](../../doca-version/SKILL.md) and adds the73 STA-specific cap-query rule (`pkg-config --modversion doca-sta`74 is the build-time anchor; the runtime `doca_sta_cap_is_supported`75 query is the truth).76- **"What does this `DOCA_ERROR_*` from a STA call mean and which77 layer caused it?"** — worked example: *"`DOCA_ERROR_IO_FAILED`78 on a submitted NVMe read I/O against a target I can ping"*.79 Answered by the STA overlay on the cross-library taxonomy in80 [`CAPABILITIES.md ## Error taxonomy`](CAPABILITIES.md#error-taxonomy)81 + the layered ladder in82 [`TASKS.md ## debug`](TASKS.md#debug) that escalates to83 [`doca-debug`](../../doca-debug/SKILL.md).8485## Audience8687This skill serves **external developers building NVMe-over-Fabrics88storage targets that consume DOCA STA on BlueField** — i.e., users89whose code calls `doca_sta_*` (directly in C/C++, or through90FFI/bindings from another language) to accelerate the target-side91data path of an NVMe-oF target on the BlueField hardware: presenting92`doca_sta_subsystem` targets (NQN + namespaces) backed by local93NVMe-PCI disks (`doca_sta_be`) to remote initiators over RDMA. The94skill is *not* for NVIDIA developers contributing to DOCA STA95itself, and it is *not* for initiator/host-side NVMe stacks.9697**Language scope.** DOCA STA ships as a C library with98`pkg-config` module name `doca-sta`. DOCA STA ships **no public99samples** — it is absent from the DOCA libraries /100extension_libraries sample profiles — so the worked examples in101`TASKS.md` build against the public headers directly rather than102modify a shipped sample. C and C++ consumers are the canonical103case. Other-language104consumers (Rust, Go, Python, …) consume the same `*.so` through105FFI or language-specific bindings; the skill's contribution in106that case is to keep the target-model, lifecycle,107capability-discovery, queue-pair shape, substrate-dependency,108and error-taxonomy guidance language-neutral, and to route the109agent to the public C ABI as the authoritative surface that any110wrapper will eventually call.111112## When to load this skill113114Load this skill when the user is doing hands-on DOCA STA work,115in any language. Concretely:116117- Initializing a `doca_sta` instance on a `doca_dev` opened118 against a BlueField PF / SF and configuring the NVMe-oF119 target subsystems before `doca_ctx_start()`.120- Defining target resources — `doca_sta_subsystem` (NQN +121 namespaces) and `doca_sta_be` backend controllers (local122 NVMe-PCI disks) — and accepting NVMe-oF connections (admin123 queue plus N I/O queues per connection) on the target side as124 remote initiators connect over RDMA CM.125- Reading or setting STA properties via the `doca_sta_set_*`126 family, checking device support via `doca_sta_cap_is_supported`,127 and querying sizing limits via the `doca_sta_get_max_*` family128 (max I/O queue depth, max number of queue pairs, max I/O size,129 max subsystems, max namespaces per subsystem, max backends).130- Wiring the **NVMe-over-RDMA** transport — STA's only transport;131 it lands on the `doca-rdma` substrate and uses RDMA CM for132 connection establishment — for the target's I/O queues.133- Wiring DOCA Flow rules so that NVMe-oF traffic actually134 reaches the STA-managed queues — the steering boundary is135 `doca-flow`, not `doca-sta`.136- Debugging a `DOCA_ERROR_*` returned from a STA call (lifecycle137 vs. capability vs. transport-layer I/O failure vs.138 driver-below) and the per-queue events on the DOCA Core139 progress engine.140- Designing or extending non-C bindings (Rust, Go, Python, …)141 that wrap the DOCA STA C ABI — for the lifecycle, queue-pair,142 cap-query, and substrate-dependency rules the wrapper must143 honor.144145Do **not** load this skill for general DOCA orientation, install146of DOCA itself, raw RDMA data movement (use147[`doca-rdma`](../doca-rdma/SKILL.md)), raw packet I/O on148Ethernet queues (use [`doca-eth`](../doca-eth/SKILL.md)),149flow-rule programming (use [`doca-flow`](../doca-flow/SKILL.md)),150or initiator/host-side NVMe stack development151(SPDK or kernel-nvme own that, not this skill). For DOCA152documentation orientation, use153[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md).154155## What this skill provides156157This is a **thin loader**. The body keeps only the orientation158needed to pick the right next file. The substantive STA-specific159material lives in two companion files:160161- `CAPABILITIES.md` — what DOCA STA can express on this162 version: the target object model (`doca_sta_subsystem` /163 namespaces / `doca_sta_be` backend NVMe-PCI disks),164 the NVMe queue-pair shape (admin queue + I/O queues over RDMA),165 the RDMA-only transport,166 the capability-query surface (`doca_sta_cap_is_supported` plus167 the `doca_sta_get_max_*` sizing queries), the STA168 error taxonomy (mapped onto the cross-library `DOCA_ERROR_*`169 set), the observability surface (per-queue progress engine170 events, capability snapshots), and the safety policy that171 gates substrate-library, permission, and steering172 preconditions.173- `TASKS.md` — step-by-step workflows for the six in-scope174 STA verbs: `configure`, `modify`, `build`, `run`, `test`,175 `debug`. Plus a `Deferred task verbs` block that points176 out-of-scope questions at the right next skill, and a177 `Command appendix` of the recurring commands the agent178 reaches for.179180The skill assumes a BlueField (with DOCA installed at the181standard location) plus a remote NVMe-oF initiator reachable on182the fabric to connect into the accelerated target, and one or183more local NVMe-PCI disks to back the target's namespaces. It184does not cover installing185DOCA — that path goes through186[`doca-setup`](../../doca-setup/SKILL.md). It does not cover187initiator/host-side NVMe stacks (SPDK `bdev_nvme`, kernel `nvme`188host) or NVMe protocol semantics above the accelerated target189data path — those are out of scope.190191## What this skill deliberately does not ship192193This skill is **agent guidance**, not a samples or templates194bundle. To keep the boundary clean, it deliberately does not195contain — and pull requests should not add:196197- **Pre-written DOCA STA application source code, in any198 language.** DOCA STA ships **no public samples** — there is no199 `/opt/mellanox/doca/samples/doca_sta/` directory, and STA is200 absent from the libraries / extension_libraries sample201 profiles. The authoritative surface is the public headers under202 $(pkg-config --variable=includedir doca-common) plus the public203 DOCA STA guide; the agent builds against those directly rather204 than modifying a shipped sample, per the205 [`TASKS.md ## modify`](TASKS.md#modify) workflow.206- **Initiator/host-side NVMe stack glue.** SPDK `bdev_nvme`,207 the kernel `nvme` host, and any initiator-side NVMe stack are208 upstream projects out of scope for this skill — DOCA STA is209 target-side acceleration, not an initiator transport provider.210- **Standalone build manifests** (`meson.build`, `CMakeLists.txt`,211 `Cargo.toml`, …) parked inside the skill. The agent212 constructs the build manifest *in the user's project213 directory* against the user's installed DOCA, where214 `pkg-config --modversion doca-sta` is the source of truth.215- **A `samples/`, `bindings/`, or `reference/` subtree** of any216 kind. A mock or incomplete artifact in this skill's tree,217 even one labeled "reference", is misleading: users will218 read it as buildable.219220## Loading order2212221. Read this `SKILL.md` first to confirm the user's question223 is in scope.2242. **For the STA capability matrix, the target object model,225 queue-pair shape, RDMA-only transport, capability-query226 rules, error taxonomy, observability, and safety policy,227 see [CAPABILITIES.md](CAPABILITIES.md).**2283. **For step-by-step workflows — configure, modify, build,229 run, test, debug — see [TASKS.md](TASKS.md).**230231Both companion files cross-link to each other,232[`doca-version`](../../doca-version/SKILL.md) for the canonical233version-handling rules,234[`doca-rdma`](../doca-rdma/SKILL.md) for the RDMA substrate235that NVMe-over-RDMA transport lands on,236[`doca-flow`](../doca-flow/SKILL.md) for the steering rules237that direct NVMe traffic to STA-managed queues, and238[`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md)239whenever the right answer is "look it up in the public docs or240the installed package layout" rather than "STA-specific241guidance".242243## Related skills244245- [`doca-public-knowledge-map`](../../doca-public-knowledge-map/SKILL.md) —246 the routing table for every public DOCA documentation source247 and the on-disk layout of an installed DOCA package. The248 STA URL slug is `DOCA-STA`.249- [`doca-setup`](../../doca-setup/SKILL.md) — env preparation,250 install verification, BlueField mode checks, and the251 permission / group-membership requirements for opening a252 `doca_dev`. This skill assumes its preconditions are253 satisfied.254- [`doca-version`](../../doca-version/SKILL.md) — canonical255 DOCA version-handling rules. This skill's `## Version256 compatibility` cross-links the four-way match rule and adds257 only the STA-specific overlay (STA target-acceleration258 availability windows, NVMe-oF feature-set device-conditional259 support).260- [`doca-structured-tools-contract`](../../doca-structured-tools-contract/SKILL.md) —261 the bundle's structured-tools precedence rule (detect /262 prefer / fall back / report). The Command appendix in263 [TASKS.md](TASKS.md) honors this contract.264- [`doca-programming-guide`](../../doca-programming-guide/SKILL.md) —265 general DOCA programming patterns shared by every library:266 the canonical `pkg-config` + meson build pattern, the267 universal modify-a-shipped-sample first-app workflow, the268 universal lifecycle, the cross-library `DOCA_ERROR_*`269 taxonomy, and the program-side debug order. This skill270 layers STA specifics on top.271- [`doca-rdma`](../doca-rdma/SKILL.md) — the RDMA substrate272 that NVMe-over-RDMA transport lands on. STA hides most of273 the RDMA queue-pair details from the consumer, but the user274 still needs `doca-rdma` linked in and the device's RDMA275 capabilities discoverable for the NVMe-over-RDMA path to276 work.277- [`doca-eth`](../doca-eth/SKILL.md) — the queue-pair278 shape that STA's per-connection queue model echoes. Reach279 here if the user is asking general questions about how280 DOCA exposes queue-pairs that don't have an STA-specific281 answer.282- [`doca-flow`](../doca-flow/SKILL.md) — the steering283 surface that decides which NVMe-oF packets land on which284 STA-managed queue. DOCA STA does *not* program steering285 itself; an NVMe-oF target whose connections never come up286 is often a missing or wrong Flow rule, not a STA bug.287- [`doca-debug`](../../doca-debug/SKILL.md) — the288 cross-cutting debug ladder (install / version / build /289 link / runtime / program / driver). STA-specific debug290 (transport-type mismatches, queue-depth oversize,291 IO-failed transport errors) overlays on top of that292 ladder.