PlugWiki

golang-concurrency Skill (samber): What It Does and How to Install It

Makes Claude write and review Go concurrency code so every goroutine has an owner and a clear exit, and audit large codebases for leaks.

Installs
42.7K
on skills.sh
Stars
3.7K
on GitHub
Files
4
besides SKILL.md
Updated
Nov 2026
last repo commit

golang-concurrency makes Claude treat every goroutine as a cost until it has a clear owner and a clear exit. It runs in write, review or audit mode: it follows a checklist for new code, checks a diff for leaks and unprotected state, or fans out up to five sub-agents to audit a whole codebase. Its frontmatter scopes it to Go files and lists the go, golangci-lint and git commands it may run. Nil panics and slice bugs belong to golang-safety, and debugging a hung program belongs to golang-troubleshooting.

Good for

  • Go developers writing goroutines, channels, worker pools or pipelines
  • Reviewers checking a pull request for leaks and unprotected shared state
  • Claude Code and Codex users working in a Go codebase

Install golang-concurrency

Claude Code

  1. 1

    Copy this prompt.

    Install the golang-concurrency skill in Claude Code. Run this command:
    
    /plugin marketplace add samber/cc
    /plugin install cc-skills-golang@samber
    
    Then check that it loaded and tell me how to use it.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

The README says these skills are built as atomic, cross-referencing units, and that installing only a subset gives a partial and potentially inconsistent view of the guidelines. It recommends installing all the general-purpose skills together, which the plugin does. Its manifest lists no hooks or MCP servers, and the repo holds 46 skills. Use the skills CLI line only if you want just this one. Pick one route, not both.

From the project README. Source.

What's in the skill

When it loads

Golang concurrency design — goroutine lifecycle and leak prevention, channels and `select`, channel ownership and direction, `sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/atomics, `errgroup`, `singleflight`, worker pools, and fan-out/fan-in pipelines. Use when writing or reviewing concurrent Go code, when choosing between channels and mutexes, when protecting a shared map or counter, or when a goroutine has no clear exit. Not for defensive coding unrelated to concurrency such as nil panics, slice aliasing, or numeric overflow (→ See `samber/cc-skills-golang@golang-safety` skill), and not for debugging a specific hung, crashing, or racing program after the fact (→ See `samber/cc-skills-golang@golang-troubleshooting` skill).

Sections in SKILL.md

  1. Core Principles
  2. Channel vs Mutex vs Atomic
  3. WaitGroup vs errgroup
  4. Sync Primitives Quick Reference
  5. Concurrency Checklist
  6. Pipelines and Worker Pools
  7. Parallelizing Concurrency Audits
  8. Common Mistakes
  9. Cross-References
  10. Goroutine leak profile
  11. References

Key facts

Author
samber
License
MIT
Skill version
1.2.1
Installs on skills.sh
42,720 (Nov 2, 2026)
Last repo commit
Nov 1, 2026

What it includes

  • Writes goroutines, channels, sync primitives, worker pools and pipelines with a clear exit

    Follows the sequential instructions in SKILL.md while implementing concurrent code.

    Runs code · Write mode

  • Checks a PR's concurrent changes for leaks, missing context and unprotected shared state

    Focuses on the diff: goroutine leaks, missing context propagation, ownership violations and unprotected shared state.

    Read · Review mode

  • Audits concurrency across a codebase with up to 5 parallel sub-agents

    The five agents cover goroutine spawns, shared state without synchronization, channel usage, time.After and missing ctx.Done() in select, and mutex and atomic usage. Claude merges the findings into one report.

    Read · Audit mode

  • Nine rules, such as only the sender closes a channel and every select includes ctx.Done()

    Core Principles

  • A six-row table that picks channel, mutex, atomic, sync.Map or sync.Once by scenario

    Channel vs Mutex vs Atomic

  • Four-row table: wait, collect the first error, cancel siblings or limit concurrency

    WaitGroup vs errgroup

  • Five questions to answer before spawning a goroutine, starting with how it will exit

    Concurrency Checklist

  • Nine mistakes with fixes, such as fire-and-forget goroutines and wg.Add in the goroutine

    Common Mistakes

  • Shows curl and go tool pprof commands against a local pprof port to spot leaks

    The commands target http://localhost:6060/debug/pprof/goroutineleak on your running service.

    Runs code · Goroutine leak profile

  • Three deeper guides: channels and select, pipelines and worker pools, sync primitives

    Reference guides

From the official docs

Permissions

Low risk

It lets Claude edit your Go files and run go, golangci-lint and git commands in your project.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It edits Go files and runs go and git commands

    The frontmatter allows Edit, Write and Bash for go, golangci-lint and git. Work on a branch and read the diff before you commit.

  • Audit mode runs several sub-agents at once

    Up to five agents read your code in parallel on a large codebase. Point it at one package first if you want a smaller run.

  • The leak profile section targets a local port

    It shows curl and go tool pprof against localhost:6060. Run those only on a service you own.

Security advisories

No published security advisories as of Nov 2, 2026.

Technical details
Turning on read-onlyNo read-only setting is documented in SKILL.md.
Talks toYour AI provider receives the Go code and command output Claude reads
Sign-in and keysSKILL.md names no account or API key.
Scopes
  • Claude edits Go files in your project

  • Claude runs go, golangci-lint and git commands

  • In audit mode it starts up to five sub-agents

Questions

How do I install golang-concurrency?

Use the install box above. The plugin route installs the whole Go skill set (46 skills in the repo), and the skills CLI route installs only this skill. Pick one so you do not get every skill twice. The README says these skills cross-reference each other and installing a subset gives a partial view.

Does golang-concurrency work in the Claude app?

The README documents no Claude app install, so the Claude tab in the install box is our generic zip-upload route, not a documented one. The skill reads and edits Go files and runs go commands on your machine, so Claude Code or Codex is the better fit.

Does golang-concurrency need an API key?

SKILL.md names no API key or account. It does need Go installed on your machine.

Is golang-concurrency safe to run?

It edits your Go files and runs go, golangci-lint and git commands in your project, so work on a branch and read the diff before you commit. The skill bundles no scripts: its other files are reference guides and an evals/evals.json file.

How is golang-concurrency different from golang-safety?

SKILL.md draws the line itself. golang-concurrency covers goroutines, channels and sync primitives. Nil panics, slice aliasing and numeric overflow go to golang-safety, and debugging a hung or racing program after the fact goes to golang-troubleshooting.

Do I need the other golang skills with it?

SKILL.md only points to them with "See" lines: golang-performance, golang-context, golang-safety, golang-troubleshooting, golang-design-patterns and golang-continuous-integration. The README still recommends installing the general-purpose skills together.

Information

updated Nov 2, 2026

Folder
skills/golang-concurrency

samber/cc-skills-golangskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 7
  1. cc-skills-golang · github.com
  2. cc-skills-golang README · github.com
  3. plugin.json · github.com
  4. skills CLI commands · github.com
  5. README.md#-how-to-use · github.com
  6. golang-concurrency SKILL.md · github.com
  7. golang-concurrency on skills.sh · skills.sh

Updated Nov 2, 2026.