bug-fix
CREW bug 修復紀律 —— 根因確認才能改(鐵律)、產出修復建議與迴歸測試、瀏覽器驗證,隸屬 CREW bug 流程。當使用者提到 /bug-fix、「進行 CREW bug 修復」、「開始修復這個 bug」時觸發此 Skill。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
CREW bug 修復紀律 —— 根因確認才能改(鐵律)、產出修復建議與迴歸測試、瀏覽器驗證,隸屬 CREW bug 流程。當使用者提到 /bug-fix、「進行 CREW bug 修復」、「開始修復這個 bug」時觸發此 Skill。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
CREW 環境健診 —— 一次性檢查 CREW 所有必要與選配依賴(Node/Git/Notion MCP/Agent Teams/瀏覽器 MCP/config/專案註冊/CLAUDE.md),列出綠黃紅燈與修法。當使用者提到 /crew-doctor、「CREW 環境健診」、「CREW 為什麼不能用」時觸發此 Skill。
瀏覽與探索已有的 .spec/ 規劃文件 —— 深度閱讀、跨任務比較、模式搜尋。當使用者提到 /plan-browse、「瀏覽 .spec 規劃」、「看之前的規劃設計」時觸發此 Skill。
從 .spec/{slug}/plan.md 以 Agent Teams leader-delegate 模式產生程式碼,含退出驗證與錨點有效性檢查,Leader 只協調不寫 code。當使用者提到 /plan-build、「從 spec 產生程式碼」、「plan-build 產碼」時觸發此 Skill。
結案前先跑文件漂移硬關卡(FAIL 擋、WARN 需明示放行),通過後蓋章 verified_at_commit、提交 Git、批次同步 plan.md 與 deploy.sql 到 Notion。當使用者提到 /plan-close、「feature 結案」、「同步 spec 到 Notion 並結案」時觸發此 Skill。
智慧推薦 CREW 當前任務下一步 —— 呼叫 crew-state.py 讀 state.json 算出下一個 /plan-* 指令並轉成人話。當使用者提到 /plan-next、「CREW 下一步指令」、「這個 spec 接下來做什麼」時觸發此 Skill。
CREW 規劃 —— spec / db / arch 三個 pass 把決策與驗收條件寫進 .spec/{slug}/plan.md,DB 設計另產 deploy.sql(零 Notion 呼叫)。當使用者提到 /plan、「CREW 完整規劃」、「一次跑完 spec/db/arch」時觸發此 Skill。
| name | bug-fix |
| description | CREW bug 修復紀律 —— 根因確認才能改(鐵律)、產出修復建議與迴歸測試、瀏覽器驗證,隸屬 CREW bug 流程。當使用者提到 /bug-fix、「進行 CREW bug 修復」、「開始修復這個 bug」時觸發此 Skill。 |
修復 Bug 前確認根因已記錄,修復後產出迴歸測試並驗證,確保修復品質。
根因分析必須有內容,才能開始修復。 根因分析空白 = 還沒調查完 = 不知道要修什麼。
紀律護欄:
../../references/discipline-preamble.md(通用紀律)+../../references/anti-rationalizations.md「bug-fix 專用」+../../references/boundaries.md「bug-fix」段+../../references/state-discipline.md「bug-fix」段(斷點保險,進度即寫);有「可以跳過」「應該夠了」的衝動時,停下查表確認是否為已知偏離模式。
/bug-start 建立 Bug 條目(Notion 有「進行中」的 🐞 錯誤)前置檢查:參照 plugin 根目錄
references/prerequisites.md(相對 SKILL.md 為../../references/)執行完整前置檢查(CLAUDE.md + 設定檔 + 專案註冊)。
/bug-fix # 標準修復流程
/bug-fix --skip-test # 跳過迴歸測試(僅限無法測試的場景)
/bug-fix --verify-only # 只驗證(已修復,只要驗證 + 產出測試)
與 /bug-update 相同邏輯:參照 plugin 根目錄 references/locate-bug.md(相對 SKILL.md 為 ../../references/)。
確保修復在正確的分支上進行(依 Git-flow 規定:修改應在 feature branch 提交,再 merge 回 DEV)。
git branch --show-current修復分支有值 且 ≠ 當前分支:
⚠️ 分支不一致
當前分支:{專案}_DEV
修復分支:feature/{任務簡述}
依 Git-flow 規定,修改應在 feature branch 提交,再 merge 回 DEV。
要切換嗎?
1. 是,切換到 feature/{任務簡述}
2. 否,繼續在當前分支修復
git checkout <修復分支>,繼續流程修復分支無值 或 = 當前分支:跳過,繼續原流程。
讀取 Notion 頁面「根因分析」區塊:
⚠️ 根因分析尚未填寫。
修復前必須確認根因,否則無法確定修的是對的地方。
• /bug-investigate — AI 協助調查根因
• 手動填寫 Notion 頁面的「根因分析」區塊後再回來
鐵律:沒有根因確認,不能開始修復。
模型分工(硬性規則)——完整政策見 plugin 根目錄
references/model-policy.md(相對 SKILL.md 為../../references/):
階段 工作 model 4a 定位(唯讀) 讀取已確認根因、定位相關檔案、搜尋相似修正模式、尋找既有測試範本 sonnet4b 實作 決定修正策略、修改正式程式碼、處理跨模組影響、建立必要的迴歸測試 opus5 驗證整理 分析編譯與測試輸出、整理驗證結果、更新 .spec/或 Notion 紀錄sonnet
- 4a 派 subagent 時實際傳入
{"model": "sonnet"};4b 正式修改 Agent 必須實際傳入{"model": "opus"}。- 同一個 agent 的模型 spawn 後不能換 → 4a 與 4b 必須是兩個 agent,不是同一個 agent「先探索再實作」。
- 4b 的實作者只吃 4a 的交接(相關檔案、呼叫關係、風格/測試範本、已確認限制、測試方式),🔴 不重新全域掃描 repository。
- 🔴 沒有根因確認(步驟 3 BLOCK)不得進入 4b。🔴 最小 diff:只動與根因直接相關的程式碼。
AI 根據 Notion 頁面的根因分析,產出修復建議:
根據根因分析,建議修復方向:
📍 問題檔案:PushService.java:235
🔧 修復建議:
1. 在 getAccessToken() 的 retry 邏輯中加入 503 狀態碼的處理
2. retry 次數從 1 次增加到 3 次,含 exponential backoff
3. 加入 accessToken null check(防禦性程式設計)
⚠️ 最小 diff 原則:只修改與根因直接相關的程式碼
使用者確認方向後自行修復,或請 AI 修復 —— 由 AI 修復時,用 Agent tool 啟動實作者 subagent
並實際傳入 {"model": "opus"},prompt 附上 4a 的交接內容與最小 diff 要求。
使用者修復並 commit 後,執行驗證:
# 自動偵測 build 指令
[ -f pom.xml ] && mvn compile -q 2>&1 | tail -5
[ -f build.gradle ] && gradle compileJava 2>&1 | tail -5
AI 根據根因分析和修復 diff,產出 1 個迴歸測試:
迴歸測試需滿足:
1. 重現 bug 的前置條件(模擬觸發 bug 的狀態)
2. 執行觸發 bug 的操作
3. 斷言正確行為(不是「不拋異常」,是「回傳正確結果」)
4. 包含 attribution 註解:
// Regression: {Bug 標題}
// Root cause: {根因摘要}
// Date: {YYYY-MM-DD}
讀取專案現有測試風格(命名、框架、assertion style),產出風格一致的測試。
# 執行迴歸測試
mvn test -pl {module} -Dtest={TestClass} 2>&1 | tail -20
git add {test-file} && git commit -m "test: 迴歸測試 — {bug 摘要}"B="$HOME/.claude/skills/gstack/browse/dist/browse"
if [ -x "$B" ]; then
echo "GSTACK_AVAILABLE=true"
fi
若 gstack 可用且 bug 涉及 UI:
$B goto <affected-url>
$B snapshot -i
# 操作重現步驟
$B click @eN
$B snapshot -D
$B screenshot .spec/{slug}/screenshots/bugfix-{N}-after.png
$B console --errors
curl -s "http://localhost:8080/api/xxx" -H "Cookie: <cookie>" | head -50
檢查 HTTP 狀態碼 + 回應 body。
更新 Notion 頁面「驗證」區塊:
重要:使用 update_content 前,必須先 notion-fetch 取得現有內容,將新內容附加到現有內容後面再寫回,避免覆蓋。
## 🧪 驗證
- [x] 本地測試通過({日期})
- 編譯:✅ 通過
- 迴歸測試:✅ {TestClass} 通過(commit: {hash})
- UI 驗證:✅ 截圖確認({截圖路徑})
- [ ] UAT 驗證通過
- [ ] 正式環境確認
- [ ] 通報者確認問題已解決
Bug 修復驗證完成!
📍 修復檔案:{N} 個
🧪 迴歸測試:{TestClass}(✅ 通過)
📸 UI 驗證:{✅ / ⏭️ 跳過}
🔗 Notion:{頁面連結}
後續:
• /bug-close — 結案並同步知識庫
• 部署到 UAT 後在 Notion 勾選「UAT 驗證通過」
分支引導(若當前在 feature branch 且不是 DEV/PRD 分支):
讀取 feature-workflow 的 projects/{repo-id}.md 取得 dev_branch。若取得成功,額外顯示:
🔀 分支引導:
目前在 feature/{任務簡述}
修復已 commit,後續請 merge 回 DEV:
git checkout {dev_branch} && git merge feature/{任務簡述} --no-ff
或使用 /bug-close 時自動引導 merge。
若 dev_branch 未設定,顯示通用提示:
🔀 分支引導:
目前在 feature branch,記得修復完成後 merge 回開發分支。
/bug-investigate(或個人 investigate / superpowers:systematic-debugging)investigate / superpowers:systematic-debugging/bug-closeshould_xxx_when_yyy / testXxxWhenYyy)。先搜尋 src/test 目錄中的現有測試作為範本。$HOME/.claude/skills/gstack/browse/dist/browse 是否存在且可執行,再決定是否進行 UI 驗證。projects/{repo-id}.md,但 bug-fix 是 bug-workflow 的 skill。需跨 plugin 讀取設定:先嘗試 ~/.claude-company/feature-workflow/projects/{repo-id}.md,再嘗試 ~/.claude/feature-workflow/projects/{repo-id}.md。讀取失敗時顯示通用提示。/bug-setup 完成初始設定/bug-investigate 或手動填寫/bug-fixmodel: "sonnet"(只跑編譯/測試、分析輸出、寫紀錄);只有驗證失敗、且使用者同意繼續修正時,才啟動 {"model": "opus"} 的實作者