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-performanceClaude Code
/plugin marketplace add samber/cc
/plugin install cc-skills-golang@samberOpenclaw
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-golangGemini CLI
gemini extensions install https://github.com/samber/cc-skills-golangUpdate 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-golangCursor 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-golangCopilot 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-golangOpenCode 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-golangCodex 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-golangUpdate 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.
- βοΈ Recommended
- β Published
- π· Work in progress
- β To-do
- β‘ Command available
- π§ Ultrathink automatically
- βοΈ Overridable (see doc below)
- Description (tok): weight of the
descriptionfield from YAML frontmatter, always loaded into Claude's context for skill triggering - SKILL.md (tok): weight of the full
SKILL.mdfile 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% | 31 | 2,069 | 2,685 |
| βοΈ | β
golang-data-structures |
β‘ | -39% | 92 | 2,464 | 6,176 |
| βοΈ | β
golang-database |
β‘ βοΈ | -38% | 112 | 2,725 | 7,248 |
| βοΈ | β
golang-design-patterns |
β‘ βοΈ | -37% | 66 | 2,610 | 9,316 |
| βοΈ | β
golang-documentation |
β‘ βοΈ | -53% | 73 | 2,678 | 10,549 |
| βοΈ | β
golang-error-handling |
β‘ βοΈ | -26% | 90 | 1,520 | 4,394 |
| βοΈ | π· golang-how-to |
β | 0 | 0 | 0 | |
| βοΈ | β
golang-modernize |
β‘ | -61% | 113 | 2,476 | 7,599 |
| βοΈ | β
golang-naming |
β‘ βοΈ | -23% | 158 | 2,865 | 7,233 |
| βοΈ | β
golang-safety |
β‘ | -58% | 85 | 2,457 | 5,227 |
| βοΈ | β
golang-testing |
β‘ π§ βοΈ | -32% | 98 | 3,105 | 6,212 |
| βοΈ | β
golang-troubleshooting |
β‘ π§ | -32% | 106 | 2,735 | 15,901 |
| βοΈ | β
golang-security |
β‘ π§ | -32% | 84 | 2,873 | 20,894 |
β
golang-benchmark |
β‘ π§ | -50% | 92 | 2,135 | 29,248 | |
β
golang-cli |
β‘ | -43% | 73 | 2,274 | 6,089 | |
β
golang-concurrency |
β‘ βοΈ | -39% | 71 | 1,873 | 6,338 | |
β
golang-context |
β‘ βοΈ | -34% | 41 | 1,144 | 3,940 | |
β
golang-continuous-integration |
β‘ | -59% | 105 | 2,835 | 6,477 | |
β
golang-dependency-injection |
β‘ βοΈ | -47% | 104 | 2,842 | 5,113 | |
β
golang-dependency-management |
β‘ | -54% | 94 | 1,877 | 4,957 | |
β
golang-structs-interfaces |
β‘ βοΈ | -35% | 110 | 2,999 | 2,999 | |
β
golang-lint |
β‘ | -41% | 119 | 1,714 | 5,493 | |
β
golang-observability |
β‘ βοΈ | -37% | 144 | 2,921 | 18,453 | |
β
golang-performance |
β‘ π§ | -39% | 108 | 1,953 | 17,855 | |
β
golang-popular-libraries |
β‘ | -30% | 61 | 788 | 4,131 | |
β
golang-project-layout |
β‘ | -38% | 66 | 1,510 | 5,718 | |
β
golang-stay-updated |
β‘ | -56% | 43 | 1,916 | 1,916 |
Tools:
| Skill | Flags | Error rate gap | Description (tok) | SKILL.md (tok) | Directory (tok) |
|---|---|---|---|---|---|
β golang-google-wire |
β | 0 | 0 | 0 | |
β golang-graphql |
β | 0 | 0 | 0 | |
β
golang-grpc |
β‘ | -41% | 69 | 2,149 | 4,965 |
β golang-spf13-cobra |
β | 0 | 0 | 0 | |
β golang-spf13-viper |
β | 0 | 0 | 0 | |
β golang-swagger |
β | 0 | 0 | 0 | |
β golang-uber-dig |
β | 0 | 0 | 0 | |
β golang-uber-fx |
β | 0 | 0 | 0 | |
β
golang-samber-do |
β‘ | -81% | 70 | 1,746 | 3,269 |
β
golang-samber-hot |
β‘ | -54% | 118 | 1,843 | 7,273 |
β
golang-samber-lo |
β‘ | -40% | 155 | 2,410 | 10,031 |
β
golang-samber-mo |
β‘ π§ | -48% | 81 | 2,800 | 11,215 |
β
golang-samber-oops |
β‘ | -59% | 69 | 2,380 | 2,692 |
β
golang-samber-ro |
β‘ π§ | -50% | 140 | 2,845 | 11,136 |
β
golang-samber-slog |
β‘ | -19% | 118 | 2,588 | 9,234 |
β golang-temporal |
β | 0 | 0 | 0 | |
β
golang-stretchr-testify |
β‘ | -47% | 89 | 1,714 | 2,533 |
| With Skill | Without Skill | Delta | |
|---|---|---|---|
| Overall | 3065/3141 (98%) | 1691/3141 (54%) | +44pp |
See EVALUATIONS.md for the full per-skill breakdown.
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/.
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-namingandgolang-code-styleoverlap with linters (golangci-lint). - A large part of the security rules in
golang-securityhave 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.
- 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.
- βοΈ 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
Copyright Β© 2026 Samuel Berthe.
This project is under MIT license.