Agent Skills
› swjybky/deepwrite
› package-patch-release
package-patch-release
GitHub为 DeepWrite 递增补丁版本,清理旧产物并打包。执行安装验证后,按授权发布 GitHub Release,校验无误仅提交推送 update.json,确保发布流程完整且安全。
Trigger Scenarios
需要发布软件补丁版本
执行完整的打包和发布流程
修复打包错误并重新发布
Install
npx skills add swjybky/deepwrite --skill package-patch-release -g -y
SKILL.md
Frontmatter
{
"name": "package-patch-release",
"description": "为 DeepWrite 递增补丁版本、清理旧产物、修复错误并继续打包;按授权发布 GitHub Release,发布验证后仅提交推送 update.json。用于打包新版本、提高一小个版本、清理旧包发布或更新发布清单。"
}
打包补丁版本并按需发布
先读 测试安装包技能,命令、签名、验收及遇错修复按该技能执行;提交或推送时读 git-commit。默认只交付本地测试包,用户明确要求发布时才执行 Release 流程。
边界
- 保留工作树和暂存区已有内容,不还原、覆盖或夹带用户修改;不使用
git add .、git add -A、git commit -a、git stash、git reset、git checkout --、git clean或强推。 - 通常只改两个
package.json的版本和发布成功后的update.json;阻塞打包时允许最小修复相关代码、测试、配置及脚本,修复后继续完整打包验证。 - 本流程最终提交只能包含根目录
update.json;版本修改及故障修复留在工作树,不暂存或混入该提交。 - 对应 Release 未公开且资产未完整可下载前,不更新、提交或推送
update.json。不发布时不创建 tag、Release 或提交;要求不发 Release 却提高清单版本时说明依赖并请求决定。
1. 确定版本并清理
- 检查 Git 状态、分支、远端、两个
package.json、update.json、相关 tag/Release 及apps/desktop/release/。记录拟修改文件原内容或 diff,区分已有修改与本轮改动。 - 两个
package.json须为相同三段 SemVer;“提高一小个版本”只递增补丁位一次。用户指定版本优先,须大于基线及update.json.version。已有未完成准备时先确认并沿用本轮版本,重试不重复递增;版本不一致且无法可靠判断、或 tag/Release 属于其他发布时请求决定,不盲目覆盖。 - 仅清理
apps/desktop/release/内解析后未越界、可证明属于旧版本或本次重建目标的生成物:DeepWrite-<旧版本>-*、相应的mac/、mac-arm64/、win-unpacked/、linux-unpacked/、.icon-icns/、latest*.yml、builder-debug.yml、builder-effective-config.yaml。先列候选、再删除并核对;未知文件保留,简要说明清理结果。 - 同步修改两个顶层
version,保持其他内容和格式;暂不改update.json。
2. 打包并验收
- 从根目录执行测试安装包技能对应的
pnpm pack:test:*。失败按其修复循环继续,不停在错误报告,也不带着失败结果发布。 - 核对请求平台的安装包、更新资产和
latest*.yml非空;文件名、清单版本、引用和 SHA-512 与实际产物一致。Mac 完成 DMG、ad-hoc 签名和隔离属性检查,并记录真实冒烟结果及跨平台限制。 - 用户未授权发布时交付本地产物;已授权则继续以下流程。
3. 发布 GitHub Release
- 检查
gh auth status、远端仓库swjybky/deepwrite、tagv<新版本>和资产。禁止覆盖他人或既有公开发布;重试先读取远端状态,仅接续能确认属于本轮的 Draft,避免重复创建、重复上传。 - 先创建 Draft,标题
DeepWrite <新版本>;说明采用用户提供内容或已核实的实际变更,稳定版不标 prerelease。只上传本轮请求且验证成功的资产:Windows 为 EXE、EXE blockmap、latest.yml;Mac 为各架构 DMG、ZIP、ZIP blockmap、最终latest-mac.yml;Linux 按构建配置和实际更新清单核对。 - 两种 Mac 架构的最终清单须同时正确引用各 ZIP 与 SHA-512。缺项、上传或校验失败时保持 Draft,修复后补齐并重新核对,不能直接发布残缺自动更新。
- 用 GitHub 返回的列表核对名称、数量、非零大小,完整后发布。再次确认 tag、标题、公开状态、非 prerelease 及各下载 URL 可访问,全部通过才更新
update.json。
4. 仅提交并推送 update.json
- 保留清单其他字段语义,仅更新
version、title、与 Release 一致的releaseNotes、发布完成时 Asia/Shanghai ISO 8601publishedAt,以及https://github.com/swjybky/deepwrite/releases/tag/v<新版本>的releasePage。 - 校验 JSON 及版本与两个
package.json、tag、各latest*.yml一致。保留已有暂存区,用git commit --only -m "chore: update release manifest to v<新版本>" -- update.json限定提交。 git show --name-only --format= HEAD必须恰好只有update.json。推送前获取远端,目标分支到 HEAD 只能包含本次清单提交且可快进;否则保留成果并请求决定,不夹带其他历史。- 推送到用户指定远端/分支,未指定按发布约定用
origin/main。网络失败先核对远端 SHA 再重试,不重复提交;完成后读取远端清单确认生效。 - 报告版本、产物路径、验证结果、必要修复、Release URL 和提交 SHA,并说明版本与修复仍留在工作树。
Version History
- 7d1ec85 Current 2026-10-18 17:42


