| name | source-command-go-build |
| description | Fix Go build errors, go vet warnings, and linter issues incrementally. Invokes the go-build-resolver agent for minimal, surgical fixes. |
source-command-go-build
Use this skill when the user asks to run the migrated source command go-build.
Command Template
Go Build and Fix
This command invokes the go-build-resolver agent to incrementally fix Go build errors with minimal changes.
What This Command Does
- Run Diagnostics: Execute
go build, go vet, staticcheck
- Parse Errors: Group by file and sort by severity
- Fix Incrementally: One error at a time
- Verify Each Fix: Re-run build after each change
- Report Summary: Show what was fixed and what remains
When to Use
Use /go-build when:
go build ./... fails with errors
go vet ./... reports issues
golangci-lint run shows warnings
- Module dependencies are broken
- After pulling changes that break the build
Diagnostic Commands Run
go build ./...
go vet ./...
staticcheck ./...
golangci-lint run
go mod verify
go mod tidy -v
Example Session
User: /go-build
Agent:
# Go Build Resolution
## Initial Diagnostics
```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
Errors found: 3
Fix 1: Undefined Identifier
File: internal/service/user.go:25
Error: undefined: UserRepository
Cause: Missing import
import "project/internal/repository"
var repo UserRepository
var repo repository.UserRepository
$ go build ./...
Fix 2: Type Mismatch
File: internal/handler/api.go:42
Error: cannot use x (type string) as type int
count := params.Get("count")
countStr := params.Get("count")
count, _ := strconv.Atoi(countStr)
$ go build ./...
Fix 3: Missing Return
File: internal/handler/api.go:58
Error: missing return at end of function
func GetUser(id string) (*User, error) {
if id == "" {
return nil, ErrInvalidID
}
user := findUser(id)
return user, nil
}
$ go build ./...
Final Verification
$ go vet ./...
$ go test ./...
ok project/internal/service 0.015s
ok project/internal/handler 0.023s
Summary
| Metric | Count |
|---|
| Build errors fixed | 3 |
| Vet warnings fixed | 0 |
| Files modified | 2 |
| Remaining issues | 0 |
Build Status: PASS: SUCCESS
## Common Errors Fixed
| Error | Typical Fix |
|-------|-------------|
| `undefined: X` | Add import or fix typo |
| `cannot use X as Y` | Type conversion or fix assignment |
| `missing return` | Add return statement |
| `X does not implement Y` | Add missing method |
| `import cycle` | Restructure packages |
| `declared but not used` | Remove or use variable |
| `cannot find package` | `go get` or `go mod tidy` |
## Fix Strategy
1. **Build errors first** - Code must compile
2. **Vet warnings second** - Fix suspicious constructs
3. **Lint warnings third** - Style and best practices
4. **One fix at a time** - Verify each change
5. **Minimal changes** - Don't refactor, just fix
## Stop Conditions
The agent will stop and report if:
- Same error persists after 3 attempts
- Fix introduces more errors
- Requires architectural changes
- Missing external dependencies
## Related Commands
- `/go-test` - Run tests after build succeeds
- `/go-review` - Review code quality
- `/verify` - Full verification loop
## Related
- Agent: `agents/go-build-resolver.md`
- Skill: `skills/golang-patterns/`