Agent skill

Concurrency

Standards for safe concurrent programming using Goroutines, Channels, and Context.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/concurrency-hoangnguyen0403-agent-skills-standar-2

Metadata

Additional technical details for this skill

labels
golang concurrency goroutines channels context sync
triggers
{
    "files": [
        "**/*.go"
    ],
    "keywords": [
        "goroutine",
        "go keyword",
        "channel",
        "mutex",
        "waitgroup",
        "context"
    ]
}

SKILL.md

Golang Concurrency Standards

Priority: P0 (CRITICAL)

Principles

  • Share Memory by Communicating: Don't communicate by sharing memory. Use channels.
  • Context is King: Always pass ctx to efficient manage cancellation/timeouts.
  • Prevent Leaks: Never start a goroutine without knowing how it will stop.
  • Race Detection: Always run tests with go test -race.

Primitives

  • Goroutines: Lightweight threads. go func() { ... }()
  • Channels: For data passing + synchronization.
  • WaitGroup: Wait for a group of goroutines to finish.
  • ErrGroup: WaitGroup + Error propagation (Preferred).
  • Mutex: Protect shared state (simpler than channels for just state).

Guidelines

  • Buffered vs Unbuffered: Use unbuffered channels for strict synchronization. Use buffered only if you specifically need async decoupling/burst handling.
  • Closed Channels: Panic if writing to closed. Reading from closed returns zero-value immediately.
  • Select: Use select to handle multiple channels or timeouts.

References

  • Concurrency Patterns
  • Context Usage

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results