4ac98d09a4 fix(ci): resolve lint errors and disable broken workflows (#48)
* fix(ci): resolve lint errors and disable broken workflows

- .markdownlint-cli2.jsonc: disable MD060 (table column style)
- golang-graphql/SKILL.md: wrap bare URLs in angle brackets (MD034)
- golang-security/SKILL.md: escape pipe in table cell content (MD056)
- validate.yml: convert from commented-out to valid no-op workflow
- publish-clawhub.yml: convert from commented-out to valid no-op workflow

* revert: restore commented-out validate.yml and publish-clawhub.yml

* fix(lint): fix table spacing in graphql-go.md for MD060

---------

Co-authored-by: headless-samber <150833725+headless-samber@users.noreply.github.com>
2026-05-20 19:40:08 +02:00
2026-03-30 18:46:12 +02:00
2026-03-22 00:11:10 +01:00
2026-03-22 00:11:10 +01:00

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 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    │ │ 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 │           │
    └──────────────┴────────────────┴──────────────┴─────────────┴───────────┘

  • Recommended
  • Published
  • 👷 Work in progress
  • To-do
  • Command available
  • 🧠 Ultrathink 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,069 2,685
golang-data-structures -39% 92 2,464 6,176
golang-database ⚙️ -38% 97 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% 139 1,520 4,394
👷 golang-how-to 0 0 0
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 2,873 20,894
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 1,877 4,957
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-popular-libraries -30% 61 788 4,131
golang-project-layout -38% 69 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 -16% 122 2,511 7,243
golang-graphql -16% 76 2,935 7,766
golang-grpc -41% 69 2,149 4,965
golang-spf13-cobra 176 2,455 7,218
golang-spf13-viper 170 2,412 6,936
golang-swagger 144 2,125 3,123
golang-uber-dig -10% 107 2,264 5,904
golang-uber-fx -5% 118 2,499 6,747
golang-samber-do -81% 71 1,746 3,269
golang-samber-hot -54% 118 1,843 7,273
golang-samber-lo -40% 165 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% 152 2,845 11,136
golang-samber-slog -19% 118 2,588 9,234
golang-temporal 0 0 0
golang-stretchr-testify -47% 90 1,714 2,533

🧪 Skill evaluations

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

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

🕵 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.0002.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
  • 24 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.

Languages
Go 79.7%
Makefile 14.8%
Shell 5.5%