[CHORE] APK workflow 強殺防呆 + 新增 Claude Code slash command

- .agents/workflows/{compiler,release}-apk.md:Gradle Daemon 終止改防呆——
  先優雅 ./gradlew --stop,僅在仍殘留時才升級終止(先 TERM 再 KILL),
  避免無差別 pkill -9 撞鎖導致 clean 編譯隨機失敗。
- .claude/commands/{compiler,release}-apk.md:新增對應 slash command(薄包裝,
  指向 .agents/workflows 單一真相來源,處理參數注入與 Java 17 環境)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
sky121113 2026-06-10 10:25:48 +08:00
parent 53ea3dafa9
commit 588da4a2eb
4 changed files with 67 additions and 2 deletions

View File

@ -24,7 +24,17 @@ description: 自動編譯 Android APK、輸出至專屬目錄並安裝至實體
```bash
// turbo
# 終止殘留的 Gradle Daemon 程序,避免多個 Daemon 互搶資源,同時避免誤殺 VS Code Gradle 擴充功能
./gradlew --stop 2>/dev/null; pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null; sleep 3
# 防呆:先優雅 --stop僅在仍殘留時才升級終止先 TERM 再 KILL避免無差別強殺撞鎖導致 clean 編譯隨機失敗
./gradlew --stop 2>/dev/null || true
sleep 2
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
pkill -TERM -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
sleep 3
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
sleep 2
fi
fi
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
cd /home/mama/projects/TaiwanStar_general_size_s_Chengwai

View File

@ -25,7 +25,17 @@ description: 自動編譯正式發行 Release APK、升級 Patch 版本號、並
```bash
// turbo
# 終止殘留的 Gradle Daemon 程序,避免多個 Daemon 互搶資源,同時避免誤殺 VS Code Gradle 擴充功能
./gradlew --stop 2>/dev/null; pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null; sleep 3
# 防呆:先優雅 --stop僅在仍殘留時才升級終止先 TERM 再 KILL避免無差別強殺撞鎖導致 clean 編譯隨機失敗
./gradlew --stop 2>/dev/null || true
sleep 2
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
pkill -TERM -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
sleep 3
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
sleep 2
fi
fi
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
cd /home/mama/projects/TaiwanStar_general_size_s_Chengwai

View File

@ -0,0 +1,22 @@
---
description: 編譯 Debug APK、導出 outputs/、偵測到設備則安裝(晟崴/通用/中國醫,可選硬體尺寸)
argument-hint: [General|Chengwai|Cmuh] [S9|S12]
allowed-tools: Bash, Read, Edit
---
執行本專案的 APK 編譯安裝 workflow定義於 `.agents/workflows/compiler-apk.md`(單一真相來源)。
本次參數:「$ARGUMENTS」第一個=Flavor第二個=硬體 S9/S12可能為空
## 執行方式
1. 先 Read `.agents/workflows/compiler-apk.md`,理解步驟零~三。
2. 步驟零(版號):執行 `git status --porcelain app/`;若有未提交改動且本輪對話尚未升過版,讀 `app/build.gradle``verPatch` 遞增 1 並回報新版號。
3. 步驟一~三:依序執行 workflow 內每個 bash 區塊。**關鍵**workflow 的 bash 以位置參數取得 Flavor 與硬體,所以執行每個區塊前,先在區塊最前面注入本次參數,例如:
set -- $ARGUMENTS
讓 workflow 內的位置參數正確解析(第一個=Flavor、第二個=S9/S12。若本次無參數workflow 自身預設 Chengwai智慧硬體。
4. 環境用 workflow 指定的 Java 17`JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`)。
5. 編譯/導出屬長任務 → 用 run_in_background完成再回報。
6. 步驟三會偵測 adb 設備:有連設備才安裝並啟動 App沒設備就保留 APK 結束。
7. 最後完整回報 workflow 輸出的「後台 keyin 參考資料」Flavor / versionName / versionCode / APK 檔名)。

View File

@ -0,0 +1,23 @@
---
description: 正式版 Release APK 打包、升 Patch 版號、產出 OTA keyin 與 Git tag 指引(晟崴/通用/中國醫)
argument-hint: [General|Chengwai|Cmuh]
allowed-tools: Bash, Read, Edit
---
執行本專案的正式發版 workflow定義於 `.agents/workflows/release-apk.md`(單一真相來源)。
本次參數:「$ARGUMENTS」Flavor可能為空預設 Chengwai
## 執行方式
1. 先 Read `.agents/workflows/release-apk.md`,理解步驟零~三。
2. 步驟零OTA 鐵律):讀 `app/build.gradle``verPatch` 遞增 1確保 versionCode 變大可觸發 OTA回報新版號。
3. 步驟一~三:依序執行 workflow 內每個 bash 區塊。**關鍵**workflow 的 bash 以位置參數取得 Flavor執行每個區塊前先注入本次參數
set -- $ARGUMENTS
無參數時預設 Chengwai。硬體Cmuh→S9XYU其餘→S12XYU。
4. 環境用 Java 17`JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`Release 會跑混淆與 lintVital較久 → 用 run_in_background。
5. 步驟二導出正式簽章 APK 到 `outputs/` 並印出 OTA 後台 keyin 對照資料。
6. 步驟三回報 Git 發版 tag 指引。
> 注意:這是「正式發版」,會升版號並產正式簽章 APK。除非使用者明確指示不要自行 commit / push / 打 tag只回報指引。