golang-pro

Implement idiomatic concurrent Go patterns with goroutines, channels, and gRPC.

19|3|Updated Mar 11, 2026
One-click install
npx skills add https://github.com/dirien/yet-another-agent-harness --skill golang-pro-dirien
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: golang-pro
Source: https://github.com/dirien/yet-another-agent-harness/tree/main/.claude/skills/golang-pro
Command: npx skills add https://github.com/dirien/yet-another-agent-harness --skill golang-pro-dirien

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Helps developers build idiomatic, concurrent, and production-ready Go applications by providing patterns, guardrails, and best practices that reduce bugs, prevent goroutine leaks, and improve runtime performance.

Core Features & Use Cases

  • Concurrency Patterns: Worker pools, fan-out/fan-in, pipeline stages, and graceful shutdown using context for long-running services.
  • Microservices & gRPC: Advice on interface design, small-focused interfaces, context propagation across RPC boundaries, and project layout for services and CLI tools.
  • Performance & Testing: Guidance for pprof profiling, benchmarks, race-detector tests, table-driven tests, fuzzing, and linting with golangci-lint to ensure production readiness.

Quick Start

Create a Go microservice that uses context-aware worker pools, explicit error wrapping, table-driven tests with the race detector, and pprof benchmarks.

Frequently Asked Questions about golang-pro

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent goroutine leaks when building concurrent Go microservices?

Preventing goroutine leaks in concurrent Go microservices requires using context for cancellation and graceful shutdown. Idiomatic patterns like worker pools, fan-out/fan-in, and pipeline stages ensure safe execution without leaking resources.

What is the best way to propagate context across gRPC boundaries in Go?

Propagating context across gRPC boundaries in Go requires explicit interface design and context passing. Small-focused interfaces ensure clean RPC boundaries, while explicit error wrapping with %w maintains error chain integrity across service calls.

How do I set up table-driven tests with the race detector for Go backend projects?

Setting up table-driven tests with the race detector for Go backend projects involves structuring test cases in slices and running tests with the -race flag. This detects data races during concurrent execution to ensure production readiness.

Can I use pprof profiling and benchmarks to improve Go application performance?

Yes, pprof profiling and benchmarks can improve Go application performance by identifying CPU and memory bottlenecks. Integrating pprof-based performance profiling with benchmark tests provides actionable data for optimizing concurrent code paths.

Does this approach support generics and golangci-lint compliance for high-performance services?

Yes, this approach supports generics and golangci-lint compliance for high-performance services. It enforces gofmt formatting and linting rules alongside generic type constraints to ensure idiomatic, safe, and maintainable Go code.

When should I use fan-out/fan-in concurrency patterns instead of simple goroutines in Go?

Use fan-out/fan-in concurrency patterns instead of simple goroutines in Go when distributing work across multiple workers and aggregating results. This pattern prevents goroutine leaks by managing worker lifecycles through context-aware pipelines and channels.