golang-concurrency

Installation
SKILL.md

Golang Concurrency

Priority: P0 (CRITICAL)

Principles

  • Share Memory by Communicating: Use channels instead of shared memory.
  • Context King: Always pass ctx to manage cancellation/timeouts.
  • Prevent Leaks: Never start goroutine without knowing how it will stop.
  • Race Detection: Always run tests with go test -race.

Implementation Workflow

  1. Choose primitive — Channels for data passing, sync.Mutex for simple state protection, errgroup for parallel tasks with error handling.
  2. Pass context — Every goroutine that I/O or long work must accept context.Context.
  3. Define exit paths — Every goroutine must clear shutdown mechanism (context cancellation, channel close, or WaitGroup).
  4. Use select for multiplexing — Handle multiple channels or timeouts with select.
  5. Test with race detector — Run go test -race in CI.

See ErrGroup and concurrency patterns and context timeout examples

Installs
1
GitHub Stars
521
First Seen
Jun 6, 2026
golang-concurrency — hoangnguyen0403/agent-skills-standard