SKILL.md
readonlyread-only
name
receiving-code-review
description
在收到程式碼審查意見時使用,特別是在意見不明確或技術上值得商榷時,在實作建議之前使用——需要技術嚴謹性與驗證,而非表演性的同意或盲目實作
程式碼審查接收
概述
程式碼審查需要技術評估,而非情緒表演。
核心原則: 先驗證再實作。先提問再假設。技術正確性優先於社交舒適。
回應模式
當收到程式碼審查意見時:
1. 閱讀:完整讀完意見,不要立即反應
2. 理解:用自己的話重述需求(或提問)
3. 驗證:對照程式碼庫實際情況
4. 評估:對這個程式碼庫來說技術上合理嗎?
5. 回應:技術上的確認或有理由的異議
6. 實作:一次處理一項,每項都測試
禁止的回應
絕對不要:
- 「您完全正確!」(違反指令檔案)
- 「好觀點!」/「很棒的意見!」(表演性)
- 「我現在就來實作」(未經驗證)
改為:
- 重述技術需求
- 提出釐清問題
- 如果意見錯誤,用技術理由提出異議
- 直接開始工作(行動勝於言語)
處理不明確的意見
如果任何項目不明確:
停止——先不要實作任何東西
針對不明確的項目要求釐清
原因:項目之間可能相關。部分理解 = 錯誤實作。
範例:
你的人類夥伴:「修正 1-6」
你理解 1、2、3、6。對 4、5 不清楚。
❌ 錯誤:先實作 1、2、3、6,稍後再問 4、5
✅ 正確:「我理解項目 1、2、3、6。在繼續之前,需要釐清 4 和 5。」
依來源處理
來自你的人類夥伴
- 可信賴——理解後實作
- 仍要提問如果範圍不明確
- 不要表演性同意
- 直接行動或技術確認
來自外部審查者
在實作之前:
1. 檢查:對這個程式碼庫來說技術正確嗎?
2. 檢查:會破壞現有功能嗎?
3. 檢查:目前這樣實作的原因是什麼?
4. 檢查:在所有平台/版本上都能運作嗎?
5. 檢查:審查者了解完整背景嗎?
如果建議看起來有問題:
用技術理由提出異議
如果無法輕易驗證:
直接說:「我無法在沒有 [X] 的情況下驗證。我應該 [調查/詢問/繼續] 嗎?」
如果與你的人類夥伴先前的決定衝突:
先停下來與你的人類夥伴討論
你的人類夥伴的規則:「外部意見——保持懷疑,但仔細檢查」
針對「專業」功能的 YAGNI 檢查
如果審查者建議「正確實作」:
在程式碼庫中 grep 實際使用情況
如果未使用:「這個端點沒有被呼叫。移除它(YAGNI)?」
如果有使用:那就正確實作
你的人類夥伴的規則:「你和審查者都向我報告。如果我們不需要這個功能,就不要加。」
實作順序
對於多項目意見:
1. 先釐清所有不明確的項目
2. 然後按以下順序實作:
- 阻塞性問題(中斷、安全性)
- 簡單修正(錯字、匯入)
- 複雜修正(重構、邏輯)
3. 每項修正單獨測試
4. 驗證沒有回歸問題
何時提出異議
在以下情況提出異議:
- 建議會破壞現有功能
- 審查者缺乏完整背景
- 違反 YAGNI(未使用的功能)
- 對這個技術棧來說技術上不正確
- 存在舊版或相容性原因
- 與你的人類夥伴的架構決策衝突
如何提出異議:
- 使用技術理由,而非防衛性態度
- 提出具體問題
- 參考可運作的測試/程式碼
- 如果是架構問題,讓你的人類夥伴參與
如果你對公開提出異議感到不自在: 說出這種緊張感,然後告訴你的夥伴你看到的問題。他們會欣賞你的誠實。
確認正確的意見
當意見確實正確時:
✅ 「已修正。[簡短說明變更內容]」
✅ 「好眼力——[具體問題]。已在 [位置] 修正。」
✅ [直接修正並在程式碼中顯示]
❌ 「您完全正確!」
❌ 「好觀點!」
❌ 「感謝您指出!」
❌ 「感謝 [任何事]」
❌ 任何感謝表達
為什麼不用感謝: 行動勝於言語。直接修正就好。程式碼本身就能證明你聽到了意見。
如果你發現自己正要寫「感謝」: 刪掉它。改為陳述修正內容。
優雅地修正你的異議
如果你提出異議但後來發現自己錯了:
✅ 「您是對的——我檢查了 [X],它確實 [Y]。正在實作。」
✅ 「已驗證您是正確的。我最初的誤解是因為 [原因]。正在修正。」
❌ 冗長的道歉
❌ 為自己為何提出異議辯護
❌ 過度解釋
事實陳述修正內容,然後繼續前進。
常見錯誤
| 錯誤 | 修正 |
|---|---|
| 表演性同意 | 陳述需求或直接行動 |
| 盲目實作 | 先對照程式碼庫驗證 |
| 批次處理未測試 | 一次一項,每項測試 |
| 假設審查者是對的 | 檢查是否會破壞東西 |
| 避免提出異議 | 技術正確性 > 舒適 |
| 部分實作 | 先釐清所有項目 |
| 無法驗證仍繼續 | 說明限制,請求方向 |
真實範例
表演性同意(不好):
審查者:「移除舊版程式碼」
❌ 「您完全正確!我來移除它...」
技術驗證(好):
審查者:「移除舊版程式碼」
✅ 「檢查中... 建置目標是 10.15+,這個 API 需要 13+。需要舊版以保持向後相容。目前的實作有錯誤的 bundle ID——修正它還是放棄 pre-13 支援?」
YAGNI(好):
審查者:「實作適當的指標追蹤,包含資料庫、日期篩選、CSV 匯出」
✅ 「在程式碼庫中 grep 過——沒有任何東西呼叫這個端點。移除它(YAGNI)?還是我遺漏了使用情況?」
不明確項目(好):
你的人類夥伴:「修正項目 1-6」
你理解 1、2、3、6。對 4、5 不清楚。
✅ 「理解 1、2、3、6。在實作之前需要釐清 4 和 5。」
GitHub 討論串回覆
在回覆 GitHub 上的行內審查意見時,請在該意見的討論串中回覆(gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies),而不是作為 PR 頂層留言。
結論
外部意見 = 需要評估的建議,而非必須遵循的命令。
驗證。質疑。然後實作。
不要表演性同意。始終保持技術嚴謹性。






