← Back to list
🛠️

golang-pro Checked

Implements concurrent Go patterns using goroutines and channels, designs and builds microservices…
🛠️ Developer Tools skills By Jeffallan Version v1.0.0 Added 2026-09-07 Updated 2026-09-07 Source ↗
9.0Overall rating
1Views
4Downloads
11.3kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "golang-pro" skill by following the instructions at https://skill123.me/install/golang-pro.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/golang-pro.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 17 KB
📊 Static rating
9.0/10
Trigger
7.5
Structure
10.0
Workflow
8.4
Content
9.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

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.

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.

Documentation

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.

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:


// 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)
View full documentation

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/)

Score breakdown

Trigger
7.5
Detailed What/When with goroutine, generics, gRPC triggers; no When-Not exclusion clause.
Structure
10.0
124-line SKILL.md, five references with Load-When table, no redundant files.
Workflow
8.4
Six-step workflow with go vet, golangci-lint, and race detector gates before proceed; fewer explicit retry loops than peers.
Content
9.0
Concise imperative style; the concurrency example is annotated with key properties and is production-grade.
Engineering
10.0
Valid frontmatter; all five referenced files exist; no scripts.
Security
10.0
No dangerous commands (Makefile rm -rf uses a build-dir variable), no secrets, no injection or egress.
Solid idiomatic Go skill with vet/lint/race-detector gates, leak-free concurrency example, and five scoped references; description lacks When-Not boundary.