1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | verify-sign-harness-harness-skills |
| 作者/维护者 | Harness(harness 官方组织) |
| 来源链接 | https://github.com/harness/harness-skills/tree/main/skills/verify-sign |
| 许可证 | Apache-2.0(GitHub API 获取,仓库级) |
| 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. 功能介绍与亮点
verify-sign 用自然语言向已有的 Harness 流水线精确插入一个 Artifact Verification(SscaArtifactVerification)步骤,校验制品上的 Cosign 签名。
- 三阶段全覆盖:CI、Security、CD(Deploy,容器化 step group 形式)均支持插入验证步骤,覆盖面比同仓库的签名技能更广(签名目前不支持 Deploy 阶段)
- 验证方式与签名方式自动对齐:keyless(Harness OIDC)与 key-based(Cosign 公钥)两种校验方式,向导会先读取流水线中已有的
SscaArtifactSigning步骤,推断应使用哪种验证方式,避免验证方式与签名方式不匹配导致校验失败 - 来源类型广:第三方镜像仓库(Docker、ECR、GCR、GAR、ACR)、Harness Artifact Registry(HAR)、Harness 本地阶段产物三类来源均可验证
- CD 部署前置检查:在向 Deploy 阶段写入验证步骤前,先核实对应 Kubernetes Connector 是否有匹配的在线 Delegate,避免因 Delegate 缺失导致部署直接失败才发现问题
- 详尽故障排查:涵盖签名步骤缺失、验证方式不匹配、镜像 tag 不一致(静态 tag vs 服务默认 artifact 表达式)、Delegate 不可用、YAML 校验错误等十余种常见故障场景
3. 适用场景
所属分类:安全与合规
适合已经在用 Harness CI/CD、且流水线中已完成制品签名步骤的工程或安全团队:当需要在部署前对某条流水线的具体阶段添加签名校验(如满足“未通过签名验证的制品不得部署”的合规要求)时,不必手写 SscaArtifactVerification 的 YAML 细节,也不必自行判断该用 keyless 还是 key-based 校验,用一句话描述需求即可让 agent 完成配置。
4. 跨 Agent 兼容性
- Claude Code:原生支持——仓库根目录 CLAUDE.md 导入 AGENTS.md,skills 自动发现,README 给出具体安装步骤
- Codex:官方支持——README 明确列出 OpenAI Codex 的设置步骤(读取根目录 AGENTS.md 作为系统指令)
- OpenClaw:未验证——抓取材料未点名,仅笼统声明支持任何兼容系统指令/MCP/文件上下文的 AI 工具
- Hermes Agent:未验证——抓取材料未点名,理由同上
5. 推荐理由
把“给已有流水线精确加一个签名验证步骤”这件需要对齐签名方式、留意 Delegate 可用性的细节工作交给 agent 按向导逐项确认,同时靠显式规则约束 agent 不越权改动流水线其他部分。相比只做签名的姊妹技能,verify-sign 额外覆盖了 CD 部署前验证这一更贴近“上线前最后一道关卡”的场景,适合还不熟悉 Harness SSCA YAML 语法、但需要在部署流程中卡住未签名制品的初中级工程师。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Harness 官方出品,但本子技能自身仅 1 次提交,仓库整体 73 stars 规模有限,未发现独立于官方渠道的第三方讨论 |
| 可用性 | 8 | 完整向导流程 + 十余种故障场景排查,但依赖已配置好的 Harness 账号、MCP v2 Server、一条已存在且已完成签名的流水线,非零配置开箱即用 |
| 安全性 | 9 | 见下方检查清单 |
| 综合 | 8.0 | 三项均值 |
安全检查清单:
| 检查项 | 结果 |
|---|---|
| ① Shell 命令与权限范围 | 不执行任意 shell 命令,全部通过 harness_get/harness_update/harness_list 等 MCP 工具调用完成;正文明确要求写入前先展示摘要并等待用户确认 |
| ② 联网外发 | 仅通过用户自行配置的 Harness MCP v2 Server 与用户自己的 Harness 账号通信,未见其他外发目标 |
| ③ 凭据存储 | 依赖 Harness MCP Server 自身的 API Key 配置(环境变量);密钥式校验读取的是 Cosign 公钥文件密钥,技能正文不要求粘贴或落盘明文凭据 |
| ④ 可疑指令 | 全文未发现提示注入或隐蔽指令;多条规则明确划定边界(如“不得执行流水线”“不得替用户新增无关扫描步骤”) |
| ⑤ 作者信誉 | Harness 为知名商业 CI/CD 平台厂商,harness 为其官方 GitHub 组织 |
| ⑥ License | Apache-2.0,明确(仓库级) |
| ⑦ 维护时间 | 子目录提交于 2026-06-03,仓库整体最近一次提交为 2026-07-07,非弃置项目 |
7. 跟同类 Skills 相比的优势
| 方案 | 定位 | 差异 |
|---|---|---|
| verify-sign(本技能) | 验证已签名制品的 Cosign 签名,支持 CI/Security/CD 三阶段 | 是同仓库签名技能的验证对应物,前提是制品已被签名,不负责生成签名;唯一支持 CD 部署前验证的成员 |
| sign-artifact(同仓库姊妹技能) | 把 Cosign 签名步骤插入既有流水线 | 只负责生成签名,不支持 CD Deploy 阶段插入 |
| manage-supply-chain(同仓库姊妹技能) | 一站式配置 SBOM/签名/SLSA/OPA 策略并给出合规仪表盘 | 覆盖整条供应链安全链路的规划与仪表盘,不做单一验证步骤的精细插入 |
| supply-chain-risk-auditor(Trail of Bits 出品) | 对代码仓库的第三方依赖做静态尽调,标记单一维护者、久未更新、历史 CVE 等风险 | 分析对象是依赖库本身而非制品签名,产出风险评估报告,不涉及 CI/CD 流水线配置 |
8. 用户评价
该技能所在仓库目前仅有 Harness 内部工程师的提交与合并记录,第三方平台尚无独立的具名用户评价。
9. 其他补充
同仓库还有 create-sbom、manage-supply-chain、enforce-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>" }
}
}
}
安装后无需重启;在对话中输入 /verify-sign 并描述需求(如“给某流水线的部署阶段前加上签名校验,keyless 方式”)即可触发。
11. 注意事项
- 必须已有 Harness 账号并配置好 Harness MCP v2 Server(含 API Key),无法离线或脱离 Harness 平台使用
- 只能作用于已存在的流水线,且流水线中须已有签名步骤(或用户确认制品已被签名)
- key-based 校验要求已将对应 Cosign 公钥存为 Harness 文件密钥;校验方式必须与签名方式一致(keyless 对 keyless,key-based 对同一密钥对的公钥)
- 写入 CD 部署阶段前会检查 Kubernetes Connector 是否有匹配的在线 Delegate,若无匹配 Delegate 需先处理,否则部署会因
DELEGATE_NOT_AVAILABLE失败 - OpenClaw / Hermes Agent 的兼容性未见官方声明,跨 agent 使用前建议自行验证