用途:该技能面向正在编写首个 DOCA 应用或提出与具体库无关的编程问题的外部开发者,即代码中调用 doca_<library>_* 符号(C/C++ 直接调用,或通过 FFI/绑定从其他语言调用)的用户。它讲的是“用 DOCA 编程”,而非“开发 DOCA 本身”,不假设可访问 DOCA 源码树或内部工具。
主要能力:解释 DOCA 的组成(库、应用、服务、工具)及其运行位置;给出通用的 pkg-config + meson 构建模式(pkg-config doca-<library>);提供从已发布示例派生自定义首个应用的通用流程;说明通用生命周期 cfg-create → init → start → use → stop → destroy;介绍跨库的 DOCA_ERROR_* 分类、doca_error_t 与 doca_error_get_descr();给出提交前验证规则与程序侧安全策略;并覆盖 C/C++ 直接调用与非 C 语言经 FFI 调用公共 C ABI 两类路径。
使用方式:先读 SKILL.md 确认问题属于编程类,再按需查阅 CAPABILITIES.md(DOCA 形态、生命周期、错误分类、可观测性、安全策略)与 TASKS.md(configure、build、modify、run、test、debug 六个动词的分步流程)。若涉及具体库,先走 TASKS.md 的 modify 通用复制修改模式,再交给对应库技能替换库相关取值。
适用场景:首个 DOCA 程序、任意库的构建命令、对象生命周期顺序、DOCA_ERROR_* 含义与处理、程序运行但线上无流量、非 C 语言消费 DOCA、示例与应用的分类构建等。
限制:该技能假设 doca-setup 已完成干净安装(pkg-config 可解析、hugepages 已挂载、设备可见),不负责环境准备;安装、环境、路由与具体库 API 问题分别交由 doca-setup、doca-public-knowledge-map 和对应库技能处理。技能本身不附带任何语言的示例源码、构建清单或参考子树,避免提供无法验证的代码。