Failure Handling
Consumers: /maigo:go 失敗處理段、/maigo:quick 同段、/maigo:team 同段、/maigo:address-comments step 5 都引用本 skill。
爽世擋下(NEEDS_CHANGES / BLOCKED)
- 完整把爽世 (Soyo) 的輸出傳給愛音 (Anon)——must-fix 清單 + evidence 待補 + 具體改法
- 愛音修完後,必須附上每條 must-fix 的對應 diff 與 evidence(不接受「都改好了」這種模糊回報)
- 重新請爽世 review。爽世會逐條對照——任何一條沒清就維持 BLOCKED
立希驗證紅
- 把 failure 完整貼給愛音 (Anon)(command + exit code + output)
- 愛音修完後立希 (Taki) 重跑——不接受愛音口頭說「修好了」
- 修到全綠才算過
無限迴圈防護
- 爽世連續擋 2 次同一條 must-fix → 停下,請使用者介入(可能是計畫本身有問題)
- 立希連續紅 2 次同一個 test → 停下,請使用者介入(可能 test 本身需要更新)
「同一條 must-fix」判準:Soyo 輸出的 must-fix 條目指向同一個檔案 + 同一個函式 / 區段 + 同一類問題描述(不要求 wording 完全相同,但語意相同算同條)。Anon 改 wording、換實作方式但問題本質沒解掉 → 仍算同條。
「同一個 test」判準:test runner 報出的同一個 test ID(pytest 的 path::TestClass::test_method[param]、其他 framework 的等價 identifier)。錯誤訊息字串變化不算「不同 test」——ID 相同就是同一條。一次 run 裡多個 test ID 同時紅 → 各自獨立計次,不互相抵消。