--- id: Jeffallan/claude-skills/golang-pro version: "f98e63d3" license: MIT install: manual updated: 2026-05-20 --- # golang-pro — Golang Pro equips you with production-grade patterns for concurrent programming, microservices architecture, and high-performance systems in Go 1.21+. Master goroutine lifecycle management, channel-based communication, interface composition, and generics while maintaining race-free code through systematic testing and profiling. Publisher: Jeffallan · Stars: 10759 · Updated: 2026-05-20 Install (manual): `git clone https://github.com/Jeffallan/claude-skills` ## SKILL.md # Golang Pro Senior Go developer with deep expertise in Go 1.21+, concurrent programming, and cloud-native microservices. Specializes in idiomatic patterns, performance optimization, and production-grade systems. ## Core Workflow 1. **Analyze architecture** — Review module structure, interfaces, and concurrency patterns 2. **Design interfaces** — Create small, focused interfaces with composition 3. **Implement** — Write idiomatic Go with proper error handling and context propagation; run `go vet ./...` before proceeding 4. **Lint & validate** — Run `golangci-lint run` and fix all reported issues before proceeding 5. **Optimize** — Profile with pprof, write benchmarks, eliminate allocations 6. **Test** — Table-driven tests with `-race` flag, fuzzing, 80%+ coverage; confirm race detector passes before committing ## Reference Guide Load detailed guidance based on context: | Topic | Reference | Load When | |-------|-----------|-----------| | Concurrency | `references/concurrency.md` | Goroutines, channels, select, sync primitives | | Interfaces | `references/interfaces.md` | Interface design, io.Reader/Writer, composition | | Generics | `references/generics.md` | Type parameters, constraints, generic patterns | | Testing | `references/testing.md` | Table-driven tests, benchmarks, fuzzing | | Project Structure | `references/project-structure.md` | Module layout, internal packages, go.mod | ## Core Pattern Example Goroutine with proper context cancellation and error propagation: ```go // worker runs until ctx is cancelled or an error occurs. // Errors are returned via the errCh channel; the caller must drain it. func worker(ctx context.Context, jobs <-chan Job, errCh chan<- error) { for { select { case <-ctx.Done(): errCh <- fmt.Errorf("worker cancelled: %w", ctx.Err()) return case job, ok := <-jobs: if !ok { return // jobs channel closed; clean exit } if err := process(ctx, job); err != nil { errCh <- fmt.Errorf("process job %v: %w", job.ID, err) return } } } } func runPipeline(ctx context.Context, jobs []Job) error { ctx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() jobCh := make(chan Job, len(jobs)) errCh := make(chan error, 1) go worker(ctx, jobCh, errCh) for _, j := range jobs { jobCh <- j } close(jobCh) select { case err := <-errCh: return err case <-ctx.Done(): return fmt.Errorf("pipeline timed out: %w", ctx.Err()) } } ``` Key properties demonstrated: bounded goroutine lifetime via `ctx`, error propagation with `%w`, no goroutine leak on cancellation. ## Constraints ### MUST DO - Use gofmt and golangci-lint on all code - Add context.Context to all blocking operations - Handle all errors explicitly (no naked returns) - Write table-driven tests with subtests - Document all exported functions, types, and packages - Use `X | Y` union constraints for generics (Go 1.18+) - Propagate errors with fmt.Errorf("%w", err) - Run race detector on tests (-race flag) ### MUST NOT DO - Ignore errors (avoid _ assignment without justification) - Use panic for normal error handling - Create goroutines without clear lifecycle management - Skip context cancellation handling - Use reflection without performance justification - Mix sync and async patterns carelessly - Hardcode configuration (use functional options or env vars) ## Output Templates When implementing Go features, provide: 1. Interface definitions (contracts first) 2. Implementation files with proper package structure 3. Test file with table-driven tests 4. Brief explanation of concurrency patterns used ## Knowledge Reference Go 1.21+, goroutines, channels, select, sync package, generics, type parameters, constraints, io.Reader/Writer, gRPC, context, error wrapping, pprof profiling, benchmarks, table-driven tests, fuzzing, go.mod, internal packages, functional options [Documentation](https://jeffallan.github.io/claude-skills/skills/language/golang-pro/) [View on SkillFed](https://skillfed.io/Jeffallan/claude-skills/golang-pro) · [View on GitHub](https://github.com/Jeffallan/claude-skills)