Skip to content
alyn
samber

cc-skills-golang

πŸ§‘β€πŸŽ¨ A collection of Golang agentic skills that works

$npx skills add samber/cc-skills-golang
Stars
3,822
Installs
1.8M
Forks
257
Updated
2 days ago
License
MIT

46 skills in this pack.

76
samber

golang-benchmark

Golang benchmarking, profiling, and performance measurement. Use when writing, running, or comparing Go benchmarks, profiling hot paths with pprof, interpreting CPU/memory/trace profiles…

Pack3.8k1.8MTesting
76
samber

golang-cli

Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool β€” especially for command structure, flag handling, configuration layering, version embedding…

Pack3.8k1.8MBackend
76
samber

golang-code-style

Golang code style conventions β€” line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style…

Pack3.8k1.8MBackend
76
samber

golang-concurrency

Golang concurrency design β€” goroutine lifecycle and leak prevention, channels and `select`, channel ownership and direction, `sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/atomics…

Pack3.8k1.8MBackend
76
samber

golang-continuous-integration

GitHub Actions CI/CD pipeline configuration for Golang projects β€” workflow files for test, lint, SAST, coverage and vulnerability-scan jobs, Dependabot and Renovate config files, GoReleaser…

Pack3.8k1.8MBackend
76
samber

golang-data-structures

Golang data structures β€” slices (internals, capacity growth, preallocation, slices package), maps (internals, hash buckets, maps package), arrays, container/list/heap/ring, strings.Builder…

Pack3.8k1.8MBackend
76
samber

golang-database

Comprehensive guide for Go database access β€” parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing…

Pack3.8k1.8MBackend
76
samber

golang-dependency-injection

Comprehensive guide for dependency injection (DI) in Golang. Covers why DI matters (testability, loose coupling, separation of concerns, lifecycle management), manual constructor injection…

Pack3.8k1.8MBackend
76
samber

golang-dependency-management

Dependency management for Golang projects β€” go.mod and go.sum, `go get` install and upgrade flows, Minimal Version Selection, conflict resolution with replace/exclude/retract, `govulncheck`…

Pack3.8k1.8MBackend
76
samber

golang-design-patterns

Idiomatic Golang design patterns β€” functional options, constructor APIs, `init()` and global-state avoidance, enums, panic vs error decisions, resource management and lifecycle, graceful…

Pack3.8k1.8MBackend
76
samber

golang-documentation

Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt. Use when writing or…

Pack3.8k1.8MBackend
76
samber

golang-error-handling

Idiomatic Golang error handling β€” creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging…

Pack3.8k1.8MBackend
76
samber

golang-google-wire

Compile-time dependency injection in Golang using google/wire β€” wire.NewSet, wire.Build, wire.Bind (interfaceβ†’concrete), wire.Struct, wire.Value, wire.InterfaceValue, wire.FieldsOf, cleanup…

Pack3.8k1.8MBackend
76
samber

golang-gopls

Golang semantic code intelligence via `gopls`, the official Go language server β€” go-to-definition, find references, call/implementation hierarchy, workspace symbol search, package API…

Pack3.8k1.8MBackend
76
samber

golang-graphql

Implements GraphQL APIs in Golang using gqlgen or graphql-go. Apply when building GraphQL servers, designing schemas, writing resolvers, handling subscriptions, or integrating GraphQL with…

Pack3.8k1.8MBackend
76
samber

golang-grpc

Provides gRPC usage guidelines, protobuf organization, and production-ready patterns for Golang microservices. Use when implementing, reviewing, or debugging gRPC servers/clients, writing…

Pack3.8k1.8MBackend
76
samber

golang-how-to

Golang skills orchestrator β€” always active on any Golang coding, review, debug, or setup task. Reads the task context and loads the most relevant skills from samber/cc-skills-golang, often…

Pack3.8k1.8MBackend
76
samber

golang-lint

Linting best practices and golangci-lint configuration for Golang projects β€” running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint…

Pack3.8k1.8MCode review
76
samber

golang-modernize

Modernize Golang code to use recent language features, standard library improvements, and idiomatic patterns. Use when reviewing Go code with old-style patterns, when encountering a…

Pack3.8k1.8MBackend
76
samber

golang-naming

Go (Golang) naming conventions β€” covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test…

Pack3.8k1.8MBackend
76
samber

golang-observability

Golang everyday observability β€” the always-on signals in production. Covers structured logging with slog, Prometheus metrics, OpenTelemetry distributed tracing, continuous profiling with…

Pack3.8k1.8MBackend
76
samber

golang-performance

Golang performance optimization patterns and methodology - if X bottleneck, then apply Y. Covers allocation reduction, CPU efficiency, memory layout, GC tuning, pooling, caching, and…

Pack3.8k1.8MBackend
76
samber

golang-pkg-go-dev

Golang package and module lookup via `godig`, a pkg.go.dev API client (CLI + MCP server). Use for any Go/Golang library's documentation, API signatures, symbols, usage examples, which…

Pack3.8k1.8MBackend
76
samber

golang-project-layout

Golang project layout and workspace setup β€” cmd/internal/pkg directory conventions, module and package naming, go.work workspaces, and essential configuration files. Use when starting a new…

Pack3.8k1.8MBackend
76
samber

golang-refactoring

Golang refactoring β€” safe, at-scale restructuring of existing Go code: a coverage-adaptive safety net, behavior-preserving transforms (gopls Rename/Extract, `gofmt -r`, `gopatch`), the…

Pack3.8k1.8MBackend
76
samber

golang-safety

Defensive Golang coding against accidental bugs β€” nil panics, typed-nil interfaces, `append` backing-array aliasing, silent int64-to-int32 truncation, float `==` comparison, `defer` inside…

Pack3.8k1.8MBackend
76
samber

golang-samber-do

Dependency injection in Golang using samber/do β€” service containers, lifecycle management, scopes, health checks, graceful shutdown, and module organization. Apply when using or adopting…

Pack3.8k1.8MBackend
76
samber

golang-samber-hot

In-memory caching in Golang using samber/hot β€” eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate…

Pack3.8k1.8MBackend
75
samber

golang-context

Idiomatic context.Context usage in Golang β€” propagation through API boundaries, cancellation, timeouts and deadlines, request-scoped values, context.WithoutCancel for background work…

Pack3.8k1.8MProductivity
73
samber

golang-popular-libraries

Golang library and framework selection β€” vetted production-ready options by category (web, database, testing, logging, messaging), new and experimental stdlib packages, s…

Pack3.8k1.8MBackend

Showing 30 of 46. See the full pack on GitHub.

From the README

How to use cc-skills-golang

Agent Skills for production-ready Golang projects

AI agent skills are reusable instruction sets that extend your coding assistant with domain-specific expertise, loaded on demand so they don't bloat your context. This repository covers Go-specific skills only (language, testing, security, observability, etc.); for dev workflow skills (git conventions, CI/CD, PR reviews) you'll want to add a separate skills plugin.

For non-Golang skills, please visit cc-skills.

[!IMPORTANT] Bootstrapped with Claude Code by distilling my Go project commits. Edited, tested, reviewed and reworked by a human.

No AI slop here. AI-made skills are useless.

Built for Claude Code, Codex, Gemini, Copilot, Antigravity, Cursor...

image

πŸš€ How to use

Install with skills CLI (universal, works with any Agent Skills-compatible tool):

npx skills add https://github.com/samber/cc-skills-golang --all
# or a single skill:
npx skills add https://github.com/samber/cc-skills-golang --skill golang-performance
Claude Code
/plugin marketplace add samber/cc
/plugin install cc-skills-golang@samber
Openclaw

Copy skills into the cross-client discovery directory:

git clone https://github.com/samber/cc-skills-golang.git ~/.openclaw/skills/cc-skills-golang
# or in workspace:
git clone https://github.com/samber/cc-skills-golang.git ~/.openclaw/workspace/skills/cc-skills-golang
Gemini CLI
gemini extensions install https://github.com/samber/cc-skills-golang

Update with gemini extensions update cc-skills-golang.

Cursor

Copy skills into the cross-client discovery directory:

git clone https://github.com/samber/cc-skills-golang.git  ~/.cursor/skills/cc-skills-golang

Cursor auto-discovers skills from .agents/skills/ and .cursor/skills/.

Copilot

Copy skills into the cross-client discovery directory:

/plugin install https://github.com/samber/cc-skills-golang
# or
git clone https://github.com/samber/cc-skills-golang.git ~/.copilot/skills/cc-skills-golang

Copilot auto-discovers skills from .copilot/skills/.

OpenCode

Copy skills into the cross-client discovery directory:

git clone https://github.com/samber/cc-skills-golang.git ~/.agents/skills/cc-skills-golang

OpenCode auto-discovers skills from .agents/skills/, .opencode/skills/, and .claude/skills/.

Codex (OpenAI)

Install the plugin via the Codex CLI:

codex plugin add github:samber/cc-skills

Update with codex plugin update cc-skills. Falls back to a manual clone if the marketplace path is unavailable:

git clone https://github.com/samber/cc-skills.git ~/.agents/skills/cc-skills

Codex auto-discovers skills from ~/.agents/skills/ and .agents/skills/.

Antigravity

Clone and symlink into the cross-client discovery path:

git clone https://github.com/samber/cc-skills-golang.git ~/.antigravity/skills/cc-skills-golang

Update with cd ~/.antigravity/skills/cc-skills-golang && git pull.

🧩 Skills

These skills are designed as atomic, cross-referencing units. A skill may reference conventions defined in another (e.g. error-handling rules that affect logging live in golang-error-handling, not golang-observability). Installing only a subset will give you a partial and potentially inconsistent view of the guidelines. For best results, install all general-purpose skills together.

                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚             Golang Skills              β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                            β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β–Ό                 β–Ό                      β–Ό                      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Code Quality β”‚ β”‚ Arch & Designβ”‚ β”‚    QA & Perf    β”‚ β”‚    Project Start     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ code-style   β”‚ β”‚ design-patt  β”‚ β”‚ testing         β”‚ β”‚ project-layout       β”‚
β”‚ naming       β”‚ β”‚ concurrency  β”‚ β”‚ benchmark       β”‚ β”‚ popular-libs         β”‚
β”‚ error-handl  β”‚ β”‚ context      β”‚ β”‚ performance     β”‚ β”‚ cli                  β”‚
β”‚ safety       β”‚ β”‚ dep-inject   β”‚ β”‚ troubleshoot    β”‚ β”‚ continuous-integ.    β”‚
β”‚ structs-ifaceβ”‚ β”‚ data-structs β”‚ β”‚ observability   β”‚ β”‚ stay-updated         β”‚
β”‚ documentationβ”‚ β”‚ database     β”‚ β”‚                 β”‚ β”‚ dep-management       β”‚
β”‚ lint         β”‚ β”‚ modernize    β”‚ β”‚                 β”‚ β”‚ gopls                β”‚
β”‚ security     β”‚ β”‚ refactoring  β”‚ β”‚                 β”‚ β”‚ pkg-go-dev           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                      Framework / Library Skills                         β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚   APIs       β”‚      DI        β”‚  Frameworks  β”‚  samber/*   β”‚  Testing  β”‚
    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
    β”‚ grpc         β”‚ google-wire    β”‚ spf13-cobra  β”‚ samber-lo   β”‚ stretchr- β”‚
    β”‚ graphql      β”‚ uber-dig       β”‚ spf13-viper  β”‚ samber-mo   β”‚  testify  β”‚
    β”‚ swagger      β”‚ uber-fx        β”‚              β”‚ samber-ro   β”‚           β”‚
    β”‚              β”‚                β”‚              β”‚ samber-do   β”‚           β”‚
    β”‚              β”‚                β”‚              β”‚ samber-hot  β”‚           β”‚
    β”‚              β”‚                β”‚              β”‚ samber-slog β”‚           β”‚
    β”‚              β”‚                β”‚              β”‚ samber-oops β”‚           β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • ⭐️ Recommended
  • βœ… Published
  • πŸ‘· Work in progress
  • ❌ To-do
  • ⚑ Command available
  • 🧠 Ultrathink automatically
  • πŸ€– Ultracode automatically
  • βš™οΈ Overridable (see doc below)
  • Description (tok): weight of the description field from YAML frontmatter, always loaded into Claude's context for skill triggering
  • SKILL.md (tok): weight of the full SKILL.md file loaded when the skill triggers
  • Directory (tok): weight of all files in the skill directory (SKILL.md + referenced markdown files)

General purpose:

Skill Flags Error rate gap Description (tok) SKILL.md (tok) Directory (tok)
⭐️ βœ… golang-code-style ⚑ πŸ€– βš™οΈ -40% 114 2,358 2,974
⭐️ βœ… golang-data-structures ⚑ -39% 93 2,608 6,327
⭐️ βœ… golang-database ⚑ βš™οΈ -38% 97 2,721 7,243
⭐️ βœ… golang-design-patterns ⚑ βš™οΈ -37% 80 2,694 9,400
⭐️ βœ… golang-documentation ⚑ πŸ€– βš™οΈ -53% 75 3,163 11,876
⭐️ βœ… golang-error-handling ⚑ πŸ€– βš™οΈ -26% 141 1,734 4,693
⭐️ βœ… golang-how-to ⚑ β€” 184 4,210 17,583
⭐️ βœ… golang-modernize ⚑ πŸ€– -43% 104 3,486 15,145
⭐️ βœ… golang-naming ⚑ βš™οΈ -23% 159 3,031 7,399
⭐️ βœ… golang-refactoring ⚑ 🧠 πŸ€– βš™οΈ β€” 245 3,835 20,392
⭐️ βœ… golang-safety ⚑ -58% 78 2,614 5,384
⭐️ βœ… golang-testing ⚑ 🧠 πŸ€– βš™οΈ -32% 115 4,270 8,822
⭐️ βœ… golang-troubleshooting ⚑ 🧠 πŸ€– -32% 173 2,993 18,035
⭐️ βœ… golang-security ⚑ 🧠 πŸ€– -32% 85 3,187 21,623
βœ… golang-benchmark ⚑ 🧠 -50% 102 3,153 33,396
βœ… golang-cli ⚑ -43% 125 2,338 6,153
βœ… golang-concurrency ⚑ πŸ€– βš™οΈ -39% 72 2,196 6,826
βœ… golang-context ⚑ βš™οΈ -34% 82 1,211 4,021
βœ… golang-continuous-integration ⚑ -59% 177 3,542 12,804
βœ… golang-dependency-injection ⚑ πŸ€– βš™οΈ -47% 178 3,016 5,287
βœ… golang-dependency-management ⚑ -54% 77 2,407 5,545
βœ… golang-structs-interfaces ⚑ βš™οΈ -35% 111 3,076 3,076
βœ… golang-lint ⚑ πŸ€– -41% 98 1,877 6,295
βœ… golang-observability ⚑ πŸ€– βš™οΈ -37% 164 3,128 19,583
βœ… golang-performance ⚑ 🧠 πŸ€– -39% 130 2,226 19,820
βœ… golang-gopls ⚑ β€” 219 2,317 12,312
βœ… golang-pkg-go-dev ⚑ β€” 170 3,442 5,386
βœ… golang-popular-libraries ⚑ -30% 156 1,181 5,093
βœ… golang-project-layout ⚑ -38% 105 1,761 6,257
βœ… golang-stay-updated ⚑ -56% 44 1,802 1,802

Tools:

Skill Flags Error rate gap Description (tok) SKILL.md (tok) Directory (tok)
βœ… golang-google-wire ⚑ -16% 122 2,670 7,400
βœ… golang-graphql -16% 76 3,070 7,941
βœ… golang-grpc ⚑ -41% 70 2,341 5,157
βœ… golang-spf13-cobra ⚑ β€” 176 2,580 7,351
βœ… golang-spf13-viper ⚑ β€” 170 2,551 7,098
βœ… golang-swagger ⚑ β€” 144 2,342 3,347
βœ… golang-uber-dig ⚑ -10% 107 2,585 6,257
βœ… golang-uber-fx ⚑ -5% 118 2,825 7,060
βœ… golang-samber-do ⚑ -81% 71 2,145 3,660
βœ… golang-samber-hot ⚑ -54% 119 1,986 7,416
βœ… golang-samber-lo ⚑ -40% 166 2,610 10,288
βœ… golang-samber-mo ⚑ 🧠 -48% 82 2,967 11,382
βœ… golang-samber-oops ⚑ -59% 70 2,544 2,856
βœ… golang-samber-ro ⚑ 🧠 -50% 153 2,976 11,192
βœ… golang-samber-slog ⚑ -19% 119 3,120 9,842
❌ golang-temporal β€” 0 0 0
βœ… golang-stretchr-testify ⚑ -47% 92 1,858 2,677

πŸ§ͺ Skill evaluations

With Skill Without Skill Delta
Overall 3348/3439 (97%) 1957/3439 (57%) +40pp

See EVALUATIONS.md for the full per-skill breakdown.

πŸ“– Skills description

Code Quality

golang-code-style

Go code formatting and conventions. gofmt, goimports, linting rules, comment conventions, and project-level style consistency. Overridable by company skills.

golang-documentation

Go documentation standards. Package docs, godoc conventions, code comments, example functions, README structure, and API reference generation. Overridable.

golang-error-handling

Go error handling best practices. Error creation, wrapping with fmt.Errorf and errors.Is/As, sentinel errors, custom error types, error codes, and panic recovery. Overridable.

golang-lint

Go linting best practices and golangci-lint configuration. Presets, custom rules, CI integration, inline suppression, and output interpretation.

golang-naming

Go naming conventions across all identifier types. Packages, constructors, structs, interfaces, constants, errors, receivers, acronyms, test functions. Covers MixedCaps rules, Get-prefix, and utils/helpers anti-patterns. Overridable.

golang-safety

Defensive Go coding. Prevents panics, silent data corruption, and runtime bugs. nil safety, append aliasing, map concurrent access, float comparison, zero-value design, numeric overflow.

golang-security

Go security best practices. Injection prevention (SQL, command, XSS), cryptography, filesystem/network safety, secrets management, cookie security, and tool configuration. Audit and review modes.

golang-structs-interfaces

Go struct and interface design. Composition, embedding, type assertions, interface segregation, struct tags (JSON/YAML/DB), pointer vs value receivers. Overridable.

Architecture & Design

golang-concurrency

Go concurrency patterns. Goroutines, channels, sync primitives, context cancellation, worker pools, fan-out/fan-in, pipelines. Overridable.

golang-context

Idiomatic context.Context usage. Creation, cancellation, timeouts, values, propagation patterns, and common anti-patterns. Overridable.

golang-data-structures

Go data structures internals and usage. Slices (capacity growth, append aliasing), maps, channels, sync primitives, and when to use each.

golang-database

Go database access patterns. Parameter binding, connection pooling, transactions, migrations, sqlboiler/sqlc code generation, query builders. Overridable.

golang-dependency-injection

Dependency injection patterns in Go. Constructor injection, interface-based DI, wire/dig/fx comparison, and when DI is worth the complexity. Overridable.

golang-design-patterns

Idiomatic Go design patterns. Functional options, constructors, builder pattern, middleware chains, circuit breaker, and architecture guides with file trees and code. Overridable.

golang-modernize

Modernize Go code to use recent language features. Range-over-int, min/max builtins, iterators, slices/maps/cmp/slog stdlib packages, testing patterns (t.Context, b.Loop, synctest), and tooling upgrades.

golang-refactoring

Safe, at-scale refactoring process for existing Go code. Coverage-adaptive safety net, tool-driven behavior-preserving transforms (gopls Rename/Inline/Extract, gofmt -r, eg, gopatch), the Fowler catalog mapped to Go, breaking import cycles, type-alias gradual code repair, and a human-in-the-loop workflow of staged PRs on a refactoring branch.

QA & Performance

golang-benchmark

Go benchmarking, profiling, and performance measurement. pprof, trace, CPU/memory/block profiles, flame graphs, benchmark comparison (benchstat), continuous profiling.

golang-observability

Go production observability. Structured logging (slog), Prometheus metrics, OpenTelemetry tracing, pprof profiling, RUM tracking, alerting, Grafana dashboards. Overridable.

golang-performance

Go performance optimization. Allocation reduction, CPU efficiency, memory layout, GC tuning, pooling, caching, hot-path optimization. Review and hot-path modes.

golang-testing

Production-ready Go tests. Table-driven tests, fuzzing, fixtures, goroutine leak detection (goleak), snapshot testing, code coverage, integration tests, parallel tests. Overridable.

golang-troubleshooting

Systematic Go debugging methodology. Common pitfalls, test-driven debugging, pprof capture, Delve debugger, race detection, GODEBUG tracing, production debugging.

Project Setup

golang-cli

Go CLI application development. Project layout, exit codes, signal handling, I/O patterns, argument parsing, and terminal UX.

golang-continuous-integration

CI/CD pipeline configuration for Go projects using GitHub Actions. Build, test, lint, and release workflows.

golang-dependency-management

Go module dependency strategies. go.mod conventions, versioning, replace directives, tool dependencies, and multi-module workspaces.

golang-gopls

Semantic code intelligence for your local build via gopls, the official Go language server. Go-to-definition, find references, call/implementation hierarchy, workspace symbol search, diagnostics, safe rename, and refactors (extract/inline/fill/rewrite). Reachable via gopls's own MCP server, Claude Code's native LSP tool, or the gopls CLI.

golang-pkg-go-dev

Go package and module exploration via godig, a pkg.go.dev API client (CLI + MCP server). Package docs, API references, symbols, code examples, versions, importers, licenses, and known vulnerabilities. Prefer over Context7 for Go packages.

Curated recommendations for production-ready Go libraries and frameworks. When the stdlib is enough vs when to reach for a package.

golang-project-layout

Go project structure and workspace setup. cmd/internal/pkg conventions, monorepo layout, CLI project structure, and when to keep things flat.

golang-stay-updated

Resources to stay current with Go. Official channels, community hubs, key people to follow, and learning resources.

APIs

golang-graphql

GraphQL API development in Go using gqlgen/graphql-go. Schema definition, resolvers, subscriptions, dataloader, and federation.

golang-grpc

gRPC in Go. Protobuf organization, service definitions, streaming, interceptors, error codes, and code generation workflow.

golang-swagger

OpenAPI/Swagger docs with swaggo/swag. Annotation comments, code generation, framework integrations (gin, echo, fiber, chi), security definitions.

Dependency Injection

golang-google-wire

Compile-time dependency injection with google/wire. Provider sets, injector generation, wire.Build, and structured DI patterns.

golang-uber-dig

Reflection-based DI with uber-go/dig. Provide/Invoke, dig.In/dig.Out, named values, value groups, optional dependencies, and Decorate.

golang-uber-fx

Application framework with uber-go/fx. fx.New, fx.Provide/Invoke, fx.Module, lifecycle hooks, fx.Annotate, fx.Decorate, signal-aware Run.

Frameworks

golang-spf13-cobra

CLI command trees with spf13/cobra. Command hierarchy, RunE hooks, flag management, shell completion, usage templates, and testing with SetArgs.

golang-spf13-viper

Layered configuration with spf13/viper. Flag > env > file > KV > default precedence, BindPFlag, hot reload, test isolation, and remote KV integration.

samber/*

golang-samber-do

Dependency injection with samber/do. Type-safe service containers, lifecycle management, scopes, health checks, and graceful shutdown.

golang-samber-hot

In-memory caching with samber/hot. 9 eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, SIEVE...), TTL, loaders, sharding, stale-while-revalidate, Prometheus metrics.

golang-samber-lo

Functional programming helpers with samber/lo. 500+ type-safe generic functions for slices, maps, channels, strings. Immutable (lo), parallel (lop), mutable (lom), iterators (loi), SIMD.

golang-samber-mo

Monadic types with samber/mo. Option, Result, Either, Future, IO, Task, State for type-safe nullable values, error handling, and functional composition.

golang-samber-oops

Structured error handling with samber/oops. Error builders, stack traces, error codes, context attributes, public vs developer messages, panic recovery, and APM integration.

golang-samber-ro

Reactive streams with samber/ro. 150+ type-safe operators, cold/hot observables, 5 subject types, 40+ plugins, automatic backpressure, and Go context integration.

golang-samber-slog

Structured logging pipeline with samber/slog-**** packages. Multi-handler routing (slog-multi), sampling, formatting, HTTP middleware, and 20+ backend sinks.

Testing

golang-stretchr-testify

Testing with stretchr/testify. assert, require, mock, and suite packages. Assertions, mock expectations, argument matchers, suite lifecycle, and custom matchers.

πŸ•΅ Use in CI for AI-driven reviews

Add AI agents as PR reviewers alongside traditional static analysis. When configured with this skill plugin, the agent applies the relevant Go skills per review area β€” catching architectural drift, logic bugs, and concurrency hazards that linters cannot detect.

See GOLANG-AI-DRIVEN-REVIEW.md for full setup instructions (Claude Code Action and GitHub Copilot).

🎯 Tuning Skill Triggers

If a skill triggers too often or not often enough, please open an issue suggesting a description change. The description field in SKILL.md frontmatter is the primary triggering mechanism β€” small wording adjustments can significantly improve trigger accuracy. Some SKILL.md files might have a When to use section which is another level of exclusion. Finally, SKILL.md files are an entrypoint for lazy loading references with deep knowledge located in references/.

πŸ”„ Overlap

Claude reports very little overlap between skills in this repo, thanks to cross-reference. I suggest enabling most of the skills and leveraging lazy loading. The recommended ⭐️ skills load ~1,100 tokens of descriptions at startup; full skill content is only pulled in when relevant. Note:

  • I estimate that 50% of golang-naming and golang-code-style overlap with linters (golangci-lint).
  • A large part of the security rules in golang-security have been distilled from the Bearer (SAST) checklist. The skill is still useful for methodology.
  • If your team has its own conventions, create a company skill and declare the override explicitly near the top of its body: This skill supersedes samber/cc-skills-golang@golang-naming skill for [company] projects. Skills marked βš™οΈ in the table above support this mechanism.

✍️ Contribute

  • 100 tokens per skill description - what? when to use this skill?
  • 1.000–2.500 tokens per SKILL.md β€” keep the main file focused on essentials
  • Use secondary markdown files for depth β€” reference them from SKILL.md with relative links (e.g., [Logging](./logging.md)). Claude reads these on demand when the topic is relevant, so they don't count against the context budget until needed
  • Up to 10.000 tokens for full skill and secondary files
  • 2–4 skills loaded simultaneously in a typical session β€” design skills to coexist
  • Stay below ~10k tokens of total loaded SKILL.md anytime to avoid degrading response quality

For more guidelines, please check CLAUDE.md.

πŸ’« Fuel the Revolution

  • ⭐️ Star this repo - Your star powers the caffeine engine!
  • β˜•οΈ Buy me a coffee - I'll literally use it to build more skills while drinking actual coffee

GitHub Sponsors

πŸ“ License

Copyright Β© 2026 Samuel Berthe.

This project is under MIT license.

Questions

What is samber/cc-skills-golang?

πŸ§‘β€πŸŽ¨ A collection of Golang agentic skills that works

How do I install cc-skills-golang?

Run "npx skills add samber/cc-skills-golang" and choose the skills you want. Many packs also document their own install path (for example a Claude Code plugin marketplace) in the README below.

How many skills are in cc-skills-golang?

46 SKILL.md skills. Alyn lists 30 of them with their own pages.