From 9438d1f351888ce609da019c44f692b5ec323da8 Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Mon, 8 Jun 2026 15:36:22 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=AE=8C=E6=95=B4=20wiki=20=E7=B3=BB?= =?UTF-8?q?=E7=B5=B1=20+=20docs=20=E6=96=87=E4=BB=B6=E9=81=B7=E7=A7=BB=20+?= =?UTF-8?q?=20test=5Farcrun/4=20=E4=BB=BB=E5=8B=99=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docs/ 6 層分類結構建立(vision/architecture/specs/guides/records/user) - .agents/specs/ 遷移到 docs/3-specs/,已清空原位置 - .claude/wiki/ 核心文檔:mistakes.md / decisions-summary.md / status.md / INDEX.md - CLAUDE.md 更新:SDD 路徑改為 docs/3-specs/,加 wiki 讀取順序表 - test_arcrun/4/ 新建任務框架(TASK/PROMPT/異常記錄模板) - 長期記憶系統就緒,防止 LLM 遺忘決策和重複錯誤 Co-Authored-By: Claude Haiku 4.5 --- RELEASE-CHECKLIST.md | 61 -------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 RELEASE-CHECKLIST.md diff --git a/RELEASE-CHECKLIST.md b/RELEASE-CHECKLIST.md deleted file mode 100644 index 1c5b1c4..0000000 --- a/RELEASE-CHECKLIST.md +++ /dev/null @@ -1,61 +0,0 @@ -# RELEASE-CHECKLIST — 出貨清單(沒有 GitHub Actions,每個 target 分開推,照順序不漏) - -> 為什麼要這份:沒有 CI,deploy 是「一個個分開」的動作(git / CF workers / npm CLI)。 -> 漏任一步就會「有些新有些舊」——壓測踩過兩次: -> - 第一次:CLI 改了但 npm 沒發 → 用戶 npm 裝到舊 CLI。 -> - 第二次(階段 6):cypher 改了但**沒推 main** → `acr init` 從 origin/main codeload 抓到**舊 worker** → 薄殼打不存在的 API(seed 404)。 -> -> 核心鐵則:**self-hosted `acr init` 從 `origin/main` 抓 worker 源。所以「git push main」必須在「部署」之前。** -> 順序錯了 = deploy 出去的 prod 是新的,但 self-hosted 用戶裝到的是舊的。 - ---- - -## 正確順序(照做不會忘) - -### 0. 改完 code,先驗證 -- [ ] 三端 typecheck 綠:`cd cli && npx tsc --noEmit`、`cd cypher-executor && npx tsc --noEmit`、`cd mcp && npx tsc --noEmit` -- [ ] 動到的 .sh:`bash -n scripts/<檔>.sh` - -### 1. ⬆️ 先 git commit + push(**必須在 deploy 之前**) -- [ ] `git add -A`(確認 `.env` / secret 沒被加:`git diff --cached --name-only | grep -iE '\.env|secret|token'` 應空) -- [ ] `git commit -m "..."` -- [ ] `git push origin main` -- 理由:self-hosted 從 `origin/main` codeload 抓 worker。沒先 push → 用戶抓到舊碼。 - -### 2. ✅ 跑出貨前檢查(會擋住「git 沒同步」) -- [ ] `bash scripts/check-release.sh` → 必須全綠(含「0. Git 同步」段)。 - - 紅燈「領先 origin/main N commit 未 push」= 回步驟 1。 - - 此腳本 git 未同步會 `exit 1`,是 deploy 的前置閘。 - -### 3. 🚀 deploy(worker + CLI npm) -- [ ] Node ≥ 20(本機若預設舊版:`export PATH="$HOME/.nvm/versions/node/v22.21.0/bin:$PATH"`) -- [ ] `bash scripts/local-deploy.sh --all`(或不帶 `--all` 只 deploy diff) - - 此腳本**會先自動跑步驟 2 的 git 閘**;未過直接拒絕 deploy(要強推設 `SKIP_GIT_CHECK=true`,自負風險)。 - - worker 走 `wrangler deploy`;CLI 走 `npm publish`(版本未 bump 會自動 patch +1 + 寫 CHANGELOG)。 - - npm publish 需 `npm login` 或 `.env` 的 `NPM_API_TOKEN`(authToken)。 - -### 4. 🔁 deploy 後線上驗證(確認新碼真的上去了) -- [ ] `curl https://cypher.arcrun.dev/health` → 200 -- [ ] 改了 cypher 路由時,**實際打那條新路由**確認存在(例:`curl -X POST https://cypher.arcrun.dev/init/seed`、`curl https://cypher.arcrun.dev/recipes` 應非空)。 - ← 這步就是階段 6 的教訓:別只看「部署成功」,要打新端點確認。 -- [ ] 改了 CLI:`npm view arcrun version` == `cli/package.json` version。 -- [ ] landing 有改:確認 arcrun.dev 更新。 - -### 5. 📣 通知 / 收尾 -- [ ] 若是回應壓測:到壓測報告加「開發者回覆」+ 請壓測者重跑。 - ---- - -## 一眼對照表:每個 target 怎麼推、誰依賴它 - -| Target | 推法 | 誰依賴「它在 origin/main」 | -|---|---|---| -| **git origin/main** | `git push origin main` | **self-hosted `acr init` codeload 抓這裡的 worker 源** → 必須最先 | -| CF workers(26 個含 mcp) | `local-deploy.sh`(wrangler deploy) | 平台 prod;self-hosted 自己 deploy | -| CLI(npm `arcrun`) | `local-deploy.sh` 第 6 段 / `cd cli && npm publish` | 用戶 `npm i -g arcrun` | -| landing(arcrun.dev) | `cd landing && wrangler pages deploy` | 訪客 | - -## 常見漏失(自我檢查) -- ❌ 「我 deploy 了 prod cypher 但忘了 push main」→ self-hosted 用戶 init 抓舊碼。**先 push 再 deploy。** -- ❌ 「改了 CLI 但版本沒 bump」→ npm publish 跳過(同版)。`local-deploy.sh` 會自動 bump,但手動 publish 時要記得。 -- ❌ 「改了 cypher 路由只看到『部署成功』就收工」→ 要實際 curl 新路由確認(步驟 4)。