docs/histories/2026-08/2026-08-23-release-redraft.md
Links: docs/exec-plans/completed/2026-08-23-release-redraft.md
为发布脚本和 release-easydict skill 增加显式重新 Draft 模式:废弃未公开的同版本旧 Draft,并基于同步后的本地 dev 重建,自动递增构建号且不污染用户当前 checkout。
draft <version> --replace-draft,冻结旧 GitHub Draft/Tag 身份和完整 Draft JSON,将旧本地状态暂存为可恢复备份。dev、main 和版本 Tag,再删除精确旧 Draft、创建并验证新 Draft。远端旧 Draft 和 Tag 一直保留到新构建完成签名、公证、打包和本地验证,避免昂贵阶段失败时丢失可用 Draft。所有远端变更绑定冻结的数据库 ID、更新时间和 Tag OID;临时本地备份只服务于失败恢复,不形成长期 stale 归档。
bash -n scripts/release/*.sh:通过。asc workflow validate --file scripts/release/asc-workflow.json --pretty:valid: true。python3 -m unittest discover -s scripts/release/tests -p 'test_release_*.py' -v:10 个测试通过。python3 -m unittest discover -s .agents/skills/release-easydict/tests -p 'test_*.py' -v:17 个测试通过。python3 /Users/tisfeng/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/release-easydict:skill 有效。--replace-draft 的 --dry-run:步骤顺序符合预期,未执行真实发布。git diff --check:通过。scripts/release/.agents/skills/release-easydict/docs/exec-plans/completed/2026-08-23-release-redraft.mddocs/histories/2026-08/2026-08-23-release-redraft.md$release-easydict draft 2.22.0 --replace-draft;若中途失败,只使用输出的运行 ID 执行 resume。