Go Build and Fix¶
此命令调用 go-build-resolver 代理,以最小改动逐步修复 Go 构建错误。
此命令的功能¶
- 执行诊断:运行
go build、go vet、staticcheck - 解析错误:按文件分组,并按重要性排序
- 逐步修复:一次只修复一个错误
- 验证每次修复:每次更改后重新运行构建
- 报告摘要:显示已修复和剩余的问题
使用时机¶
在以下情况下使用 /go-build:
- go build ./... 因错误失败
- go vet ./... 报告问题
- golangci-lint run 显示警告
- 模块依赖关系损坏
- 拉取了会破坏构建的更改
执行的诊断命令¶
# プライマリビルドチェック
go build ./...
# 静的解析
go vet ./...
# 拡張リンティング(利用可能な場合)
staticcheck ./...
golangci-lint run
# モジュール問題
go mod verify
go mod tidy -v
会话示例¶
User: /go-build
Agent:
# Goビルド解決
## 初期診断
```bash
$ go build ./...
internal/service/user.go:25:15: undefined: UserRepository
internal/handler/api.go:42:9: cannot use x (type string) as type int
internal/handler/api.go:58:2: missing return at end of function
エラー検出: 3件
修正1: 未定義の識別子¶
ファイル: internal/service/user.go:25 エラー: undefined: UserRepository 原因: インポート欠落
// インポートを追加
import "project/internal/repository"
// 変更前
var repo UserRepository
// 変更後
var repo repository.UserRepository
修正2: 型の不一致¶
ファイル: internal/handler/api.go:42 エラー: cannot use x (type string) as type int
// 変更前
count := params.Get("count")
// 変更後
countStr := params.Get("count")
count, _ := strconv.Atoi(countStr)
修正3: 戻り値の欠落¶
ファイル: internal/handler/api.go:58 エラー: missing return at end of function
func GetUser(id string) (*User, error) {
if id == "" {
return nil, ErrInvalidID
}
user := findUser(id)
// 欠落していた戻り値を追加
return user, nil
}
最終検証¶
$ go vet ./...
# 問題なし
$ go test ./...
ok project/internal/service 0.015s
ok project/internal/handler 0.023s
サマリー¶
| 指標 | 件数 |
|---|---|
| 修正されたビルドエラー | 3 |
| 修正されたVet警告 | 0 |
| 変更されたファイル | 2 |
| 残存問題 | 0 |
ビルドステータス: PASS: 成功 ```
常见错误修复¶
| 错误 | 典型修复 |
|---|---|
undefined: X |
添加导入或修正类型错误 |
cannot use X as Y |
修正类型转换或赋值 |
missing return |
添加 return 语句 |
X does not implement Y |
添加缺失的方法 |
import cycle |
重构包 |
declared but not used |
删除变量或使用该变量 |
cannot find package |
go get 或 go mod tidy |
修复策略¶
- 先处理构建错误 - 代码必须能够编译
- 再处理 Vet 警告 - 修正可疑结构
- 最后处理 Lint 警告 - 风格和最佳实践
- 一次只做一个修复 - 验证每次更改
- 最小化更改 - 只修复,不重构
停止条件¶
在以下情况下,代理会停止并报告: - 同一错误在 3 次尝试后仍然存在 - 修复引发了更多错误 - 需要架构变更 - 缺少外部依赖
相关命令¶
/go-test- 构建成功后运行测试/go-review- 审查代码质量/verify- 完整验证循环
相关¶
- 代理:
agents/go-build-resolver.md - 技能:
skills/golang-patterns/
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC