publish-atrlisted
Install: claude install-skill jjj201200/auvezy-terminal-remote
# 发布 auvezy-terminal-remote
本仓库的发布流程,固化为单一脚本式 skill。本仓库 origin 同时配了 GitHub +
Gitee 双 remote(`git remote -v` 两条 push URL),`git push origin <ref>` 一次
推两边,**不需要**单独再 push 第二个。
## 前置条件
- 工作树干净或仅含本次发布相关的改动(没有半成品)
- `pnpm exec vitest run` 全绿(在动手发版前必须自己确认一次)
- 知道目标版本号(用户告诉你 / 看 CHANGELOG.md `[Unreleased]` 段决定 patch/minor/major)
- npm 登录态有效(`npm whoami` 能输出用户名)
## 不要做
- **不要** `npm publish` 不经过 OTP — 我们的 npm 账号开了 2FA。**必须等用户给 6 位 OTP**。
- **不要**绕过 git pre-commit hook(没有 `--no-verify`)
- **不要** force push,无论 main 还是 tag。已发布到 npm 的版本号永远不可重复;真要撤就 `npm deprecate` + 发新 patch。
- **不要**自己改 commit message 加 AI 署名(项目 CLAUDE.md 明确禁止)
- **不要**在 publish 前忘了 `pnpm build` —— `prepublishOnly` 当前是 echo 占位,没有自动 build,publish 跑的就是 `backend/dist/` 里的产物
- **不要**在 build 之前 commit `backend/README.md` —— 它是 build 步骤里 `cp README.md backend/README.md` 自动生成的,build 后再 stage 一次
## 流程(顺序严格)
### 1. 写 CHANGELOG
打开 `CHANGELOG.md`,在 `## [Unreleased]` 下新增 `## [<version>] - <today>` 段。
日期从 `~/.claude/...` 系统提示里 `currentDate` 字段读,**不要**自己猜。
分类按 Keep a Changelog 标准:
- `### Breaking changes` — 破坏性
- `### Added` — 新功能
- `### Changed` — 行为/接口调整(非破坏)
- `### Fixed` — bug 修
- `### Internal` — 仅内部(依赖、构建、测试),用户感知为零的可省
每条要写"用户视角的影响 + 关键文件/原因",而不是"我做了 xxx"。
### 2. bump backend version
```
# backend/package.json 里把 "version": "..." 改到目标版本号
```
shared / frontend 的 package.json 不改 — 都是 `private: true`,不发布。
**只**改 `backend/package.json`。
### 3. stage + commit
只 `git add` 本次发版相关的文件。**别用 `git add -A`**。
当前发版常涉及的文件(具体看 `g