feat(git-safety,model): 分支一律先確認、模型 id 改以 transcript 實際值為準

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-24 17:24:45 +08:00
co-authored by Claude Opus 5
parent ca53be3011
commit 20cc363c23
2 changed files with 38 additions and 3 deletions
+17 -2
View File
@@ -1,6 +1,6 @@
---
name: spec-git-safety
description: JSC plugins 共用「Git 安全操作規範」:不破壞既有工作(未提交變更先提醒、絕不 reset --hard/checkout -f/clean)、git mv 保留歷史、develop → master 後備分支選擇、pull --ff-only、工作分支選擇(用 git remote show origin/origin/HEAD 判定遠端預設分支、develop 不存在時從遠端預設分支建立、只有來源與目標分支同名才開新分支)、保守解衝突、建立分支不覆蓋(時間戳或短 hash)。當其他 skill 內文引用 spec-git-safety 或 /jsc-shared:spec-git-safety、或執行任何會操作 git 工作區/分支的 JSC skill 時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。
description: JSC plugins 共用「Git 安全操作規範」:不破壞既有工作(未提交變更先提醒、絕不 reset --hard/checkout -f/clean)、git mv 保留歷史、develop → master 後備分支選擇、pull --ff-only、分支一律先跟使用者確認(分析前確認來源分支、寫檔前確認目標分支,不從目前 checkout 推定,只讀階段不代為切換)、工作分支選擇(用 git remote show origin/origin/HEAD 判定遠端預設分支、develop 不存在時從遠端預設分支建立、只有來源與目標分支同名才開新分支)、保守解衝突、建立分支不覆蓋(時間戳或短 hash)。當其他 skill 內文引用 spec-git-safety 或 /jsc-shared:spec-git-safety、或執行任何會操作 git 工作區/分支的 JSC skill 時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。
---
# spec-git-safety — 共用 Git 安全操作規範
@@ -37,7 +37,22 @@ git switch develop 2>/dev/null || git switch -c develop --track origin/develop
- 切換後備分支屬不可忽略的狀態變更,需明確告知使用者已從原分支切換到哪個分支。
- 批次更新既有 repo 時用 `git pull --ff-only`;無法快進(本地與遠端分歧)→ 回報需人工處理,**不**自動 merge/rebase/reset。
## 工作分支選擇
## 分支一律先跟使用者確認
動手之前先確認分支,不可從「目前 checkout 的分支」推定使用者的意圖:
| 情境 | 要確認的分支 | 確認時機 |
| --- | --- | --- |
| 分析既有程式碼(例:`/jsc-sdlc:analyze`) | **來源分支**——哪條分支的程式碼算現況 | 讀任何程式碼之前 |
| 實作、修改程式碼(例:`/jsc-sdlc:implement`) | **目標分支**——這批工作要合併進哪條分支 | 寫任何檔案之前 |
確認方式:
1. 先把事實攤開:目前分支、工作區是否乾淨、遠端有哪些分支(`git branch -r`)、依上一節判定出的遠端預設分支。
2. 依 `/jsc-shared:spec-ask-user` 的決策樹詢問,每個選項都要標明影響範圍。分析錯分支會產出對不上程式碼的工作包;目標分支錯了則 PR 會開到錯的地方。
3. 把確認結果寫進該 skill 的產出(分析頁的來源分支欄、PR 的目標分支),後續步驟一律沿用同一個答案,不再自行改判。
4. **只讀取的階段不切分支**:需要換分支才能讀到正確現況時,停下來請使用者自己切換,不代為 `switch`、不 `stash`、不動工作區。
5. 使用者沒回答就**不預設** `develop`/`master`;預設值只在使用者明確同意後才成立。
判定遠端預設分支,以及是否需要為當前操作另開一條工作分支: