发布完整性全维度验证技能

389542 81926 更新时间: 2026-07-12 22:56:55

Verify Release 是一个用于验证 OpenClaw 发布是否在 GitHub、npm、插件生态、ClawHub、包冒烟测试及 Live Gateway 代理调用中完整发布的只读验证技能。它不执行任何发布操作(由 release-openclaw-maintainer 负责),仅回答“某个版本是否已完全发布/上线/冒烟测试通过/Live验证通过”之类的问题,并通过证据驱动的检查清单给出 yes/no 结论。

安装
npx skills add https://github.com/openclaw/openclaw --skill verify-release
技能详情 readonly

一、技能概述

该技能是 OpenClaw 发布流程的最终质量门控验证层,在每次 Beta/Stable 发布完成后使用。它通过一系列跨维度、不可变的证据检查,确认一个发布版本在 GitHub Release、npm registry、插件 npm 包、ClawHub 插件仓库、本地包冒烟测试以及 Live Gateway 代理调用等所有维度上均已成功发布且可正常工作。

核心理念验证而非发布——该技能只读不写,不执行版本 bump、npm publish、GitHub release 或任何变更操作。所有结论必须基于实时证据,不信任本地 checkout 状态、旧有的 release notes 或过时的记忆。


二、核心功能

1. GitHub Release 验证

  • 使用 gh release view 获取 release 的完整元数据(tag、名称、发布时间、是否草稿/预发布、target commit、URL、body、assets)

  • 确认稳定版(stable)不是 draft 或 prerelease

  • 确认 release body 包含 npm、CI、plugin npm、ClawHub、mac/appcast 等预期的证据链接

  • 确认 stable mac 发布包含预期的 assets:zip、dmg、dSYM、依赖证据、不可变的 full-validation manifest、postpublish evidence 和 stable-main closeout manifest

  • 校验证据完整性:下载每个不可变证据 asset 及其 .sha256 校验文件,验证 checksum

2. Root npm 包验证

  • 使用 npm view openclaw@ 获取 version、dist-tags.latest、dist.tarball、dist.integrity、time 等元数据

  • 确认 latest dist-tag 等于当前验证的稳定版本

  • 记录 tarball、integrity 和 publish time

  • 确认 release postpublish evidence 中记录 npmRegistrySignaturesVerified: true 和 npmProvenanceAttestationMatched: true

3. 插件发布集验证

  • 从 GitHub 获取精确的 tag 元数据(不信任 dirty checkout),下载 tag tarball 到 /tmp 进行独立验证

  • 统计 extensions/*/package.json 中 openclaw.release.publishToNpm === true 和 publishToClawHub === true 的插件数量

  • 对比预期数量与 workflow job 实际数量:gh api repos/openclaw/openclaw/actions/runs/<run-id>/jobs --paginate

  • 确认每个预期 npm 插件都有对应的版本,且 dist-tags.latest 等于当前发布版本

4. ClawHub 插件仓库验证

  • 检查 Plugin ClawHub Release workflow 的结论和 publish job 数量

  • 使用 OpenClaw 自身进行 live registry proof:openclaw plugins search <version> --json

  • 在隔离的 HOME 环境中安装一个官方插件进行验证:openclaw plugins install clawhub:@openclaw/matrix --pin

5. 发布工作流验证

  • 验证 release notes 中引用的所有工作流结论:Full Release Validation、OpenClaw Release Checks、OpenClaw NPM Release、Plugin NPM Release、Plugin ClawHub Release、mac preflight/validation/publish

  • 对于 stable 版本,验证 OpenClaw Stable Main Closeout 成功完成,且其 manifest 记录了匹配的 release tag、rollback drill、stable soak 和 blocking 性能证据

  • 仅摘要相关的成功/失败 job,忽略 routine 跳过的可选 lanes(除非 release body 承诺了它们)

6. 已发布包冒烟测试

  • 在 /tmp 隔离环境中,使用 npm exec --yes --package openclaw@<version> -- openclaw --version 验证 CLI 可执行

  • 运行至少一个无害命令触及已发布的 CLI 表面,例如 plugins --help 或 gateway --help

7. Live Gateway 代理调用验证

  • 使用临时 HOME/workspace(使用用户的正常状态):HOME=/tmp/openclaw-release-smoke/home OPENCLAW_WORKSPACE=/tmp/openclaw-release-smoke/work pnpm openclaw --dev gateway run --auth none --force --verbose

  • 通过 CLI 进行健康检查:openclaw --dev gateway health --json

  • 使用继承的 OPENAI_API_KEY、短提示词、显式 session key、JSON 输出和已知可用模型,执行一次 Gateway 支持的代理调用

  • 降级处理:如果配置的默认模型不可用,记录该 caveat 并重试最新的已知可用 OpenAI 模型,因此宣布 release 失败

  • 停止 gateway 并验证端口已释放


三、主要用途

  1. 发布完整性验证
    在每次 Beta/Stable 发布完成后,回答“这个版本是否已完全发布?”——确认 GitHub Release、npm、插件、ClawHub 等所有维度均已成功上线。

  2. 发布冒烟测试
    在隔离环境中执行已发布包的 CLI 冒烟测试,确保包可安装、可执行、基本命令可工作。

  3. Live Gateway 端到端验证
    通过真实的 Gateway 代理调用,验证发布版本在实际运行环境中能够正常处理 LLM 请求。

  4. 发布后证据归档确认
    确认所有不可变证据 asset(manifest、postpublish evidence、closeout manifest)已正确上传且 checksum 匹配。

  5. 发布状态报告
    输出 yes/no 结论、证据 bullets、caveats 和 cleanup 建议,供维护者决策参考。


四、核心规则

规则 说明
解析版本号 将 .27 等短后缀解析为具体的 CalVer 版本(从当前日期/上下文推断),并明确说出解析后的版本
验证实时状态 不信任本地 checkout 状态、release notes 或旧记忆作为当前真相
Dirty checkout 处理 如果 checkout 是 dirty 或 divergent,仅将其用于 scripts/reference;版本元数据从 GitHub release/tag 或 /tmp 下的 tag tarball 获取
绝不打印 secrets 仅将继承的 live keys 用于限定范围的 smoke 命令
输出风格 保持最终输出简洁:yes/no、证据 bullets、caveats、cleanup

五、需报告的 Caveats

Caveat 说明
Dist-tag caveat stable/latest 是 release truth;如果可选的 beta 镜像仍指向 beta 版本,报告为 caveat 而非 stable-release blocker(除非用户明确要求验证 beta promotion)
Divergent checkout caveat 说明本地 source SHA 与 release tag 或 origin 不同,以及实际使用了哪些 live sources
Smoke caveat 区分 Gateway-backed agent 成功与本地 embedded fallback。有效的 Gateway smoke 应包含 health OK 以及 gateway log/run id for the agent call

六、与其他技能的协作

技能 协作方式
release-openclaw-maintainer 本技能是验证层,maintainer 技能是执行层——本技能在发布完成后验证,不执行任何发布操作
release-openclaw-ci CI 技能负责发布前的验证;本技能负责发布后的完整性验证

七、总结

Verify Release 是一个只读的发布完整性验证技能,通过 GitHub Release 证据校验、npm registry 确认、插件发布集统计、ClawHub live proof、包冒烟测试和 Live Gateway 代理调用等六维检查清单,以证据驱动的方式回答“某个 OpenClaw 版本是否已完全发布”的问题。它不执行任何发布操作,所有结论基于实时证据而非本地缓存或记忆,适用于 OpenClaw 项目维护者在每次 Beta/Stable 发布后确认发布完整性和可用性的场景。