golang-pro — Claude Code skill: Go and installation
A Go skill for concurrent code, microservices, performance profiling, and idiomatic interfaces. Use it for goroutines, gRPC, benchmarks, and table-driven tests.
npx skills add Jeffallan/claude-skills --skill golang-pro -a claude-codeWhat golang-pro does
golang-pro reviews Go module structure, interfaces, and concurrency patterns before helping implement the feature. It covers goroutines, channels, generics, gRPC and REST microservices, CLI tools, benchmarks, and table-driven tests. Error wrapping and context propagation are part of the workflow.
The skill uses gofmt, runs go vet ./..., and validates code with golangci-lint run. Testing guidance includes the -race flag and fuzzing, while pprof is used for performance profiling. Topic-specific material is loaded from references/concurrency.md, references/interfaces.md, references/generics.md, references/testing.md, and references/project-structure.md.
It targets Go 1.21+ and expects goroutines to have a clear lifecycle, blocking work to accept context.Context, and errors to be handled explicitly. Check the Go version and golangci-lint before relying on the full workflow.
What it helps with
- trace goroutine and channel behavior
- design interfaces and Go module structure
- build a gRPC or REST microservice
- profile allocations and hot paths with pprof
- validate table-driven tests with the race detector
Example prompts for the agent
- Review this Go code for goroutine leaks and add cancellation with `context.Context`.
- Design a gRPC microservice with focused interfaces and table-driven tests, then run `go vet ./...`.
- Profile this application with pprof, add a benchmark, and run the tests with the `-race` flag.
How to install golang-pro
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill golang-pro -a claude-code2Manually: put the files in place
~/.claude/skills/golang-pro/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/golang-pro/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill golang-pro -a codex2Manually: put the files in place
.agents/skills/golang-pro/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill golang-pro -a cursor2Manually: put the files in place
.cursor/skills/golang-pro/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills golang-pro2Manually: put the files in place
.github/skills/golang-pro/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill golang-pro -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/golang-proManually: put the files in place
.devin/skills/golang-pro/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill golang-pro -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set5
The whole set →Similar
Questions about golang-pro
How do I install golang-pro in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill golang-pro -a claude-code, run the same command once more, then check ~/.claude/skills/golang-pro/SKILL.md.
What does golang-pro do?
It guides Go implementation around goroutines, channels, generics, interfaces, and explicit error handling. It also covers gRPC or REST microservices, pprof, benchmarks, fuzzing, and tests with -race.
Which Go versions does golang-pro target?
The skill targets Go 1.21+. Its generics guidance uses constraints available from Go 1.18 onward.
Source text
SKILL.md · MIT
---
name: golang-pro
description: Implements concurrent Go patterns using goroutines and channels, designs and builds microservices with gRPC or REST, optimizes Go application performance with pprof, and enforces idiomatic Go with generics, interfaces, and robust error handling. Use when building Go applications requiring concurrent programming, microservices architecture, or high-performance systems. Invoke for goroutines, channels, Go generics, gRPC integration, CLI tools, benchmarks, or table-driven testing.
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: language
triggers: Go, Golang, goroutines, channels, gRPC, microservices Go, Go generics, concurrent programming, Go interfaces
role: specialist
scope: implementation
output-format: code
related-skills: devops-engineer, microservices-architect, test-master
---
# 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
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/language/golang-pro/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills