ワンクリックで
prepare-for-release
发布前准备,包括确认并同步 VERSION、运行构建与验证检查、构建 Android(PWA/TWA)发布材料、整理发布 tag 与发布清单
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
发布前准备,包括确认并同步 VERSION、运行构建与验证检查、构建 Android(PWA/TWA)发布材料、整理发布 tag 与发布清单
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use for Loveca battle card-effect architecture review and new card-effect development governance. 适用于 Loveca 卡效总审查、新卡效候选审查、执行窗口提示词、卡效开发规范、卡效提交说明生成、runner 回流检查、helper/workflow/query 复用与晋升审查、只读审查窗口、focused validation、文档诚实性检查。
git commit操作的前期准备,包括代码规范检查,以及commit message编写
Loveca animation and interaction verification workflow. Use when validating battle desktop animations, drag/drop behavior, active-effect UI, inspection/reveal flows, LIVE resolution feedback, responsive layout, reduced-motion behavior, or visual regressions with Playwright, screenshots, and focused checks.
Loveca battle interaction design guidance. Use when designing or changing player actions, drag/drop, selectable targets, pending ability ordering, active-effect panels, inspection flows, hidden-information visibility, undo, local test desktop behavior, online battle views, or error feedback in the shared battle UI.
Loveca battle motion design guidance. Use when designing or implementing card movement, flip, tap/orientation, zone transfer, inspection, active-effect, LIVE resolution, cheer, cost payment, drag/drop, or other animated feedback in the Loveca battle desktop or shared game board UI.
github pr操作的前期准备,包括通过git rebase引入main的commit,以及代码、文档规范检查
| name | prepare-for-release |
| description | 发布前准备,包括确认并同步 VERSION、运行构建与验证检查、构建 Android(PWA/TWA)发布材料、整理发布 tag 与发布清单 |
把当前代码准备成一次可发布的版本。本技能只负责“发布前准备与产物构建”,正式部署、迁移、健康检查和回滚以权威 runbook 为准,不在此重复实现。
docs/production-release-runbook.md:版本与 tag 规则、发布前检查、构建、迁移、部署、发布后检查、回滚边界。docs/android-app-packaging-guide-draft.md 与 android/twa/README.md:PWA/TWA 打包前置、候选包名、Bubblewrap 构建命令、Digital Asset Links 与签名要求。X.Y.Z(语义化版本)。如果用户没给,根据改动性质给出建议(修复=patch、向后兼容功能=minor、破坏性变更=major),但不要擅自决定后直接改文件。git status --short、git diff --stat main...HEAD,判断是否还有未提交或不该进入发布的改动。git push 或推送 git tag。产品版本以根目录 VERSION 为准,version:check 会强制三处一致,发布 tag 必须等于 v${VERSION}。
更新版本号到目标值,并保持三处一致:
VERSIONpackage.json 的 versionclient/package.json 的 version运行一致性校验:
pnpm version:check
该脚本同时校验:版本是语义化版本、三处 version 一致、HEAD 上的 v* tag(或 CI 注入的 tag)等于 v${VERSION}。校验不通过必须先修复再继续。
Android versionCode 单独管理:android/twa/loveca/twa-manifest.json 的 appVersionName / appVersionCode / appVersion 与产品 VERSION 解耦。只有在本次要出新的 Android 包时才更新,且 appVersionCode 必须单调递增(参见 runbook「发布与运维」);不要为了对齐产品版本而回退 versionCode。
按 runbook「发布前检查 / 构建」执行等价命令,任一失败都视为阻塞项,必须修复后重跑:
pnpm install --frozen-lockfile
pnpm --dir client install --frozen-lockfile
pnpm version:check
pnpm typecheck:all
pnpm test:run
pnpm build:server
pnpm --dir client build
补充检查:
git status --short 工作树是否干净。git status --short assets/card assets/images 与 git diff --stat -- assets/card assets/images:临时本地补图不要进入发布提交。docker compose build api(仅构建 dist/server/index.js runtime 镜像,前端 client/dist 单独部署)。pnpm db:push 代替生产迁移;迁移属于部署阶段,按 runbook 在具备源码、devDependencies 和生产 DATABASE_URL 的环境执行 pnpm db:migrate,本技能不直接对生产库执行迁移。每次发布都要判断是否需要新增或更新人工迁移说明,并且无论是否有 bug 或迁移,都要产出 release description / release message。
检查本次发布是否包含数据库迁移、同步脚本字段口径变化、生产环境变量变化、对象存储/图片链路变化、需要重跑数据同步脚本、或部署顺序限制:
git diff --name-status v上一版本..HEAD -- drizzle src/scripts docs/card-data-sync src/server/db src/server/routes src/server/services client/src/lib
如果包含上述任一情况,必须在 drizzle/migration-notes/ 下新增或更新版本迁移说明,例如:
drizzle/migration-notes/X.Y.Z-previous-to-X.Y.Z.md
文档至少写清:
pnpm db:migrate 前后的验证 SQL 或等价检查。--yes 风险和源文件路径。迁移说明是人工 runbook,不是 Drizzle 可执行迁移;不要把它写进 drizzle/meta/,也不要修改已经共享的历史 SQL。
如果确认本次没有生产迁移或数据同步动作,也要在发布清单中明确写「本次无需新增 migration note」及原因。
编写 release description / release message。无论是否发现 bug,都必须输出一份可直接用于 GitHub Release / 发布公告的中文文案,至少包含:
仅在本次需要产出/更新 Android 包时执行;否则跳过并在清单中标注「本次不含 Android 包」。
工具链前置检查:
pnpm android:twa:doctor
需要 Node 22+、pnpm、JDK 17+、Android SDK env、sdkmanager;adb、gradle 为可选。前置不满足先补齐再继续。
构建 Web/PWA 产物(即 client/dist,应包含 manifest.webmanifest、/pwa/* 图标、sw.js、version.json):
pnpm android:pwa:build
Digital Asset Links:只有在已知正式 release / upload key 的 SHA-256 指纹时才生成,并确认 ANDROID_PACKAGE_NAME、ANDROID_SHA256_FINGERPRINT 为正式值(可参考 android/twa/loveca.twa.env.example,但不要使用示例占位指纹):
ANDROID_PACKAGE_NAME=xyz.lovelivefun.loveca \
ANDROID_SHA256_FINGERPRINT=<正式签名指纹> \
pnpm android:assetlinks
换正式签名后必须重新生成,并确保生产站点 /.well-known/assetlinks.json 与之一致。
用 Docker Bubblewrap 生成 TWA 包(需要 keystore 口令,APK/AAB 与本地 keystore 不进 git):
BUBBLEWRAP_KEYSTORE_PASSWORD=<keystore-password> \
BUBBLEWRAP_KEY_PASSWORD=<key-password> \
pnpm android:twa:build:docker
产物在 android/twa/loveca/app-release-signed.apk 与 app-release-bundle.aab。
--skipPwaValidation,是因为线上 manifest 可能滞后;在确认生产 https://<域名>/manifest.webmanifest 与 /pwa/* 图标已更新后,应改用 ANDROID_TWA_SKIP_PWA_VALIDATION=false 正式校验。android/twa/README.md 传入 http_proxy / https_proxy。确认前述检查全部通过、版本号已同步后,准备 annotated tag(按 runbook,tag 必须等于 v${VERSION})。先向用户展示命令并确认,再由用户决定是否推送,不要自动推送:
git tag -a vX.Y.Z -m "发布 vX.Y.Z"
git push origin vX.Y.Z
最后用中文汇总一份发布准备结论,至少包含:
VERSION / 根 package.json / client/package.json(必要时 TWA versionCode)是否已同步。docs/production-release-runbook.md(迁移、部署、发布后检查、回滚)的提示。