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.
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.
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 │ │ CI │
│ structs-iface│ │ data-structs │ │ observability │ │ stay-updated │
│ documentation│ │ database │ │ │ │ dep-management │
│ lint │ │ modernize │ │ │ │ │
│ security │ │ │ │ │ │ │
└──────────────┘ └──────────────┘ └─────────────────┘ └──────────────────┘
┌─────────────────────────────────────────────────────────────────────────┐
│ 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 │ │
└──────────────┴────────────────┴──────────────┴─────────────┴───────────┘
description field from YAML frontmatter, always loaded into Claude's context for skill triggeringSKILL.md file loaded when the skill triggersGeneral purpose:
| Skill | Flags | Error rate gap | Description (tok) | SKILL.md (tok) | Directory (tok) | |
|---|---|---|---|---|---|---|
| ⭐️ | ✅ golang-code-style |
⚡ ⚙️ | -40% | 115 | 2,069 | 2,685 |
| ⭐️ | ✅ golang-data-structures |
⚡ | -39% | 92 | 2,497 | 6,216 |
| ⭐️ | ✅ golang-database |
⚡ ⚙️ | -38% | 97 | 2,725 | 7,248 |
| ⭐️ | ✅ golang-design-patterns |
⚡ ⚙️ | -37% | 66 | 2,610 | 9,316 |
| ⭐️ | ✅ golang-documentation |
⚡ ⚙️ | -53% | 73 | 3,017 | 11,116 |
| ⭐️ | ✅ golang-error-handling |
⚡ ⚙️ | -26% | 139 | 1,520 | 4,394 |
| ⭐️ | ✅ golang-how-to |
⚡ | — | 165 | 2,254 | 10,372 |
| ⭐️ | ✅ golang-modernize |
⚡ | -61% | 68 | 2,476 | 7,599 |
| ⭐️ | ✅ golang-naming |
⚡ ⚙️ | -23% | 158 | 2,865 | 7,233 |
| ⭐️ | ✅ golang-safety |
⚡ | -58% | 78 | 2,457 | 5,227 |
| ⭐️ | ✅ golang-testing |
⚡ 🧠 ⚙️ | -32% | 113 | 3,105 | 6,212 |
| ⭐️ | ✅ golang-troubleshooting |
⚡ 🧠 | -32% | 126 | 2,735 | 15,901 |
| ⭐️ | ✅ golang-security |
⚡ 🧠 | -32% | 84 | 3,036 | 21,472 |
✅ golang-benchmark |
⚡ 🧠 | -50% | 99 | 2,135 | 29,248 | |
✅ golang-cli |
⚡ | -43% | 122 | 2,274 | 6,089 | |
✅ golang-concurrency |
⚡ ⚙️ | -39% | 71 | 1,873 | 6,338 | |
✅ golang-context |
⚡ ⚙️ | -34% | 80 | 1,144 | 3,940 | |
✅ golang-continuous-integration |
⚡ | -59% | 82 | 2,835 | 6,477 | |
✅ golang-dependency-injection |
⚡ ⚙️ | -47% | 176 | 2,842 | 5,113 | |
✅ golang-dependency-management |
⚡ | -54% | 77 | 2,361 | 5,499 | |
✅ golang-structs-interfaces |
⚡ ⚙️ | -35% | 110 | 2,999 | 2,999 | |
✅ golang-lint |
⚡ | -41% | 98 | 1,714 | 5,493 | |
✅ golang-observability |
⚡ ⚙️ | -37% | 161 | 2,921 | 18,453 | |
✅ golang-performance |
⚡ 🧠 | -39% | 127 | 1,953 | 17,855 | |
✅ golang-pkg-go-dev |
⚡ | — | 185 | 2,693 | 4,302 | |
✅ golang-popular-libraries |
⚡ | -30% | 61 | 893 | 4,287 | |
✅ golang-project-layout |
⚡ | -38% | 69 | 1,510 | 5,718 | |
✅ golang-stay-updated |
⚡ | -56% | 43 | 1,801 | 1,801 |
Tools:
| Skill | Flags | Error rate gap | Description (tok) | SKILL.md (tok) | Directory (tok) |
|---|---|---|---|---|---|
✅ golang-google-wire |
⚡ | -16% | 122 | 2,577 | 7,307 |
✅ golang-graphql |
-16% | 76 | 2,977 | 7,848 | |
✅ golang-grpc |
⚡ | -41% | 69 | 2,249 | 5,065 |
✅ golang-spf13-cobra |
⚡ | — | 176 | 2,488 | 7,259 |
✅ golang-spf13-viper |
⚡ | — | 170 | 2,459 | 7,006 |
✅ golang-swagger |
⚡ | — | 144 | 2,250 | 3,255 |
✅ golang-uber-dig |
⚡ | -10% | 107 | 2,493 | 6,165 |
✅ golang-uber-fx |
⚡ | -5% | 118 | 2,733 | 6,968 |
✅ golang-samber-do |
⚡ | -81% | 71 | 1,794 | 3,309 |
✅ golang-samber-hot |
⚡ | -54% | 118 | 1,894 | 7,324 |
✅ golang-samber-lo |
⚡ | -40% | 165 | 2,518 | 10,154 |
✅ golang-samber-mo |
⚡ 🧠 | -48% | 81 | 2,860 | 11,275 |
✅ golang-samber-oops |
⚡ | -59% | 69 | 2,452 | 2,764 |
✅ golang-samber-ro |
⚡ 🧠 | -50% | 152 | 2,869 | 11,085 |
✅ golang-samber-slog |
⚡ | -19% | 118 | 3,028 | 9,750 |
❌ golang-temporal |
— | 0 | 0 | 0 | |
✅ golang-stretchr-testify |
⚡ | -47% | 90 | 1,766 | 2,585 |
| With Skill | Without Skill | Delta | |
|---|---|---|---|
| Overall | 3315/3395 (98%) | 1915/3395 (56%) | +41pp |
See EVALUATIONS.md for the full per-skill breakdown.
golang-code-styleGo code formatting and conventions. gofmt, goimports, linting rules, comment conventions, and project-level style consistency. Overridable by company skills.
golang-documentationGo documentation standards. Package docs, godoc conventions, code comments, example functions, README structure, and API reference generation. Overridable.
golang-error-handlingGo 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-lintGo linting best practices and golangci-lint configuration. Presets, custom rules, CI integration, inline suppression, and output interpretation.
golang-namingGo 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-safetyDefensive 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-securityGo 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-interfacesGo struct and interface design. Composition, embedding, type assertions, interface segregation, struct tags (JSON/YAML/DB), pointer vs value receivers. Overridable.
golang-concurrencyGo concurrency patterns. Goroutines, channels, sync primitives, context cancellation, worker pools, fan-out/fan-in, pipelines. Overridable.
golang-contextIdiomatic context.Context usage. Creation, cancellation, timeouts, values, propagation patterns, and common anti-patterns. Overridable.
golang-data-structuresGo data structures internals and usage. Slices (capacity growth, append aliasing), maps, channels, sync primitives, and when to use each.
golang-databaseGo database access patterns. Parameter binding, connection pooling, transactions, migrations, sqlboiler/sqlc code generation, query builders. Overridable.
golang-dependency-injectionDependency injection patterns in Go. Constructor injection, interface-based DI, wire/dig/fx comparison, and when DI is worth the complexity. Overridable.
golang-design-patternsIdiomatic Go design patterns. Functional options, constructors, builder pattern, middleware chains, circuit breaker, and architecture guides with file trees and code. Overridable.
golang-modernizeModernize 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-benchmarkGo benchmarking, profiling, and performance measurement. pprof, trace, CPU/memory/block profiles, flame graphs, benchmark comparison (benchstat), continuous profiling.
golang-observabilityGo production observability. Structured logging (slog), Prometheus metrics, OpenTelemetry tracing, pprof profiling, RUM tracking, alerting, Grafana dashboards. Overridable.
golang-performanceGo performance optimization. Allocation reduction, CPU efficiency, memory layout, GC tuning, pooling, caching, hot-path optimization. Review and hot-path modes.
golang-testingProduction-ready Go tests. Table-driven tests, fuzzing, fixtures, goroutine leak detection (goleak), snapshot testing, code coverage, integration tests, parallel tests. Overridable.
$ claude mcp add cc-skills-golang \
-- python -m otcore.mcp_server <graph>