Files

2.1 KiB
Raw Permalink Blame History

description
description
Comprehensive Go code review for idiomatic patterns, concurrency safety, error handling, and security. Invokes the go-reviewer agent.

Go 程式碼審查

此指令呼叫 go-reviewer Agent 進行全面的 Go 特定程式碼審查。

此指令的功能

  1. 識別 Go 變更:透過 git diff 找出修改的 .go 檔案
  2. 執行靜態分析:執行 go vetstaticcheckgolangci-lint
  3. 安全性掃描:檢查 SQL 注入、命令注入、競態條件
  4. 並行審查:分析 goroutine 安全性、channel 使用、mutex 模式
  5. 慣用 Go 檢查:驗證程式碼遵循 Go 慣例和最佳實務
  6. 產生報告:依嚴重性分類問題

何時使用

在以下情況使用 /go-review

  • 撰寫或修改 Go 程式碼後
  • 提交 Go 變更前
  • 審查包含 Go 程式碼的 PR
  • 加入新的 Go 程式碼庫時
  • 學習慣用 Go 模式

審查類別

關鍵(必須修復)

  • SQL/命令注入弱點
  • 沒有同步的競態條件
  • Goroutine 洩漏
  • 寫死的憑證
  • 不安全的指標使用
  • 關鍵路徑中忽略錯誤

高(應該修復)

  • 缺少帶上下文的錯誤包裝
  • 用 Panic 取代 Error 回傳
  • Context 未傳遞
  • 無緩衝 channel 導致死鎖
  • 介面未滿足錯誤
  • 缺少 mutex 保護

中(考慮)

  • 非慣用程式碼模式
  • 匯出項目缺少 godoc 註解
  • 低效的字串串接
  • Slice 未預分配
  • 未使用表格驅動測試

執行的自動化檢查

# 靜態分析
go vet ./...

# 進階檢查(如果已安裝)
staticcheck ./...
golangci-lint run

# 競態偵測
go build -race ./...

# 安全性弱點
govulncheck ./...

批准標準

狀態 條件
批准 沒有關鍵或高優先問題
⚠️ 警告 只有中優先問題(謹慎合併)
阻擋 發現關鍵或高優先問題

與其他指令的整合

  • 先使用 /go-test 確保測試通過
  • 如果發生建置錯誤,使用 /go-build
  • 提交前使用 /go-review
  • 對非 Go 特定問題使用 /code-review

相關

  • Agentagents/go-reviewer.md
  • 技能:skills/golang-patterns/skills/golang-testing/