Skip to content
This repository was archived by the owner on Jul 27, 2026. It is now read-only.
Β 
Β 

Repository files navigation

Agent Skills for production-ready Golang projects

Note

This is a fork of samber/cc-skills-golang, trimmed for a specific stack. It differs from upstream in three ways:

  1. 34 of 46 skills. The 12 covering libraries this stack doesn't use are removed: all seven golang-samber-*, plus golang-google-wire, golang-graphql, golang-swagger, golang-spf13-viper, and golang-uber-dig. Cross-references to them were rewritten rather than left dangling.
  2. Agent-agnostic prose. Claude Code-specific assumptions (the ultracode orchestration keyword, ENABLE_LSP_TOOL, AskUserQuestion/Agent tool names, CLAUDE.md-first config precedence) are generalised, so the skills work with any Agent Skills-compatible tool. Where an agent-specific command is genuinely useful it is kept but labelled as an example.
  3. No CI. All GitHub Actions workflows and the Dependabot config are removed, and Actions is disabled at the repository level.

EVALUATIONS.md is upstream's benchmark record and is left unmodified β€” its rows for removed skills are historical measurements, not claims about this fork's contents.

Upstream is the place to contribute; changes here are stack-specific pruning.

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 generic 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.

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)

Clone into the cross-client discovery path:

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

Codex auto-discovers skills from ~/.agents/skills/ and .agents/skills/. Update with cd ~/.agents/skills/cc-skills-golang && git pull.

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% 115 2,341 2,957
⭐️ βœ… golang-data-structures ⚑ -39% 93 2,599 6,318
⭐️ βœ… golang-database ⚑ βš™οΈ -38% 97 2,712 7,234
⭐️ βœ… golang-design-patterns ⚑ βš™οΈ -37% 80 2,685 9,391
⭐️ βœ… golang-documentation ⚑ πŸ€– βš™οΈ -53% 75 3,078 11,177
⭐️ βœ… golang-error-handling ⚑ πŸ€– βš™οΈ -26% 141 1,718 4,677
⭐️ βœ… golang-how-to ⚑ β€” 165 4,017 13,853
⭐️ βœ… golang-modernize ⚑ πŸ€– -61% 68 2,920 9,233
⭐️ βœ… golang-naming ⚑ βš™οΈ -23% 159 3,022 7,390
⭐️ βœ… golang-refactoring ⚑ 🧠 πŸ€– βš™οΈ β€” 246 3,708 20,216
⭐️ βœ… golang-safety ⚑ -58% 78 2,605 5,375
⭐️ βœ… golang-testing ⚑ 🧠 πŸ€– βš™οΈ -32% 115 4,234 7,341
⭐️ βœ… golang-troubleshooting ⚑ 🧠 πŸ€– -32% 128 2,894 16,577
⭐️ βœ… golang-security ⚑ 🧠 πŸ€– -32% 85 3,160 21,596
βœ… golang-benchmark ⚑ 🧠 -50% 102 3,042 30,224
βœ… golang-cli ⚑ -43% 125 2,329 6,144
βœ… golang-concurrency ⚑ πŸ€– βš™οΈ -39% 72 2,180 6,810
βœ… golang-context ⚑ βš™οΈ -34% 82 1,202 4,012
βœ… golang-continuous-integration ⚑ -59% 82 3,291 12,553
βœ… golang-dependency-injection ⚑ πŸ€– βš™οΈ -47% 178 2,994 5,265
βœ… golang-dependency-management ⚑ -54% 77 2,361 5,499
βœ… golang-structs-interfaces ⚑ βš™οΈ -35% 111 3,067 3,067
βœ… golang-lint ⚑ πŸ€– -41% 98 1,853 6,181
βœ… golang-observability ⚑ πŸ€– βš™οΈ -37% 164 3,096 18,583
βœ… golang-performance ⚑ 🧠 πŸ€– -39% 130 2,190 18,190
βœ… golang-gopls ⚑ β€” 219 2,308 12,188
βœ… golang-pkg-go-dev ⚑ β€” 230 3,428 5,242
βœ… golang-popular-libraries ⚑ -30% 51 1,044 4,438
βœ… golang-project-layout ⚑ -38% 69 1,563 5,778
βœ… golang-stay-updated ⚑ -56% 44 1,801 1,801

Tools:

Skill Flags Error rate gap Description (tok) SKILL.md (tok) Directory (tok)
βœ… golang-grpc ⚑ -41% 70 2,332 5,148
βœ… golang-spf13-cobra ⚑ β€” 176 2,571 7,342
βœ… golang-uber-fx ⚑ -5% 118 2,816 7,051
❌ golang-temporal β€” 0 0 0
βœ… golang-stretchr-testify ⚑ -47% 92 1,849 2,668

πŸ§ͺ Skill evaluations

With Skill Without Skill Delta
Overall 3315/3395 (98%) 1915/3395 (56%) +41pp

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.

golang-popular-libraries

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-grpc

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

Dependency Injection

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.

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.

About

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

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages