1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | create-sbom-harness-harness-skills |
| 作者/维护者 | Harness(harness 官方组织) |
| 来源链接 | https://github.com/harness/harness-skills/tree/main/skills/create-sbom |
| 许可证 | Apache-2.0(GitHub API 获取,仓库级;SKILL.md 自身也声明 license: Apache-2.0) |
| GitHub Stars / Forks | 合集仓库整体 73 / 14(GitHub API 获取;该数字属整个 harness-skills 合集,不代表本技能自身热度,取证方式见第 7 章) |
| 最新版本 | SKILL.md 声明 version 1.0.0;子目录提交于 2026-06-03(GitHub API 获取) |
| 安装方式 | 克隆仓库 + 配置 Harness MCP v2 Server(详见第 10 章) |
2. 功能介绍与亮点
create-sbom 用自然语言向已有的 Harness 流水线精确插入一个 SBOM Orchestration(SscaOrchestration)步骤,为容器镜像或代码仓库生成软件成分清单。
- 三种阶段类型全覆盖:CI、CD(Deployment,需搭配容器化 step group)、Security 均可放置——是同组姊妹技能中覆盖面最广的一个(sign-artifact 明确不支持 CD 阶段)
- 生成工具与格式可选:Syft 或 cdxgen 两种引擎,SPDX 或 CycloneDX 两种输出格式
- 来源覆盖广:Docker、ECR、GCR、GAR、ACR、Harness Artifact Registry(HAR)、代码仓库、本地工作区共 8 种来源
- 可选签名认证联动:生成 SBOM 时可直接附加 keyless 或 Cosign 签名认证,与 sign-artifact 形成前后衔接
- 强制确认放置位置:即使流水线只有一个 CI 阶段、或已存在 SBOM 步骤、或此前会话已配置过同一流水线,向导仍必须重新询问放置阶段,不允许凭历史上下文跳过——防止 agent 悄悄把步骤加错位置
- 故障排查覆盖 11 类具体场景:从“Pipeline Not Found”到“CD — infrastructureDefinitions Missing”逐条给出诊断路径,是同组文档量最大的一个(约 24.6KB)
3. 适用场景
所属分类:安全与合规
适合已经在用 Harness CI/CD、需要为某条流水线的容器镜像或代码仓库产出软件成分清单(SBOM)以满足供应链安全合规要求(如向审计方或客户提供依赖清单)的工程或安全团队。用一句话描述来源与目标阶段,agent 即可按向导逐项确认后完成配置,不必手写 SscaOrchestration 的 YAML 细节。
4. 跨 Agent 兼容性
- Claude Code:原生支持——仓库根目录 CLAUDE.md 导入 AGENTS.md,skills 自动发现,README 给出具体安装步骤
- Codex:官方支持——README 明确列出 OpenAI Codex 的设置步骤(读取根目录 AGENTS.md 作为系统指令)
- OpenClaw:未验证——抓取材料未点名,仅笼统声明支持任何兼容系统指令/MCP/文件上下文的 AI 工具
- Hermes Agent:未验证——抓取材料未点名,理由同上
5. 推荐理由
在同一仓库的供应链安全工具组里,create-sbom 是覆盖面最完整的一个:三种流水线阶段全支持、两种生成引擎与两种输出格式可选、来源类型多达 8 种,且向导对“放置位置”这一最容易出错的环节做了强制二次确认,不会因为历史上下文或已有步骤而静默跳过。对还不熟悉 Harness SSCA YAML 语法、又需要满足软件成分清单合规要求的工程师和安全人员,是一次性把 SBOM 生成配置正确的低门槛方式。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Harness 官方出品,但本子技能自身仅 1 次提交,仓库整体 73 stars 规模有限,未见独立于官方渠道的第三方讨论 |
| 可用性 | 8 | 10+ 阶段向导(含 CD 前置子流程)、11 类故障场景排查、支持 8 种制品来源,但需要已有 Harness 账号、配置好的 MCP v2 Server 和一条已存在的流水线,非零配置开箱即用 |
| 安全性 | 9 | 见下方检查清单 |
| 综合 | 8.0 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 不执行任意 shell 命令,全部通过 harness_get/harness_update/harness_list/harness_search 等 MCP 工具调用完成;正文明确“仅插入新步骤,不得修改已有步骤/变量/失败策略” |
| ② 联网外发 | 仅通过用户自行配置的 Harness MCP v2 Server 与用户自己的 Harness 账号通信,未见其他外发目标 |
| ③ 凭据存储 | 依赖 Harness MCP Server 自身的 API Key 配置(环境变量);技能正文不要求粘贴或落盘明文凭据 |
| ④ 可疑指令 | 全文未发现提示注入或隐蔽指令;多条规则(如“Never assume pipeline or stage from session history”“Phase 3 Placement is never optional”)反而是明确的防误操作护栏 |
| ⑤ 作者信誉 | Harness 为知名商业 CI/CD 平台厂商,harness 为其官方 GitHub 组织 |
| ⑥ License | Apache-2.0,明确(仓库级) |
| ⑦ 维护时间 | 子目录提交于 2026-06-03,仓库整体最近一次提交为 2026-07-07,非弃置项目 |
7. 跟同类 Skills 相比的优势
| 方案 | 定位 | 差异 |
|---|---|---|
| create-sbom(本技能) | 向已有 Harness 流水线插入 SBOM 生成步骤,三种阶段、两种引擎/格式、8 种来源可选 | 只负责“生成”这一动作,不做漏洞比对;专属 Harness 平台 |
| sign-artifact(同仓库姊妹技能) | 把 Cosign 签名步骤插入既有流水线 | 负责签名而非生成 SBOM,是 create-sbom 之后可选的下一步,且不支持 CD 阶段 |
| manage-supply-chain(同仓库姊妹技能) | 一站式配置 SBOM/签名/SLSA/OPA 策略并给出合规仪表盘 | 覆盖整条链路的策略与仪表盘,不做单个 SBOM 步骤的精细参数配置 |
| cyclonedx-sbom-generator(第三方技能市场 agentskillexchange.com 发布,底层调用 cdxgen 与 Syft) | 扫描 npm/pip/Go 依赖生成 CycloneDX 格式 SBOM,并通过 OSV.dev API 交叉比对已知漏洞 | 不绑定特定 CI/CD 平台,聚焦语言生态依赖而非容器镜像/制品仓库,额外提供 CVE 比对,但接入 CI 流程需自行搭建 |
| supply-chain-risk-auditor(Trail of Bits 出品) | 引入第三方库前对依赖做静态尽调,标记维护者单一、久未更新、历史 CVE 等风险 | 分析对象是依赖库本身而非制品/镜像,发生在“要不要引入”阶段,而非“已构建产物要不要生成 SBOM”阶段 |
8. 用户评价
该技能所在仓库目前仅有 Harness 内部工程师的提交与合并记录,第三方平台尚无独立的具名用户评价。
9. 其他补充
同仓库还有 sign-artifact(签名)、verify-sign(验签)、manage-supply-chain(策略仪表盘)、enforce-sbom(SBOM 策略强制)等姊妹技能,覆盖供应链安全的其他环节;需要“生成 SBOM → 签名 → 验签 → 策略强制”完整链路时可搭配安装。
10. 安装使用方式
git clone https://github.com/harness/harness-skills.git
cd harness-skills
claude
在 ~/.claude/settings.json 中加入 Harness MCP v2 Server 配置:
{
"mcpServers": {
"harness-mcp-v2": {
"command": "npx",
"args": ["-y", "harness-mcp-v2"],
"env": { "HARNESS_API_KEY": "<your-api-key>" }
}
}
}
安装后无需重启;在对话中输入 /create-sbom 并描述需求(如“给 backend-api 流水线的 Docker 推送步骤后面加上 SBOM 生成,Syft + SPDX 格式”)即可触发。
11. 注意事项
- 必须已有 Harness 账号并配置好 Harness MCP v2 Server(含 API Key),无法离线或脱离 Harness 平台使用
- 只能作用于已存在的流水线,不会创建独立的 SBOM 专用流水线
- 放在 CD(Deployment)阶段时必须包在容器化 step group(
stepGroupInfra)内,若流水线还没有 Deploy 阶段需先补齐服务/环境/基础设施等前置资源,配置量明显高于放在 CI 阶段 - JAR/Helm 等非容器制品若没有对应的镜像仓库,需改用 ingestion 模式,本技能的默认向导流程未覆盖该模式的细节
- OpenClaw / Hermes Agent 的兼容性未见官方声明,跨 agent 使用前建议自行验证