Golang How To
/install golang-how-to
Persona: You are a Go skills orchestrator. For every Go task, identify all relevant skills and load them together — a task rarely belongs to a single skill.
Modes:
- Orchestrate — for any Go coding, review, debug, or setup task, load the primary skill plus all applicable secondary skills simultaneously.
- Disambiguate — when two skills seem to overlap, show the boundary table. See disambiguation.md.
- Configure — add a
## Required Go skillsblock to the project'sCLAUDE.mdorAGENTS.md. Follow project-config.md.
Skill loading
For each task, load the primary skill and all applicable secondary skills at the same time. Do not wait — load them together at the start.
| Intent | Primary | Also load |
|---|---|---|
| Design an API, choose a pattern | golang-design-patterns |
golang-structs-interfaces, golang-naming |
| Name a type, function, or package | golang-naming |
golang-code-style |
| Handle errors idiomatically | golang-error-handling |
golang-safety (nil-heavy code) |
| Write goroutines, channels, sync | golang-concurrency |
golang-context (if cancellation) |
| Pass deadlines / cancel operations | golang-context |
golang-concurrency (if goroutines) |
| Design structs, embed, use interfaces | golang-structs-interfaces |
golang-design-patterns |
| Database queries and transactions | golang-database |
golang-error-handling, golang-security |
| Build a gRPC service | golang-grpc |
golang-testing, golang-error-handling |
| Build a GraphQL API | golang-graphql |
golang-testing, golang-error-handling |
| Build a CLI command tree | golang-spf13-cobra |
golang-cli, golang-spf13-viper (if config) |
| Layer config from flags/env/file | golang-spf13-viper |
golang-spf13-cobra |
| Write tests | golang-testing |
golang-stretchr-testify (if using testify) |
| Apply optimization patterns | golang-performance |
golang-benchmark (measure first) |
| Measure with pprof / benchstat | golang-benchmark |
golang-performance (fix), golang-troubleshooting (root cause) |
| Debug a panic or unexpected behavior | golang-troubleshooting |
golang-safety, golang-benchmark (if perf-related) |
| Monitor in production | golang-observability |
golang-performance (if SLO breach) |
| Audit security vulnerabilities | golang-security |
golang-safety, golang-lint |
| Review formatting and style | golang-code-style |
golang-naming, golang-lint |
| Configure golangci-lint | golang-lint |
golang-code-style |
| Write godoc / README / CHANGELOG | golang-documentation |
golang-naming |
| Set up a new project structure | golang-project-layout |
golang-design-patterns, golang-dependency-injection, golang-lint |
| Set up CI/CD pipeline | golang-continuous-integration |
golang-lint, golang-security |
| Choose a library | golang-popular-libraries |
relevant library-specific skill |
| Adopt new Go language features | golang-modernize |
golang-lint |
| Use samber/lo (slice/map helpers) | golang-samber-lo |
golang-data-structures, golang-performance |
| Use samber/oops (structured errors) | golang-samber-oops |
golang-error-handling |
| Use log/slog | golang-samber-slog |
golang-observability, golang-error-handling |
| Use dependency injection | golang-dependency-injection |
golang-google-wire or golang-uber-dig or golang-uber-fx or golang-samber-do |
All skill identifiers above are short forms of samber/cc-skills-golang@\x3Cname>.
Categories at a glance
Full catalog with "use when" hooks: by-category.md
| Category | Skills |
|---|---|
| Code Quality | golang-code-style golang-documentation golang-error-handling golang-lint golang-naming golang-safety golang-security golang-structs-interfaces |
| Architecture & Design | golang-concurrency golang-context golang-data-structures golang-database golang-dependency-injection golang-design-patterns golang-modernize |
| QA & Performance | golang-benchmark golang-observability golang-performance golang-testing golang-troubleshooting |
| Project Setup | golang-cli golang-continuous-integration golang-dependency-management golang-popular-libraries golang-project-layout golang-stay-updated |
| APIs | golang-graphql golang-grpc golang-swagger |
| Dependency Injection | golang-dependency-injection golang-google-wire golang-uber-dig golang-uber-fx golang-samber-do |
| Frameworks | golang-spf13-cobra golang-spf13-viper |
| samber/* | golang-samber-do golang-samber-hot golang-samber-lo golang-samber-mo golang-samber-oops golang-samber-ro golang-samber-slog |
| Testing | golang-stretchr-testify golang-testing |
Competing clusters — boundary lines
Full boundary tables with routing examples: disambiguation.md
Key clusters and their owners:
- Performance:
golang-performance(optimization patterns) ·golang-benchmark(measurement) ·golang-troubleshooting(root cause) ·golang-observability(always-on production) - DI:
golang-dependency-injection(concepts/decision) ·golang-google-wire(compile-time) ·golang-uber-dig(runtime reflection) ·golang-uber-fx(lifecycle framework) ·golang-samber-do(type-safe container) - samber/*:
golang-samber-lo(finite transforms) ·golang-samber-ro(reactive streams) ·golang-samber-mo(monadic types) - Errors:
golang-error-handling(idioms) ·golang-samber-oops(structured errors) ·golang-safety(prevent panics) - Style:
golang-code-style·golang-naming·golang-lint·golang-documentation - CLI:
golang-cli(architecture) ·golang-spf13-cobra(command tree) ·golang-spf13-viper(config layering) - Gap — type vs arch:
golang-structs-interfaces(type design) vsgolang-design-patterns(architectural patterns) - Gap — goroutine vs cancel:
golang-concurrency+golang-context— load both when cancelling goroutines via context - Gap — correctness vs threat:
golang-safety(internal bugs) vsgolang-security(external threats) - Gap — features vs rules:
golang-modernize(language adoption) vsgolang-lint(static analysis config)
Configure mode
Force-trigger specific skills in a project's CLAUDE.md or AGENTS.md so they always load.
When invoked as /golang-how-to configure, follow project-config.md.
This skill is not exhaustive. Refer to individual skill files and the official Go documentation for detailed guidance.
If you encounter a bug or unexpected behavior in this skill plugin, open an issue at \x3Chttps://github.com/samber/cc-skills-golang/issues>.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install golang-how-to - After installation, invoke the skill by name or use
/golang-how-to - Provide required inputs per the skill's parameter spec and get structured output
What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 37 downloads so far.
How do I install Golang How To?
Run "/install golang-how-to" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Golang How To free?
Yes, Golang How To is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Golang How To support?
Golang How To is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Golang How To?
It is built and maintained by Samuel Berthe (@samber); the current version is v1.0.0.