v1.2.0|可恢复安装事务与可证明的自动发布
v1.2.0|可恢复安装事务与可证明的自动发布
发布范围
v1.2.0 是 production-delivery-orchestrator 的运维加固版本。技能名称、目录结构、原生目标、项目桥接格式和既有安装参数保持兼容;v1.1.0 保留为直接回滚版本。
主要更新
1. 多目标安装成为可补偿事务
- 安装器在写入前预检全部原生目标与桥接文件,并为所有将修改的路径建立快照;
- 任一技能目录或桥接写入失败时,已写入的目标会逆序恢复,包括原有目录和规则文件内容;
- 进程异常中断会保留项目级或用户级 journal。使用原安装相同的
--scope、--project-dir、--targets、--bridges和--custom-bridge参数加--recover可恢复未完成安装; - 恢复前严格校验 journal schema、事务根目录、备份布局、路径边界和符号链接。journal 被篡改、备份缺失或路径越界时会失败关闭,不会触碰目标文件;
- 已提交但来不及清理的 journal 只清理自身备份,不会回退已成功安装的内容。
2. 版本和制品由机器可读元数据驱动
release/metadata.json是版本、tag、回滚版本、兼容范围、Release 说明和 attestation 策略的单一来源;release/build_release.py以该元数据构建确定性的 ZIP、provenance.json和SHA256SUMS.txt,并可离线复核 ZIP 成员、manifest、canonical artifact hash 与校验和;- 构建器使用跨平台的 UTF-8/LF canonical hash,并固定 ZIP 时间与文件顺序。相同输入、提交和元数据会得到相同三份制品。
3. GitHub Release 制品证明
- 精确三段 SemVer tag 会触发
.github/workflows/release.yml;工作流校验 annotated tag 与元数据匹配,构建并自验制品,创建中文 GitHub Release; - 工作流使用 GitHub Artifact Attestations 为 Release ZIP 创建可验证的构建证明。下载 ZIP 后运行:
gh attestation verify production-delivery-orchestrator-v1.2.0.zip \
--repo lza6/Agent-skills-code-op本地的 ZIP、SHA256SUMS.txt 和 provenance.json 只提供完整性及来源核验;只有 GitHub workflow 的 attestation 步骤成功后,ZIP 才拥有 GitHub 签发的可验证构建证明。历史 v1.1.0 附件没有该证明,不应倒推为已签名。
本地验证
PYTHONUTF8=1 python -m unittest \
skills/production-delivery-orchestrator/tests/test_install_skill.py -v
PYTHONUTF8=1 python -m unittest release/tests/test_build_release.py -v
python release/build_release.py --output-dir dist
python release/build_release.py --output-dir dist --verify
git diff --check验收要点:安装器共 20 项测试,覆盖跨目标补偿、持久 journal 恢复、篡改 journal 的项目内/项目外路径、缺失备份、已提交 journal、显式恢复计划和悬空桥接符号链接;Release 构建器共 4 项测试,覆盖确定性、篡改阻断、元数据约束和与 forward harness 的 canonical hash 一致性。
安装、恢复与回滚
安装到 Codex、Claude Code 和通用 Agent Skills:
npx skills add https://github.com/lza6/Agent-skills-code-op/tree/v1.2.0 \
--skill production-delivery-orchestrator \
--global \
--agent codex claude-code若 Python 安装在异常中断后报告未完成事务,先使用原安装的 scope 和项目目录恢复,再重新执行安装:
python skills/production-delivery-orchestrator/scripts/install_skill.py \
--scope project \
--project-dir /path/to/project \
--targets all \
--bridges all \
--recover回滚到 v1.1.0:
npx skills remove production-delivery-orchestrator --global --yes
npx skills add https://github.com/lza6/Agent-skills-code-op/tree/v1.1.0 \
--skill production-delivery-orchestrator \
--global \
--agent codex claude-code \
--yes发布者操作
- 在
main上通过本地验证并确认工作树干净; - 确认
release/metadata.json的 tag 与本说明文件一致; - 创建 annotated tag,例如
git tag -a v1.2.0 -m "release: v1.2.0"并推送; - 等待
releaseworkflow 成功,再从 GitHub Release 下载 ZIP、checksum 与 provenance; - 执行
sha256sum --check SHA256SUMS.txt和gh attestation verify,将实际 run URL、tag commit 和附件 SHA-256 回填到发布核验记录。
不要移动已发布 tag;需要修复时创建后续版本和新的 attestation。
发布核验(2026-07-17)
- Annotated tag:
v1.2.0→03ad1d944e5c176793995bcb3ef47f3db3ba4218。 - Release workflow:29591153755 成功;其中元数据校验、确定性构建/复验、ZIP attestation 和中文 Release 上传均成功。
- GitHub Release:v1.2.0,非 Draft、非 Prerelease;附件为 ZIP、
provenance.json和SHA256SUMS.txt。 - ZIP SHA-256:
ee53bef30bec90fdb34ea02d4c64757b33c2db4c6c77c63fe3050830c1c7d985;已从 Release 下载三份附件并通过构建器离线复验。 gh attestation verify production-delivery-orchestrator-v1.2.0.zip --repo lza6/Agent-skills-code-op返回成功;taggednpx.cmd -y skills add .../tree/v1.2.0 --list发现唯一技能production-delivery-orchestrator。