#331 by GitHub stars
samber/cc-skills-golang
🧑<U+200D>🎨 A collection of Golang agentic skills that works
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/golang-benchmark/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-cli/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-code-style/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-concurrency/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-context/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-continuous-integration/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-data-structures/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-database/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-dependency-injection/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-dependency-management/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-design-patterns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-documentation/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-error-handling/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-google-wire/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-gopls/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-graphql/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-grpc/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-how-to/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-lint/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-modernize/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-naming/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-observability/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-performance/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-pkg-go-dev/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-popular-libraries/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-project-layout/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-refactoring/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-safety/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-do/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-hot/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-lo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-mo/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-oops/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-ro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-samber-slog/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-security/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-spf13-cobra/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-spf13-viper/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-stay-updated/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-stretchr-testify/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-structs-interfaces/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-swagger/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-testing/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-troubleshooting/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-uber-dig/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
skills/golang-uber-fx/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
246b6c4c1ab3 → bb1d43d98a3f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 246b6c4c1ab3
No earlier version was observed for comparison.
Verified commit bb1d43d98a3f8ab639a0042f90d0ec524e39a477
git clone --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git .hotskills/samber-cc-skills-golang && git -C .hotskills/samber-cc-skills-golang checkout --detach bb1d43d98a3f8ab639a0042f90d0ec524e39a477
# Copy each selected skill directory from .hotskills/samber-cc-skills-golang into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/samber/cc-skills-golang.git .hotskills/samber-cc-skills-golang && git -C .hotskills/samber-cc-skills-golang checkout --detach bb1d43d98a3f8ab639a0042f90d0ec524e39a477
# Copy each selected skill directory from .hotskills/samber-cc-skills-golang into .gemini/skills/<skill-name>/Heat
7.2- Star growth, last 7 daysAhead of 91% of tracked repositories
- Star growth, last 24 hoursAhead of 92% of tracked repositories
- Rank movement, last 7 daysAhead of 67% of tracked repositories
- Commits, last 30 daysAhead of 64% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- golang-benchmark
skills/golang-benchmark - golang-cli
skills/golang-cli - golang-code-style
skills/golang-code-style - golang-concurrency
skills/golang-concurrency - golang-context
skills/golang-context - golang-continuous-integration
skills/golang-continuous-integration - golang-data-structures
skills/golang-data-structures - golang-database
skills/golang-database - golang-dependency-injection
skills/golang-dependency-injection - golang-dependency-management
skills/golang-dependency-management - golang-design-patterns
skills/golang-design-patterns - golang-documentation
skills/golang-documentation - golang-error-handling
skills/golang-error-handling - golang-google-wire
skills/golang-google-wire - golang-gopls
skills/golang-gopls - golang-graphql
skills/golang-graphql - golang-grpc
skills/golang-grpc - golang-how-to
skills/golang-how-to - golang-lint
skills/golang-lint - golang-modernize
skills/golang-modernize - golang-naming
skills/golang-naming - golang-observability
skills/golang-observability - golang-performance
skills/golang-performance - golang-pkg-go-dev
skills/golang-pkg-go-dev - golang-popular-libraries
skills/golang-popular-libraries - golang-project-layout
skills/golang-project-layout - golang-refactoring
skills/golang-refactoring - golang-safety
skills/golang-safety - golang-samber-do
skills/golang-samber-do - golang-samber-hot
skills/golang-samber-hot - golang-samber-lo
skills/golang-samber-lo - golang-samber-mo
skills/golang-samber-mo - golang-samber-oops
skills/golang-samber-oops - golang-samber-ro
skills/golang-samber-ro - golang-samber-slog
skills/golang-samber-slog - golang-security
skills/golang-security - golang-spf13-cobra
skills/golang-spf13-cobra - golang-spf13-viper
skills/golang-spf13-viper - golang-stay-updated
skills/golang-stay-updated - golang-stretchr-testify
skills/golang-stretchr-testify - golang-structs-interfaces
skills/golang-structs-interfaces - golang-swagger
skills/golang-swagger - golang-testing
skills/golang-testing - golang-troubleshooting
skills/golang-troubleshooting - golang-uber-dig
skills/golang-uber-dig - golang-uber-fx
skills/golang-uber-fx
How it works
golang-benchmark
When your agent uses it
Golang benchmarking, profiling, and performance measurement. Use when writing, running, or comparing Go benchmarks, profiling hot paths with pprof, interpreting CPU/memory/trace profiles, analyzing results with benchstat, setting up CI benchmark regression detection, or investigating production performance with Prometheus runtime metrics. Also use when the developer needs deep analysis on a specific performance indicator - this skill provides the measurement methodology, while `samber/cc-skills-golang@golang-performance` provides the optimization patterns.
What it loads into context
Frontmatter
331 tokensAlways available to the agent
SKILL.md
3,153 tokensWhen the skill is activated
Reference documents
30,243 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Writing Benchmarks
- Running Benchmarks
- Comparing Optimization Variants in Parallel
- Documenting Results in Commits
- Profiling from Benchmarks
- Reference Files
- Cross-References
Files
../../.claude-plugin/plugin.jsonasset643 bytesSKILL.mdcore13,809 bytesSKILL.mdcore13,809 bytesSKILL.mdcore13,809 bytesSKILL.mdcore13,809 bytesevals/evals.jsonasset93,382 bytesreferences/benchstat.mddoc16,408 bytesreferences/ci-regression.mddoc11,538 bytesreferences/compiler-analysis.mddoc11,645 bytesreferences/investigation-session.mddoc7,886 bytesreferences/pprof.mddoc37,545 bytesreferences/prometheus-go-metrics.mddoc13,179 bytesreferences/tools.mddoc4,031 bytesreferences/trace.mddoc20,223 bytes
Read SKILL.md
**Persona:** You are a Go performance measurement engineer. You never draw conclusions from a single benchmark run — statistical rigor and controlled conditions are prerequisites before any optimization decision.
**Thinking mode:** Reason as thoroughly as possible for benchmark analysis, profile interpretation, and performance comparison tasks — deep reasoning prevents misinterpreting profiling data and ensures statistically sound conclusions. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Dependencies:**
- benchstat: `go install golang.org/x/perf/cmd/benchstat@latest`
# Go Benchmarking & Performance Measurement
Performance improvement does not exist without measures — if you can measure it, you can improve it.
This skill covers the full measurement workflow: write a benchmark, run it, profile the result, compare before/after with statistical rigor, and track regressions in CI. For optimization patterns to apply after measurement, → See `samber/cc-skills-golang@golang-performance` skill. For pprof setup on running services, → See `samber/cc-skills-golang@golang-troubleshooting` skill.
View the complete source on GitHubgolang-cli
When your agent uses it
Golang CLI application development. Use when building, modifying, or reviewing a Go CLI tool — especially for command structure, flag handling, configuration layering, version embedding, exit codes, I/O patterns, signal handling, shell completion, argument validation, and CLI unit testing. Also triggers when code uses cobra, viper, or urfave/cli. For cobra-specific APIs → See `samber/cc-skills-golang@golang-spf13-cobra` skill; for viper configuration layering → See `samber/cc-skills-golang@golang-spf13-viper` skill.
What it loads into context
Frontmatter
262 tokensAlways available to the agent
SKILL.md
2,338 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Project Structure
- Root Command Setup
- Subcommands
- Flags
- Argument Validation
- Configuration with Viper
- Version and Build Info
- Exit Codes
- I/O Patterns
- Signal Handling
- Shell Completions
- Testing CLI Commands
- Common Mistakes
- Related Skills
Scripts executed separately
assets/examples/args.goassets/examples/cli_test.goassets/examples/completion.goassets/examples/config.goassets/examples/exit_codes.goassets/examples/flags.goassets/examples/main.goassets/examples/output.goassets/examples/root.goassets/examples/serve.goassets/examples/signal.goassets/examples/version.go
Files
SKILL.mdcore10,244 bytesassets/examples/args.goruns1,020 bytesassets/examples/cli_test.goruns1,258 bytesassets/examples/completion.goruns1,657 bytesassets/examples/config.goruns1,764 bytesassets/examples/exit_codes.goruns494 bytesassets/examples/flags.goruns1,322 bytesassets/examples/go.modasset38 bytesassets/examples/main.goruns120 bytesassets/examples/output.goruns1,791 bytesassets/examples/root.goruns1,803 bytesassets/examples/serve.goruns735 bytesassets/examples/signal.goruns831 bytesassets/examples/version.goruns871 bytesevals/evals.jsonasset16,416 bytes
Read SKILL.md
**Persona:** You are a Go CLI engineer. You build tools that feel native to the Unix shell — composable, scriptable, and predictable under automation.
**Modes:**
- **Build** — creating a new CLI from scratch: follow the project structure, root command setup, flag binding, and version embedding sections sequentially.
- **Extend** — adding subcommands, flags, or completions to an existing CLI: read the current command tree first, then apply changes consistent with the existing structure.
- **Review** — auditing an existing CLI for correctness: check the Common Mistakes table, verify `SilenceUsage`/`SilenceErrors`, flag-to-Viper binding, exit codes, and stdout/stderr discipline.
# Go CLI Best Practices
Use Cobra + Viper as the default stack for Go CLI applications. Cobra provides the command/subcommand/flag structure and Viper handles configuration from files, environment variables, and flags with automatic layering. This combination powers kubectl, docker, gh, hugo, and most production Go CLIs.
When using Cobra or Viper, refer to the library's official documentation and code examples for current API signatures.
View the complete source on GitHubgolang-code-style
When your agent uses it
Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).
What it loads into context
Frontmatter
250 tokensAlways available to the agent
SKILL.md
2,358 tokensWhen the skill is activated
Reference documents
616 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Line Length & Breaking
- Variable Declarations
- Control Flow
- Function Design
- Value vs Pointer Arguments
- Code Organization Within Files
- String Handling
- Type Conversions
- Philosophy
- Parallelizing Code Style Reviews
- Enforce with Linters
- Cross-References
Files
SKILL.mdcore9,921 bytesevals/evals.jsonasset35,853 bytesreferences/details.mddoc2,722 bytes
Read SKILL.md
**Orchestration mode:** Fan out the sub-agents described in the "Parallelizing Code Style Reviews" section, each covering an independent style concern, when reviewing code style across a large codebase, and merge their findings. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-code-style` skill takes precedence.
# Go Code Style
Style rules that require human judgment — linters handle formatting, this skill handles clarity. For naming see `samber/cc-skills-golang@golang-naming` skill; for design patterns see `samber/cc-skills-golang@golang-design-patterns` skill; for struct/interface design see `samber/cc-skills-golang@golang-structs-interfaces` skill.
> "Clear is better than clever." — Go Proverbs
When ignoring a rule, add a comment to the code.
## Line Length & Breaking
View the complete source on GitHubgolang-concurrency
When your agent uses it
Golang concurrency design — goroutine lifecycle and leak prevention, channels and `select`, channel ownership and direction, `sync.Mutex`/`RWMutex`/`sync.Map`/`sync.Once`/atomics, `errgroup`, `singleflight`, worker pools, and fan-out/fan-in pipelines. Use when writing or reviewing concurrent Go code, when choosing between channels and mutexes, when protecting a shared map or counter, or when a goroutine has no clear exit. Not for defensive coding unrelated to concurrency such as nil panics, slice aliasing, or numeric overflow (→ See `samber/cc-skills-golang@golang-safety` skill), and not for debugging a specific hung, crashing, or racing program after the fact (→ See `samber/cc-skills-golang@golang-troubleshooting` skill).
What it loads into context
Frontmatter
317 tokensAlways available to the agent
SKILL.md
2,303 tokensWhen the skill is activated
Reference documents
5,077 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Channel vs Mutex vs Atomic
- WaitGroup vs errgroup
- Sync Primitives Quick Reference
- Concurrency Checklist
- Pipelines and Worker Pools
- Parallelizing Concurrency Audits
- Common Mistakes
- Cross-References
- References
Files
SKILL.mdcore9,540 bytesSKILL.mdcore9,540 bytesevals/evals.jsonasset16,442 bytesreferences/channels-and-select.mddoc4,450 bytesreferences/pipelines.mddoc7,381 bytesreferences/sync-primitives.mddoc8,850 bytes
Read SKILL.md
**Persona:** You are a Go concurrency engineer. You assume every goroutine is a liability until proven necessary — correctness and leak-freedom come before performance.
**Orchestration mode:** Fan out the five sub-agents described in the "Parallelizing Concurrency Audits" section for auditing concurrent code across a large codebase, and consolidate their findings into one report. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Write mode** — implement concurrent code (goroutines, channels, sync primitives, worker pools, pipelines). Follow the sequential instructions below.
- **Review mode** — reviewing a PR's concurrent code changes. Focus on the diff: check for goroutine leaks, missing context propagation, ownership violations, and unprotected shared state. Sequential.
- **Audit mode** — auditing existing concurrent code across a codebase. Use up to 5 parallel sub-agents as described in the "Parallelizing Concurrency Audits" section.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-concurrency` skill takes precedence.
# Go Concurrency Best Practices
View the complete source on GitHubgolang-context
When your agent uses it
Idiomatic context.Context usage in Golang — propagation through API boundaries, cancellation, timeouts and deadlines, request-scoped values, context.WithoutCancel for background work outliving requests. Apply when designing context propagation across layers, debugging leaked or unexpired contexts, choosing between context.Background/TODO/WithoutCancel, or storing values in context. Not for code that merely accepts ctx as first parameter.
What it loads into context
Frontmatter
216 tokensAlways available to the agent
SKILL.md
1,387 tokensWhen the skill is activated
Reference documents
3,063 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Creating Contexts
- Context Propagation: The Core Principle
- Deep Dives
- Cross-References
- Enforce with Linters
Files
SKILL.mdcore6,340 bytesevals/evals.jsonasset13,535 bytesreferences/cancellation.mddoc6,075 bytesreferences/http-services.mddoc3,805 bytesreferences/values-tracing.mddoc3,162 bytes
Read SKILL.md
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-context` skill takes precedence.
# Go context.Context Best Practices
`context.Context` is Go's mechanism for propagating cancellation signals, deadlines, and request-scoped values across API boundaries and between goroutines. Think of it as the "session" of a request — it ties together every operation that belongs to the same unit of work.
## Best Practices Summary
1. Propagate the same context through the entire request lifecycle: HTTP handler → service → DB → external APIs — any link that starts a fresh context keeps working after the client is gone.
2. Take `ctx` as the first parameter, named `ctx context.Context` — the fixed position is what makes context-aware APIs recognizable at a glance and what linters check.
3. Pass context through function parameters instead of storing it in a struct — the struct outlives the request that filled it, so later calls reuse a context that is already cancelled or belongs to someone else.
4. Pass `context.TODO()` rather than a `nil` context — `nil` panics on the first `Done()` or `Value()` call, far from the caller that passed it.
5. Call `cancel()` on all control-flow paths for `WithCancel`/`WithTimeout`/`WithDeadline`, unless ownership of the context and cancel function is explicitly returned or transferred — an uncalled `cancel()` keeps the child attached to its parent and leaks its timer until the parent finishes.
6. Create `context.Background()` only at top-level entry points (main, init, tests). Deeper in the call chain — especially mid-request — it detaches the work from the caller's deadline and cancellation, the propagation break shown below.View the complete source on GitHubgolang-continuous-integration
When your agent uses it
GitHub Actions CI/CD pipeline configuration for Golang projects — workflow files for test, lint, SAST, coverage and vulnerability-scan jobs, Dependabot and Renovate config files, GoReleaser release pipelines, Docker build/push, repository security settings, and AI-driven PR review. Use when setting up or improving Go project CI, writing or fixing `.github/workflows/*.yml`, adding a linter or security scanner as a pipeline job, wiring automated dependency-update bots, or adding quality gates. Covers wiring tools into a pipeline, not the analysis they perform: do NOT use for choosing or interpreting security findings (→ See `samber/cc-skills-golang@golang-security` skill) or for choosing, upgrading, or auditing dependency versions (→ See `samber/cc-skills-golang@golang-dependency-management` skill).
What it loads into context
Frontmatter
388 tokensAlways available to the agent
SKILL.md
3,542 tokensWhen the skill is activated
Reference documents
1,712 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Action Versions
- Quick Reference
- Testing
- Integration Tests
- Linting
- Security & SAST
- Dependency Management
- Release Automation
- Repository Security Settings
- AI-Driven Code Review
- Common Mistakes
- Related Skills
Files
SKILL.mdcore14,817 bytesSKILL.mdcore14,817 bytesassets/claude-code-review.ymlasset21,547 bytesassets/codecov.ymlasset135 bytesassets/codeql-config.ymlasset118 bytesassets/copilot-review-instructions.mddoc3,697 bytesassets/dependabot-auto-merge.ymlasset698 bytesassets/dependabot.ymlasset623 bytesassets/docker.ymlasset2,440 bytesassets/goreleaser-cli.ymlasset551 bytesassets/goreleaser-lib.ymlasset122 bytesassets/goreleaser-monorepo.ymlasset452 bytesassets/integration.ymlasset1,155 bytesassets/lint.ymlasset494 bytesassets/release.ymlasset539 bytesassets/renovate.jsonasset467 bytesassets/security.ymlasset1,670 bytesassets/test.ymlasset1,046 bytesevals/evals.jsonasset18,081 bytesreferences/repo-security.mddoc3,935 bytes
Read SKILL.md
**Persona:** You are a Go DevOps engineer. You treat CI as a quality gate — every pipeline decision is weighed against build speed, signal reliability, and security posture.
**Modes:**
- **Setup** — adding CI to a project for the first time: start with the Quick Reference table, then generate workflows in this order: test → lint → security → release. Prefer the latest stable major version for each GitHub Action.
- **Improve** — auditing or extending an existing pipeline: read current workflow files first, identify gaps against the Quick Reference table, then propose targeted additions without duplicating existing steps.
**Dependencies:**
- goreleaser: `go install github.com/goreleaser/goreleaser/v2@latest`
- gh: `brew install gh`
# Go Continuous Integration
View the complete source on GitHubgolang-data-structures
When your agent uses it
Golang data structures — slices (internals, capacity growth, preallocation, slices package), maps (internals, hash buckets, maps package), arrays, container/list/heap/ring, strings.Builder vs bytes.Buffer, generic collections, pointers (unsafe.Pointer, weak.Pointer), and copy semantics. Use when choosing or optimizing Go data structures, implementing generic containers, using container/ packages, unsafe or weak pointers, or questioning slice/map internals. Not for applying optimization patterns once profiling has identified a bottleneck (→ See `samber/cc-skills-golang@golang-performance` skill).
What it loads into context
Frontmatter
301 tokensAlways available to the agent
SKILL.md
2,646 tokensWhen the skill is activated
Reference documents
3,921 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Slice Internals
- Map Internals
- Arrays
- container/ Standard Library
- strings.Builder vs bytes.Buffer
- Generic Collections (Go 1.18+)
- Pointer Types
- Copy Semantics Quick Reference
- Third-Party Libraries
- Cross-References
- Common Mistakes
- References
Files
SKILL.mdcore10,620 bytesSKILL.mdcore10,620 bytesevals/evals.jsonasset20,105 bytesreferences/containers.mddoc4,088 bytesreferences/generics.mddoc2,571 bytesreferences/map-internals.mddoc2,579 bytesreferences/pointers.mddoc4,273 bytesreferences/slice-internals.mddoc1,962 bytes
Read SKILL.md
**Persona:** You are a Go engineer who understands data structure internals. You choose the right structure for the job — not the most familiar one — by reasoning about memory layout, allocation cost, and access patterns.
# Go Data Structures
Built-in and standard library data structures: internals, correct usage, and selection guidance.
- For safety pitfalls (nil maps, append aliasing, defensive copies) see `samber/cc-skills-golang@golang-safety` skill.
- For channels and sync primitives see `samber/cc-skills-golang@golang-concurrency` skill.
- For string/byte/rune choice see `samber/cc-skills-golang@golang-design-patterns` skill.
## Best Practices Summary
1. **Preallocate slices and maps** with `make(T, 0, n)` / `make(map[K]V, n)` when size is known or estimable — avoids repeated growth copies and rehashing
2. **Arrays** SHOULD be preferred over slices only for fixed, compile-time-known sizes (hash digests, IPv4 addresses, matrix dimensions)View the complete source on GitHubgolang-database
When your agent uses it
Comprehensive guide for Go database access — parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context propagation, and migration tooling. Use when writing, reviewing, or debugging Golang code that interacts with PostgreSQL, MariaDB, MySQL, or SQLite; for database testing; or for questions about database/sql, sqlx, or pgx. Does NOT generate database schemas or migration SQL.
What it loads into context
Frontmatter
236 tokensAlways available to the agent
SKILL.md
2,721 tokensWhen the skill is activated
Reference documents
4,863 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Library Choice
- Parameterized Queries
- Struct Scanning and NULLable Columns
- Error Handling
- Context Propagation
- Transactions, Isolation Levels, and Locking
- Connection Pool
- Migrations
- Avoid Hidden SQL Features
- Schema Creation
- Deep Dives
- Cross-References
- References
Files
SKILL.mdcore11,564 bytesSKILL.mdcore11,564 bytesevals/evals.jsonasset15,362 bytesreferences/performance.mddoc9,254 bytesreferences/scanning.mddoc2,248 bytesreferences/testing.mddoc6,678 bytesreferences/transactions.mddoc1,504 bytes
Read SKILL.md
**Persona:** You are a Go backend engineer who writes safe, explicit, and observable database code. You treat SQL as a first-class language — no ORMs, no magic — and you catch data integrity issues at the boundary, not deep in the application.
**Modes:**
- **Write mode** — generating new repository functions, query helpers, or transaction wrappers: follow the skill's sequential instructions; launch a background agent to grep for existing query patterns and naming conventions in the codebase before generating new code.
- **Review/debug mode** — auditing or debugging existing database code: use a sub-agent to scan for missing `rows.Close()`, un-parameterized queries, missing context propagation, and absent error checks in parallel with reading the business logic.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-database` skill takes precedence.
# Go Database Best Practices
Go's `database/sql` provides a solid foundation for database access. Use `sqlx` or `pgx` on top of it for ergonomics — never an ORM.
When using sqlx or pgx, refer to the library's official documentation and code examples for current API signatures.View the complete source on GitHubgolang-dependency-injection
When your agent uses it
Comprehensive guide for dependency injection (DI) in Golang. Covers why DI matters (testability, loose coupling, separation of concerns, lifecycle management), manual constructor injection, and DI library comparison (google/wire, uber-go/dig, uber-go/fx, samber/do). Use this skill when designing service architecture, setting up dependency injection, refactoring tightly coupled code, managing singletons or service factories, or when the user asks about inversion of control, service containers, or wiring dependencies in Go. For a specific DI library, → See `samber/cc-skills-golang@golang-google-wire`, `samber/cc-skills-golang@golang-uber-dig`, `samber/cc-skills-golang@golang-uber-fx`, or `samber/cc-skills-golang@golang-samber-do` skills.
What it loads into context
Frontmatter
338 tokensAlways available to the agent
SKILL.md
3,051 tokensWhen the skill is activated
Reference documents
2,385 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Why Dependency Injection?
- Manual Constructor Injection (No Library)
- DI Library Comparison
- Testing with DI
- When to Adopt a DI Library
- Common Mistakes
- Cross-References
- References
Files
SKILL.mdcore13,045 bytesevals/evals.jsonasset12,046 bytesreferences/google-wire.mddoc2,445 bytesreferences/manual-di.mddoc2,182 bytesreferences/samber-do.mddoc1,625 bytesreferences/uber-dig-fx.mddoc3,909 bytes
Read SKILL.md
**Persona:** You are a Go software architect. You guide teams toward testable, loosely coupled designs — you choose the simplest DI approach that solves the problem, and you never over-engineer.
**Orchestration mode:** Fan out the three sub-agents described in Refactor mode (global/init discovery, concrete-dependency mapping, service-locator detection) when refactoring a large coupled codebase toward dependency injection, and consolidate into one migration plan. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Design mode** (new project, new service, or adding a service to an existing DI setup): assess the existing dependency graph and lifecycle needs; recommend manual injection or a library from the decision table; then generate the wiring code.
- **Refactor mode** (existing coupled code): use up to 3 parallel sub-agents — Agent 1 identifies global variables and `init()` service setup, Agent 2 maps concrete type dependencies that should become interfaces, Agent 3 locates service-locator anti-patterns (container passed as argument) — then consolidate findings and propose a migration plan.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-dependency-injection` skill takes precedence.
# Dependency Injection in Go
Dependency injection (DI) means passing dependencies to a component rather than having it create or find them. In Go, this is how you build testable, loosely coupled applications — your services declare what they need, and the caller (or container) provides it.View the complete source on GitHubgolang-dependency-management
When your agent uses it
Dependency management for Golang projects — go.mod and go.sum, `go get` install and upgrade flows, Minimal Version Selection, conflict resolution with replace/exclude/retract, `govulncheck` scanning of the module tree, outdated dependency and binary size auditing, vendoring, `tool` directives, and go.work workspaces. Use when adding, removing, or upgrading Go dependencies, deciding whether to take on a package, resolving version conflicts, or auditing what a module pulls in. Covers choosing and upgrading dependency versions, not the surrounding tooling: do NOT use for fixing an exploitable vulnerability in code (→ See `samber/cc-skills-golang@golang-security` skill) or for wiring Dependabot/Renovate update bots into CI workflows (→ See `samber/cc-skills-golang@golang-continuous-integration` skill).
What it loads into context
Frontmatter
359 tokensAlways available to the agent
SKILL.md
2,510 tokensWhen the skill is activated
Reference documents
3,138 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- AI Agent Rule: Ask Before Adding Dependencies
- Key Rules
- go.mod & go.sum
- Installing & Upgrading Dependencies
- Deep Dives
- Cross-References
- Quick Reference
Files
SKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesSKILL.mdcore10,564 bytesevals/evals.jsonasset11,487 bytesreferences/auditing.mddoc3,511 bytesreferences/automated-updates.mddoc1,876 bytesreferences/conflicts.mddoc2,101 bytesreferences/versioning.mddoc2,747 bytesreferences/visualization.mddoc1,440 bytesreferences/workspaces.mddoc1,227 bytes
Read SKILL.md
**Persona:** You are a Go dependency steward. You treat every new dependency as a long-term maintenance commitment — you ask whether the standard library already solves the problem before reaching for an external package.
**Dependencies:**
- govulncheck: `go install golang.org/x/vuln/cmd/govulncheck@latest`
# Go Dependency Management
## AI Agent Rule: Ask Before Adding Dependencies
**Before running `go get` to add any new dependency, AI agents MUST ask the user for confirmation.** AI agents can suggest packages that are unmaintained, low-quality, or unnecessary when the standard library already provides equivalent functionality. Using `go get -u` to upgrade an existing dependency is safe.
Before proposing a dependency, evaluate:
View the complete source on GitHubgolang-design-patterns
When your agent uses it
Idiomatic Golang design patterns — functional options, constructor APIs, `init()` and global-state avoidance, enums, panic vs error decisions, resource management and lifecycle, graceful shutdown, timeouts and retries, streaming and iterators, and architecture styles (clean, hexagonal, DDD, flat). Apply when choosing between architectural patterns, implementing functional options, designing constructor APIs, setting up graceful shutdown, applying resilience patterns, or asking which idiomatic Go pattern fits a specific problem. Not for wiring a DI container or comparing DI libraries (→ See `samber/cc-skills-golang@golang-dependency-injection` skill), nor for error wrapping, `errors.Is`/`As`, or logging mechanics (→ See `samber/cc-skills-golang@golang-error-handling` skill).
What it loads into context
Frontmatter
306 tokensAlways available to the agent
SKILL.md
2,781 tokensWhen the skill is activated
Reference documents
7,361 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Constructor Patterns: Functional Options vs Builder
- Constructors & Initialization
- Error Flow Patterns
- Data Handling
- Resource Management
- Resilience & Limits
- Database Patterns
- Architecture
- Detailed Guides
- Code Philosophy
- Cross-References
Files
SKILL.mdcore12,048 bytesevals/evals.jsonasset22,668 bytesreferences/architecture.mddoc5,260 bytesreferences/clean-architecture.mddoc5,715 bytesreferences/data-handling.mddoc1,667 bytesreferences/ddd.mddoc7,441 bytesreferences/hexagonal-architecture.mddoc6,955 bytesreferences/resource-management.mddoc4,372 bytes
Read SKILL.md
**Persona:** You are a Go architect who values simplicity and explicitness. You apply patterns only when they solve a real problem — not to demonstrate sophistication — and you push back on premature abstraction.
**Modes:**
- **Design mode** — creating new APIs, packages, or application structure: ask the developer about their architecture preference before proposing patterns; favor the smallest pattern that satisfies the requirement.
- **Review mode** — auditing existing code for design issues: scan for `init()` abuse, unbounded resources, missing timeouts, and implicit global state; report findings before suggesting refactors.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-design-patterns` skill takes precedence.
# Go Design Patterns & Idioms
Idiomatic Go patterns for production-ready code. For error handling details see the `samber/cc-skills-golang@golang-error-handling` skill; for context propagation see `samber/cc-skills-golang@golang-context` skill; for struct/interface design see `samber/cc-skills-golang@golang-structs-interfaces` skill.
## Best Practices SummaryView the complete source on GitHubgolang-documentation
When your agent uses it
Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt. Use when writing or reviewing doc comments, documentation, adding code examples, setting up doc sites, or discussing documentation best practices. Triggers for both libraries and applications/CLIs.
What it loads into context
Frontmatter
212 tokensAlways available to the agent
SKILL.md
3,163 tokensWhen the skill is activated
Reference documents
8,382 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Cross-References
- Writing Principles
- Step 1: Detect Project Type
- Step 2: Documentation Checklist
- Parallelizing Documentation Work
- Step 3: Function & Method Doc Comments
- Step 4: README Structure
- Step 5: CONTRIBUTING & Changelog
- Step 6: Library-Specific Documentation
- Step 7: Application-Specific Documentation
- Step 8: API Documentation
- Step 9: AI-Friendly Documentation
- Step 10: Delivery Documentation
Files
SKILL.mdcore13,979 bytesSKILL.mdcore13,979 bytesSKILL.mdcore13,979 bytesSKILL.mdcore13,979 bytesassets/templates/CHANGELOG.mddoc675 bytesassets/templates/CONTRIBUTING.mddoc1,163 bytesassets/templates/README.mddoc3,872 bytesassets/templates/llms.txtdoc1,236 bytesevals/evals.jsonasset31,924 bytesreferences/application.mddoc5,957 bytesreferences/code-comments.mddoc12,313 bytesreferences/library.mddoc7,432 bytesreferences/project-docs.mddoc4,397 bytes
Read SKILL.md
**Persona:** You are a Go technical writer and API designer. You treat documentation as a first-class deliverable — accurate, example-driven, and written for the reader who has never seen this codebase before.
**Orchestration mode:** Fan out the sub-agents described in the "Parallelizing Documentation Work" section (one per package, or one per doc layer/file) for documenting or auditing documentation across a large codebase, and merge their output into the final docs. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Write mode** — generating or filling in missing documentation (doc comments, README, CONTRIBUTING, CHANGELOG, llms.txt). Work sequentially through the checklist in Step 2, or parallelize across packages/files using sub-agents.
- **Review mode** — auditing existing documentation for completeness, accuracy, and style. Use up to 5 parallel sub-agents: one per documentation layer (doc comments, README, CONTRIBUTING, CHANGELOG, library-specific extras).
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-documentation` skill takes precedence.
# Go Documentation
Write documentation that serves both humans and AI agents. Good documentation makes code discoverable, understandable, and maintainable.View the complete source on GitHubgolang-error-handling
When your agent uses it
Idiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code. For samber/oops specifics → See `samber/cc-skills-golang@golang-samber-oops` skill; for slog handler ecosystem → See `samber/cc-skills-golang@golang-samber-slog` skill.
What it loads into context
Frontmatter
277 tokensAlways available to the agent
SKILL.md
1,734 tokensWhen the skill is activated
Reference documents
3,415 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Detailed Reference
- Parallelizing Error Handling Audits
- Cross-References
- References
Files
SKILL.mdcore7,363 bytesevals/evals.jsonasset15,744 bytesreferences/error-creation.mddoc5,781 bytesreferences/error-handling.mddoc4,591 bytesreferences/error-wrapping.mddoc3,860 bytes
Read SKILL.md
**Persona:** You are a Go reliability engineer. You treat every error as an event that must either be handled or propagated with context — silent failures and duplicate logs are equally unacceptable.
**Orchestration mode:** Fan out the five category sub-agents described in the "Parallelizing Error Handling Audits" section (creation, wrapping, single-handling rule, panic/recover, structured logging) for auditing error handling across a large codebase, and consolidate their findings. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Coding mode** — writing new error handling code. Follow the best practices sequentially; optionally launch a background sub-agent to grep for violations in adjacent code (swallowed errors, log-and-return pairs) without blocking the main implementation.
- **Review mode** — reviewing a PR's error handling changes. Focus on the diff: check for swallowed errors, missing wrapping context, log-and-return pairs, and panic misuse. Sequential.
- **Audit mode** — auditing existing error handling across a codebase. Use up to 5 parallel sub-agents, each targeting an independent category (creation, wrapping, single-handling rule, panic/recover, structured logging).
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-error-handling` skill takes precedence.
# Go Error Handling Best Practices
View the complete source on GitHubgolang-google-wire
When your agent uses it
Compile-time dependency injection in Golang using google/wire — wire.NewSet, wire.Build, wire.Bind (interface→concrete), wire.Struct, wire.Value, wire.InterfaceValue, wire.FieldsOf, cleanup functions, //go:build wireinject injector files, and generated wire_gen.go. Apply when using or adopting google/wire, when the codebase imports `github.com/google/wire`, or when wiring an application graph at compile time via `wire.Build`. For runtime DI with reflection, see `samber/cc-skills-golang@golang-uber-dig` skill.
What it loads into context
Frontmatter
346 tokensAlways available to the agent
SKILL.md
2,672 tokensWhen the skill is activated
Reference documents
5,086 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- wire vs. Runtime DI
- Providers
- Provider Sets
- Injectors and `//go:build wireinject`
- Interface Bindings
- Struct Providers and Values
- Disambiguating Duplicate Types
- Full Application Example
- Codegen Workflow
- Best Practices
- Common Mistakes
- Testing
- Further Reading
- Cross-References
Files
SKILL.mdcore11,139 bytesSKILL.mdcore11,139 bytesSKILL.mdcore11,139 bytesSKILL.mdcore11,139 bytesevals/evals.jsonasset16,019 bytesreferences/advanced.mddoc7,521 bytesreferences/recipes.mddoc7,069 bytesreferences/testing.mddoc5,607 bytes
Read SKILL.md
**Persona:** You are a Go architect using wire for compile-time DI. You let the compiler catch missing dependencies, treat `wire_gen.go` as committed source, and re-run `wire ./...` after every graph change.
**Dependencies:**
- wire: `go install github.com/google/wire/cmd/wire@latest`
# Using google/wire for Compile-Time Dependency Injection in Go
Code-generation DI toolkit. Wire resolves the dependency graph at compile time and emits plain Go constructor calls — no runtime container, no reflection. Errors appear when you run `wire ./...`, not at first request.
Note: `google/wire` was archived in August 2025 (feature-complete; bug fixes still accepted).
**Official Resources:** [pkg.go.dev](https://pkg.go.dev/github.com/google/wire) · [github.com/google/wire](https://github.com/google/wire) · [User Guide](https://github.com/google/wire/blob/main/docs/guide.md) · [Best Practices](https://github.com/google/wire/blob/main/docs/best-practices.md)
View the complete source on GitHubgolang-gopls
When your agent uses it
Golang semantic code intelligence via `gopls`, the official Go language server — go-to-definition, find references, call/implementation hierarchy, workspace symbol search, package API discovery, diagnostics, safe rename, refactors (extract/inline/fill/rewrite code actions), formatting, and generated tests. Reaches an agent via gopls's own MCP server (`go_*` tools), Claude Code's native `LSP` tool, or the `gopls` CLI. Use when navigating or refactoring Go code — jumping to a definition, finding call sites before a rename, understanding a file's or package's dependencies, running diagnostics after an edit, or extracting/inlining/renaming. Not for the published ecosystem — packages not in your `go.mod`, versions, licenses, importers — → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`). Not for a whole-tree vulnerability audit → See `samber/cc-skills-golang@golang-security` skill (`govulncheck`).
What it loads into context
Frontmatter
437 tokensAlways available to the agent
SKILL.md
2,317 tokensWhen the skill is activated
Reference documents
9,995 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Three ways to reach gopls
- Capability → CLI → MCP → native LSP
- Use cases
- Efficient workflows
- gopls vs godig vs Context7 vs govulncheck
Files
SKILL.mdcore9,795 bytesSKILL.mdcore9,795 bytesreferences/cli.mddoc9,182 bytesreferences/features.mddoc18,513 bytesreferences/matrix.mddoc3,320 bytesreferences/mcp.mddoc5,336 bytesreferences/settings.mddoc5,383 bytes
Read SKILL.md
**Persona:** You are a Go engineer who reaches for semantic code intelligence instead of grep whenever a question is about the resolved build — grep finds text, `gopls` finds meaning (types, call graphs, shadowing, implementation relationships).
**Dependencies:** `gopls` — `go install golang.org/x/tools/gopls@latest` (v0.20+). The native `LSP` tool additionally needs `ENABLE_LSP_TOOL=1` and the `gopls-lsp@claude-plugins-official` marketplace plugin (see [references/mcp.md](references/mcp.md)).
`gopls` is the official Go language server. It only answers questions about **your specific, locally resolved build** — your workspace plus every dependency exactly as pinned in `go.sum`, including `replace` directives. For a package that isn't part of that build (versions, docs, licenses, CVEs of something you haven't added yet), → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`) instead.
## Three ways to reach gopls
Not interchangeable — pick by what you already know and what you need back:
- **gopls's own MCP server (preferred for most tasks)** — purpose-built for agents: tools take names, file paths, and fuzzy queries instead of raw cursor positions. Register once per machine: `claude mcp add gopls -- gopls mcp`. Runs headless over stdio, no editor attached, only sees files saved to disk — the right default for an agent-only workflow. See [references/mcp.md](references/mcp.md) for every tool.
- **The native `LSP` tool** — Claude Code's built-in editor-style integration. Off by default: set `ENABLE_LSP_TOOL=1`, install `gopls`, and install the official `gopls-lsp@claude-plugins-official` marketplace plugin to wire it as the Go language server. Operations (`goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, call hierarchy) are keyed by `line`/`character`, so they're most useful once you already have a location — typically right after a grep or a read. Unique value: compiler diagnostics are pushed into context automatically after every edit, no explicit call needed.
- **The `gopls` CLI** — same engine, invoked as `gopls <command> <file:line:col>`. The Go team documents it as experimental and debugging-only — "not efficient, complete, flexible, or officially supported." Use it when neither MCP nor the native tool is wired up, or for a one-shot scripted check. Positions are `file:line:col` (1-indexed, UTF-8 bytes) or `file:#offset` (0-indexed). See [references/cli.md](references/cli.md).
View the complete source on GitHubgolang-graphql
When your agent uses it
Implements GraphQL APIs in Golang using gqlgen or graphql-go. Apply when building GraphQL servers, designing schemas, writing resolvers, handling subscriptions, or integrating GraphQL with existing Go HTTP services. Also apply when the codebase imports `github.com/99designs/gqlgen` or `github.com/graph-gophers/graphql-go`.
What it loads into context
Frontmatter
269 tokensAlways available to the agent
SKILL.md
3,073 tokensWhen the skill is activated
Reference documents
5,294 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Library Choice
- Schema Design
- Resolver Patterns
- N+1 Prevention (DataLoaders)
- Authentication and Authorization
- Error Handling
- Subscriptions
- Performance and Safety
- Common Mistakes
- Deep Dives
- Cross-References
- References
Files
SKILL.mdcore13,093 bytesevals/evals.jsonasset11,727 bytesreferences/gqlgen.mddoc7,957 bytesreferences/graphql-go.mddoc7,783 bytesreferences/testing.mddoc5,472 bytes
Read SKILL.md
**Persona:** You are a Go GraphQL engineer. You design schemas deliberately, batch database access to prevent N+1, and treat query complexity limits as non-optional in production.
**Modes:**
- **Build mode** — generating new schemas, resolvers, or server setup: follow the skill's sequential instructions; launch a background agent to grep for existing resolver patterns and naming conventions before generating new code.
- **Review mode** — auditing a GraphQL codebase or PR: use a sub-agent to scan for N+1 resolver patterns, missing complexity caps, global DataLoaders, and introspection enabled in production, in parallel with reading the business logic.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-graphql` skill takes precedence.
# Go GraphQL Best Practices
Both major libraries are schema-first: write SDL (`.graphql` files), bind Go resolvers. Choose based on project size and team preferences.
This skill is not exhaustive — refer to each library's official documentation and code examples for current API signatures:View the complete source on GitHubgolang-grpc
When your agent uses it
Provides gRPC usage guidelines, protobuf organization, and production-ready patterns for Golang microservices. Use when implementing, reviewing, or debugging gRPC servers/clients, writing proto files, setting up interceptors, handling gRPC errors with status codes, configuring TLS/mTLS, testing with bufconn, or working with streaming RPCs.
What it loads into context
Frontmatter
275 tokensAlways available to the agent
SKILL.md
2,343 tokensWhen the skill is activated
Reference documents
3,099 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- Proto File Organization
- Server Implementation
- Client Implementation
- Error Handling
- Streaming
- Testing
- Security
- Performance
- Common Mistakes
- Cross-References
Files
SKILL.mdcore10,143 bytesevals/evals.jsonasset12,596 bytesreferences/protoc-reference.mddoc4,695 bytesreferences/testing.mddoc7,784 bytes
Read SKILL.md
**Persona:** You are a Go distributed systems engineer. You design gRPC services for correctness and operability — proper status codes, deadlines, interceptors, and graceful shutdown matter as much as the happy path.
**Modes:**
- **Build mode** — implementing a new gRPC server or client from scratch.
- **Review mode** — auditing existing gRPC code for correctness, security, and operability issues.
**Dependencies:**
- protoc: `brew install protobuf`
- protoc-gen-go: `go install google.golang.org/protobuf/cmd/protoc-gen-go@latest`
- protoc-gen-go-grpc: `go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest`
# Go gRPC Best PracticesView the complete source on GitHubgolang-how-to
When your agent uses it
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 samber/cc-skills-golang, often multiple at once: writing a gRPC service loads golang-grpc + golang-testing + golang-error-handling; debugging a panic loads golang-troubleshooting + golang-safety; auditing security loads golang-security + golang-lint + golang-safety. Also: disambiguates competing clusters when two skills seem to overlap (performance vs benchmark vs troubleshooting, samber/lo vs mo vs ro, DI cluster, safety vs security), and configures the project's agent-config file (CLAUDE.md, AGENTS.md, GEMINI.md, Cursor rules, or Copilot instructions) to force-trigger skills in a project (/golang-how-to configure).
What it loads into context
Frontmatter
351 tokensAlways available to the agent
SKILL.md
4,210 tokensWhen the skill is activated
Reference documents
13,214 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Skill loading
- Code navigation with gopls
- `godig` vs gopls vs Context7 vs govulncheck
- Categories at a glance
- Competing clusters — boundary lines
- Configure mode
Files
SKILL.mdcore15,816 bytesSKILL.mdcore15,816 bytesassets/cursor-go-skills.mdcasset660 bytesreferences/by-category.mddoc21,115 bytesreferences/disambiguation.mddoc20,554 bytesreferences/project-config.mddoc10,121 bytes
Read SKILL.md
**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](references/disambiguation.md).
- **Configure** — write the always-load directive for `golang-how-to` itself, plus an optional `## Required Go skills` block, to the project's agent-config file (CLAUDE.md, AGENTS.md, or equivalent). Follow [project-config.md](references/project-config.md).
**Questions:** In Configure mode, ask the user through the environment's question tool — never as plain-text prose. One question at a time, wait for the answer. If the environment has no question tool, ask in prose with the same options.
**Dependencies:** `gopls` — `go install golang.org/x/tools/gopls@latest`; Claude Code's built-in `LSP` tool also needs `ENABLE_LSP_TOOL=1` and a Go language server wired (see [Code navigation with gopls](#code-navigation-with-gopls)).
## Skill loading
View the complete source on GitHubgolang-lint
When your agent uses it
Linting best practices and golangci-lint configuration for Golang projects — running linters, configuring .golangci.yml, suppressing warnings with nolint directives, interpreting lint output, and selecting linters. Use when configuring golangci-lint, asking about lint warnings or nolint suppressions, setting up code quality tooling, or choosing linters. Also use when the user mentions golangci-lint, go vet, staticcheck, or revive. Not for wiring a lint step into a GitHub Actions pipeline (→ See `samber/cc-skills-golang@golang-continuous-integration` skill).
What it loads into context
Frontmatter
309 tokensAlways available to the agent
SKILL.md
1,912 tokensWhen the skill is activated
Reference documents
2,689 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Quick Reference
- Configuration
- Suppressing Lint Warnings
- Development Workflow
- Interpreting Output
- Common Issues
- Parallelizing Legacy Codebase Cleanup
- Cross-References
Files
SKILL.mdcore7,486 bytesSKILL.mdcore7,486 bytesSKILL.mdcore7,486 bytesassets/.golangci.ymlasset7,304 bytesevals/evals.jsonasset16,136 bytesreferences/linter-reference.mddoc8,329 bytesreferences/nolint-directives.mddoc2,531 bytes
Read SKILL.md
**Persona:** You are a Go code quality engineer. You treat linting as a first-class part of the development workflow — not a post-hoc cleanup step.
**Orchestration mode:** Fan out the five sub-agents described in the "Parallelizing Legacy Codebase Cleanup" section (auto-fix, security linters, error handling, style/formatting, code quality) when adopting linting on a legacy codebase, so independent linter categories are fixed concurrently. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Setup mode** — configuring `.golangci.yml`, choosing linters, enabling CI: follow the configuration and workflow sections sequentially.
- **Coding mode** — writing new Go code: launch a background agent running `golangci-lint run --fix` on the modified files only while the main agent continues implementing the feature; surface results when it completes.
- **Interpret/fix mode** — reading lint output, suppressing warnings, fixing issues on existing code: start from "Interpreting Output" and "Suppressing Lint Warnings"; use parallel sub-agents for large-scale legacy cleanup.
**Dependencies:**
- golangci-lint: `go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest`
View the complete source on GitHubgolang-modernize
When your agent uses it
Modernize Golang code to use recent language features, standard library improvements, and idiomatic patterns. Use when reviewing Go code with old-style patterns, when encountering a deprecation warning, or when the user asks for modernization, a Go version upgrade (e.g. to Go 1.27), or a CI/tooling refresh. Not for structural refactors, extracting functions, or moving code between packages (→ See `samber/cc-skills-golang@golang-refactoring` skill).
What it loads into context
Frontmatter
262 tokensAlways available to the agent
SKILL.md
3,486 tokensWhen the skill is activated
Reference documents
11,659 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Go Version Changelogs
- Using the modernize linter
- Version-specific modernizations
- Tooling modernization
- Deprecated Packages Migration
- Go 1.27+ version-bump risk checklist
- Migration Priority Guide
- Related Skills
Files
SKILL.mdcore13,296 bytesevals/evals.jsonasset46,704 bytesreferences/tooling.mddoc4,225 bytesreferences/versions.mddoc35,884 bytes
Read SKILL.md
<!-- markdownlint-disable ol-prefix -->
**Persona:** You are a Go modernization engineer. You keep codebases current with the latest Go idioms and standard library improvements — you prioritize safety and correctness fixes first, then readability, then gradual improvements.
**Orchestration mode:** Fan out the five sub-agents described in Full-scan mode (deprecated packages, language features, standard library upgrades, testing patterns, tooling and infra) for a full-codebase modernization scan, and consolidate results using the migration priority guide. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Inline mode** (developer is actively coding): suggest only modernizations relevant to the current file or feature. A broad rewrite started during someone else's task buries their change under unrelated churn and makes the diff unreviewable — so record the other opportunities as a note, with the quality gain each would bring, and let the developer schedule them.
- **Full-scan mode** (explicit `/golang-modernize` invocation or CI): use up to 5 parallel sub-agents — Agent 1 scans deprecated packages and API replacements, Agent 2 scans language feature opportunities (range-over-int, min/max, any, iterators), Agent 3 scans standard library upgrades (slices, maps, cmp, slog), Agent 4 scans testing patterns (t.Context, b.Loop, synctest), Agent 5 scans tooling and infra (golangci-lint v2, govulncheck, PGO, CI pipeline) — then consolidate and prioritize by the migration priority guide. The scan itself is read-only; once consolidated, apply the resulting codebase-wide rewrite in an isolated worktree so a sweeping multi-file modernization never touches the developer's main tree until reviewed.
**Questions:** In Inline mode, this skill triggers contextually while the developer is working on something else — ask via the environment's question tool, once, whether to suggest the modernization opportunities noticed or skip for now. If the user skips, stop immediately and do not raise modernization again for the rest of the session.
# Go Code Modernization GuideView the complete source on GitHubgolang-naming
When your agent uses it
Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and subtest names. Use this skill when writing new Go code, reviewing or refactoring, choosing between naming alternatives (New vs NewTypeName, isConnected vs connected, ErrNotFound vs NotFoundError, StatusReady vs StatusUnknown at iota 0), debating Go package names (utils/helpers anti-patterns), or asking about Go naming best practices. Also trigger when the user mentions MixedCaps vs snake_case, ALL_CAPS constants, Get-prefix on getters, or error string casing. Do NOT use for general Go implementation questions that don't involve naming decisions.
What it loads into context
Frontmatter
294 tokensAlways available to the agent
SKILL.md
3,031 tokensWhen the skill is activated
Reference documents
4,664 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Reference
- MixedCaps
- Avoid Stuttering
- Frequently Missed Conventions
- Detailed Categories
- Common Mistakes
- Enforce with Linters
- Cross-References
Files
SKILL.mdcore12,548 bytesSKILL.mdcore12,548 bytesevals/evals.jsonasset28,703 bytesreferences/functions-methods.mddoc4,318 bytesreferences/identifiers.mddoc5,577 bytesreferences/packages-files.mddoc3,049 bytesreferences/testing.mddoc1,263 bytesreferences/types-errors.mddoc4,656 bytes
Read SKILL.md
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-naming` skill takes precedence.
# Go Naming Conventions
Go favors short, readable names. Capitalization controls visibility — uppercase is exported, lowercase is unexported. All identifiers MUST use MixedCaps, NEVER underscores.
> "Clear is better than clever." — Go Proverbs
>
> "Design the architecture, name the components, document the details." — Go Proverbs
To ignore a rule, just add a comment to the code.
## Quick Reference
View the complete source on GitHubgolang-observability
When your agent uses it
Golang everyday observability — the always-on signals in production. Covers structured logging with slog, Prometheus metrics, OpenTelemetry distributed tracing, continuous profiling with pprof/Pyroscope, server-side RUM event tracking, alerting, and Grafana dashboards. Apply when instrumenting Go services for production monitoring, setting up metrics or alerting, adding OpenTelemetry tracing, correlating logs with traces, migrating legacy loggers (zap/logrus/zerolog) to slog, adding observability to new features, or implementing GDPR/CCPA-compliant tracking with Customer Data Platforms (CDP). Not for temporary deep-dive performance investigation (→ See `samber/cc-skills-golang@golang-benchmark` and `samber/cc-skills-golang@golang-performance` skills).
What it loads into context
Frontmatter
307 tokensAlways available to the agent
SKILL.md
3,128 tokensWhen the skill is activated
Reference documents
16,455 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Cross-References
- The Five Signals
- Detailed Guides
- Correlating Signals
- Migrating Legacy Loggers
- Definition of Done for Observability
- Common Mistakes
Files
SKILL.mdcore13,943 bytesevals/evals.jsonasset44,530 bytesreferences/alerting.mddoc8,135 bytesreferences/dashboards.mddoc1,700 bytesreferences/logging.mddoc8,615 bytesreferences/metrics.mddoc23,666 bytesreferences/profiling.mddoc3,900 bytesreferences/rum.mddoc12,030 bytesreferences/tracing.mddoc7,919 bytes
Read SKILL.md
**Persona:** You are a Go observability engineer. You treat every unobserved production system as a liability — instrument proactively, correlate signals to diagnose, and never consider a feature done until it is observable.
**Orchestration mode:** Fan out the five signal-specific sub-agents described in Audit mode (metrics, logging, tracing, profiling, RUM) for auditing observability coverage across a codebase, and merge their coverage findings. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Coding / instrumentation** (default): Add observability to new or existing code — declare metrics, add spans, set up structured logging, wire pprof toggles. Follow the sequential instrumentation guide.
- **Review mode** — reviewing a PR's instrumentation changes. Check that new code exports the expected signals (metrics declared, spans opened and closed, structured log fields consistent). Sequential.
- **Audit mode** — auditing existing observability coverage across a codebase. Launch up to 5 parallel sub-agents — one per signal (metrics, logging, tracing, profiling, RUM) — to check coverage simultaneously.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-observability` skill takes precedence.
# Go Observability Best Practices
View the complete source on GitHubgolang-performance
When your agent uses it
Golang performance optimization patterns and methodology - if X bottleneck, then apply Y. Covers allocation reduction, CPU efficiency, memory layout, GC tuning, pooling, caching, and hot-path optimization. Use when profiling or benchmarks have identified a bottleneck and you need the right optimization pattern to fix it. Also use when performing performance code review to suggest improvements or benchmarks that could help identify quick performance gains. Not for measurement methodology (→ See `samber/cc-skills-golang@golang-benchmark` skill) or debugging workflow (→ See `samber/cc-skills-golang@golang-troubleshooting` skill).
What it loads into context
Frontmatter
343 tokensAlways available to the agent
SKILL.md
2,226 tokensWhen the skill is activated
Reference documents
17,403 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Philosophy
- Rule Out External Bottlenecks First
- Iterative Optimization Methodology
- Decision Tree: Where Is Time Spent?
- Common Mistakes
- Deep Dives
- CI Regression Detection
- Cross-References
Files
SKILL.mdcore9,527 bytesassets/prometheus-alerts.ymlasset662 bytesevals/evals.jsonasset93,750 bytesreferences/caching.mddoc8,923 bytesreferences/cpu.mddoc18,756 bytesreferences/io-networking.mddoc14,535 bytesreferences/memory.mddoc10,298 bytesreferences/observability.mddoc5,638 bytesreferences/runtime.mddoc12,101 bytes
Read SKILL.md
**Persona:** You are a Go performance engineer. You never optimize without profiling first — measure, hypothesize, change one thing, re-measure.
**Thinking mode:** Reason as thoroughly as possible for performance optimization — shallow analysis misidentifies bottlenecks and deep reasoning ensures the right optimization is applied to the right problem. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Orchestration mode:** Fan out the three sub-agents described in Review mode (architecture) (allocation and memory layout, I/O and concurrency, algorithmic complexity and caching) for a broad architectural performance review. A single hot-path review stays sequential; fan-out only pays off at package/service scope. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Review mode (architecture)** — broad scan of a package or service for structural anti-patterns (missing connection pools, unbounded goroutines, wrong data structures). Use up to 3 parallel sub-agents split by concern: (1) allocation and memory layout, (2) I/O and concurrency, (3) algorithmic complexity and caching.
- **Review mode (hot path)** — focused analysis of a single function or tight loop identified by the caller. Work sequentially; one sub-agent is sufficient.
- **Optimize mode** — a bottleneck has been identified by profiling. Follow the iterative cycle (define metric → baseline → diagnose → improve → compare) sequentially — one change at a time is the discipline.
**Dependencies:**
View the complete source on GitHubgolang-pkg-go-dev
When your agent uses it
Golang package and module lookup via `godig`, a pkg.go.dev API client (CLI + MCP server). Use for any Go/Golang library's documentation, API signatures, symbols, usage examples, which versions exist, licenses, whether a dependency has CVEs, or who imports a package — prefer this over Context7 for any Go package or module. Read-only, no auth. Not for upgrading dependencies (→ See `samber/cc-skills-golang@golang-dependency-management` skill), choosing a library (→ See `samber/cc-skills-golang@golang-popular-libraries` skill), or local symbols and an already-used dependency's resolved source, call sites, and generic instantiations (→ See `samber/cc-skills-golang@golang-gopls` skill).
What it loads into context
Frontmatter
387 tokensAlways available to the agent
SKILL.md
3,442 tokensWhen the skill is activated
Reference documents
1,944 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Choosing between `godig`, gopls, Context7, and govulncheck
- Setup
- Commands
Files
SKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesSKILL.mdcore12,561 bytesreferences/sample-output.mddoc7,183 bytes
Read SKILL.md
# golang-pkg-go-dev
**Dependencies:** `godig` — `go install github.com/samber/godig/cmd/godig@latest` (or use a registered godig MCP server / the hosted instance instead).
`godig` queries the [pkg.go.dev](https://pkg.go.dev) API. Use it to answer questions about Go packages and modules: docs, symbols, versions, importers and vulnerabilities. It works as a CLI and as an MCP server, and all operations are **read-only** and need no authentication.
## When to use this skill
Trigger on questions like:
- "What versions of github.com/samber/lo are available?"
- "Does golang.org/x/text have known vulnerabilities?"
- "Show me the docs / symbols for package X."
- "Which packages import X?"View the complete source on GitHubgolang-popular-libraries
When your agent uses it
Golang library and framework selection — vetted production-ready options by category (web, database, testing, logging, messaging), new and experimental stdlib packages, standard-library-first tradeoffs, and maturity signals (maintenance, license, importer counts). Apply when the user asks for library suggestions, wants to compare alternatives, needs to choose a library for a specific task, or when a new dependency is being added to the project. Not for a specific library's API once chosen (→ See that library's dedicated skill, e.g. `samber/cc-skills-golang@golang-samber-lo`), nor for go.mod mechanics, upgrades, or vulnerability audits (→ See `samber/cc-skills-golang@golang-dependency-management` skill).
What it loads into context
Frontmatter
331 tokensAlways available to the agent
SKILL.md
1,181 tokensWhen the skill is activated
Reference documents
3,912 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Philosophy
- Reference Catalogs
- General Guidelines
- Anti-Patterns to Avoid
- Cross-References
Files
SKILL.mdcore5,203 bytesSKILL.mdcore5,203 bytesevals/evals.jsonasset12,975 bytesreferences/libraries.mddoc12,482 bytesreferences/stdlib.mddoc2,809 bytesreferences/tools.mddoc1,303 bytes
Read SKILL.md
**Persona:** You are a Go ecosystem expert. You know the library landscape well enough to recommend the simplest production-ready option — and to tell the developer when the standard library is already enough.
# Go Libraries and Frameworks Recommendations
## Core Philosophy
When recommending libraries, prioritize:
1. **Production-readiness** - Mature, well-maintained libraries with active communities
2. **Simplicity** - Go's philosophy favors simple, idiomatic solutions
3. **Performance** - Libraries that leverage Go's strengths (concurrency, compiled performance)
4. **Standard Library First** - SHOULD prefer stdlib when it covers the use case; only recommend external libs when they provide clear value
## Reference CatalogsView the complete source on GitHubgolang-project-layout
When your agent uses it
Golang project layout and workspace setup — cmd/internal/pkg directory conventions, module and package naming, go.work workspaces, and essential configuration files. Use when starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or discussing package restructuring, package splits, or module splits. Not for restructuring existing code without a layout change (→ See `samber/cc-skills-golang@golang-refactoring` skill).
What it loads into context
Frontmatter
234 tokensAlways available to the agent
SKILL.md
1,761 tokensWhen the skill is activated
Reference documents
3,646 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Architecture Decision: Ask First
- Dependency Injection: Ask Next
- 12-Factor App
- Quick Start: Choose Your Project Type
- Module Naming Conventions
- Directory Layout
- Essential Configuration Files
- Tests, Benchmarks, and Examples
- Go Workspaces
- Initialization Checklist
- Related Skills
Scripts executed separately
assets/Makefile
Files
SKILL.mdcore7,374 bytesassets/.gitignoreasset421 bytesassets/Makefileruns2,539 bytesevals/evals.jsonasset12,008 bytesreferences/config.mddoc1,444 bytesreferences/directory-layouts.mddoc5,187 bytesreferences/testing-layout.mddoc5,598 bytesreferences/workspaces.mddoc2,757 bytes
Read SKILL.md
**Persona:** You are a Go project architect. You right-size structure to the problem — a script stays flat, a service gets layers only when justified by actual complexity.
**Questions:** Ask the user through the environment's question tool — never as plain-text prose. Architecture preference and DI approach are asked one at a time, in that order, waiting for each answer before proceeding — getting either wrong early cascades into every file created afterward.
# Go Project Layout
## Architecture Decision: Ask First
When starting a new project, **ask the developer** what software architecture they prefer (clean architecture, hexagonal, DDD, flat structure, etc.). Avoid over-structuring small projects — a 100-line CLI tool does not need layers of abstractions or dependency injection.
→ See `samber/cc-skills-golang@golang-design-patterns` skill for detailed architecture guides with file trees and code examples.
## Dependency Injection: Ask Next
View the complete source on GitHubgolang-refactoring
When your agent uses it
Golang refactoring — safe, at-scale restructuring of existing Go code: a coverage-adaptive safety net, behavior-preserving transforms (gopls Rename/Extract, `gofmt -r`, `gopatch`), the Fowler catalog mapped to Go, breaking import cycles, and small stacked PRs. Apply when a function or type has grown too large, a code smell blocks a feature, or the user asks to refactor Go code — also for renaming at scale, extracting functions or interfaces, moving code between packages, or planning a multi-step refactor. Target styles owned elsewhere → See `samber/cc-skills-golang@golang-naming` (renames), `samber/cc-skills-golang@golang-project-layout` (splits), `samber/cc-skills-golang@golang-modernize` (idioms), `samber/cc-skills-golang@golang-code-style` (control flow), `samber/cc-skills-golang@golang-design-patterns` (patterns/DI).
What it loads into context
Frontmatter
477 tokensAlways available to the agent
SKILL.md
3,808 tokensWhen the skill is activated
Reference documents
17,558 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The Core Loop
- Hard Rules
- When Not to Refactor
- Risk Stratification
- Workflow: Plan → Stage → Land
- Detailed References
- Cross-References
Files
SKILL.mdcore16,371 bytesreferences/catalog.mddoc21,275 bytesreferences/go-tooling.mddoc9,217 bytesreferences/safety-net.mddoc10,280 bytesreferences/structural.mddoc17,987 bytesreferences/workflow.mddoc19,264 bytes
Read SKILL.md
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-refactoring` skill takes precedence.
**Persona:** You are a Go refactoring engineer. You never change structure and behavior in the same step — you keep a green test net, prefer behavior-preserving tools over hand-edits, and land changes as small, reviewable PRs.
**Thinking mode:** Reason as thoroughly as possible for the planning/ordering step — mapping blast radius, sequencing PRs to avoid merge conflicts, and deciding where a refactor can safely go parallel all punish shallow reasoning, since a wrong ordering call surfaces as a broken build or a conflict-riddled merge, not as an obviously wrong plan. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Orchestration mode:** Use `ultracode`/Workflows only for a **simple single-pass mechanical sweep** — one `gofmt -r`/`eg`/`modernize` fixer applied tree-wide, verified green, with no step depending on another. Do NOT use it for a multi-step refactor needing progressive human review between merges: Workflows run agent-to-agent with no human checkpoint between stages, which is exactly what a staged refactor requires between every merge.
**Modes:**
- **Plan mode** (mandatory gate before any edit) — use gopls to map structure and blast radius, build a refactoring inventory, decide ordering, and get explicit user sign-off before touching code. See [workflow.md](references/workflow.md).
- **Execute mode** (human-in-the-loop) — one sub-agent, one worktree, one branch, one PR per atomic change, landed on a refactoring branch; parallel when file-disjoint, sequential when overlapping. Dispatch each change to a sub-agent and keep only its result — the orchestrating session's context is what has to last across every row in the inventory. See [workflow.md](references/workflow.md).
- **Simple-sweep mode** — a single mechanical, behavior-preserving transform applied tree-wide; may use `ultracode`.
- **Review mode** — reviewing a refactoring PR: verify structural/behavioral separation and behavior preservation before approving.View the complete source on GitHubgolang-safety
When your agent uses it
Defensive Golang coding against accidental bugs — nil panics, typed-nil interfaces, `append` backing-array aliasing, silent int64-to-int32 truncation, float `==` comparison, `defer` inside loops, defensive copies of slices and maps, and usable zero values. Use when a Go program panics on a nil map write or nil pointer dereference, when reviewing code for nil-safety, numeric conversion overflow, or resource lifecycle, or when designing a type whose zero value must be safe. Not for designing concurrent access with goroutines, channels, or sync primitives (→ See `samber/cc-skills-golang@golang-concurrency` skill), not for exploitable vulnerabilities such as injection, weak crypto, or leaked secrets (→ See `samber/cc-skills-golang@golang-security` skill), and not for debugging an already-failing program (→ See `samber/cc-skills-golang@golang-troubleshooting` skill).
What it loads into context
Frontmatter
341 tokensAlways available to the agent
SKILL.md
2,736 tokensWhen the skill is activated
Reference documents
3,217 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Nil Safety
- Slice & Map Safety
- Numeric Safety
- Resource Safety
- Immutability & Defensive Copying
- Initialization Safety
- Enforce with Linters
- Common Mistakes
- Cross-References
Files
SKILL.mdcore10,798 bytesevals/evals.jsonasset48,573 bytesreferences/nil-safety.mddoc5,715 bytesreferences/slice-map-safety.mddoc6,344 bytes
Read SKILL.md
**Persona:** You are a defensive Go engineer. You treat every untested assumption about nil, capacity, and numeric range as a latent crash waiting to happen.
# Go Safety: Correctness & Defensive Coding
Prevents programmer mistakes — bugs, panics, and silent data corruption in normal (non-adversarial) code. Security handles attackers; safety handles ourselves.
## Best Practices Summary
1. **Prefer generics over `any`** when the type set is known — compiler catches mismatches instead of runtime panics
2. **Always use safe type assertions** — for normal interfaces use comma-ok (`v, ok := x.(T)`); for reflection in Go 1.25+ prefer `reflect.TypeAssert[T](value)` over `value.Interface().(T)`.
3. **Typed nil pointer in an interface is not `== nil`** — the type descriptor makes it non-nil
4. **Writing to a nil map panics** — always initialize before use
5. **`append` may reuse the backing array** — both slices share memory if capacity allows, silently corrupting each other
6. **Return defensive copies** from exported functions — otherwise callers mutate your internalsView the complete source on GitHubgolang-samber-do
When your agent uses it
Dependency injection in Golang using samber/do — service containers, lifecycle management, scopes, health checks, graceful shutdown, and module organization. Apply when using or adopting samber/do, when the codebase imports github.com/samber/do or github.com/samber/do/v2, or when refactoring manual constructor injection into a DI container.
What it loads into context
Frontmatter
260 tokensAlways available to the agent
SKILL.md
2,173 tokensWhen the skill is activated
Reference documents
1,692 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Concepts
- Basic Usage
- Package Organization
- Full Application Setup
- Best Practices
- Quick Reference
- Cross-References
Files
SKILL.mdcore9,283 bytesSKILL.mdcore9,283 bytesevals/evals.jsonasset11,860 bytesreferences/advanced.mddoc5,802 bytesreferences/testing.mddoc1,449 bytes
Read SKILL.md
**Persona:** You are a Go architect setting up dependency injection. You keep the container at the composition root, depend on interfaces not concrete types, and treat provider errors as first-class failures.
# Using samber/do for Dependency Injection in Go
Type-safe dependency injection toolkit for Go based on Go 1.18+ generics.
**Official Resources:**
- [pkg.go.dev/github.com/samber/do/v2](https://pkg.go.dev/github.com/samber/do/v2)
- [do.samber.dev](https://do.samber.dev)
- [github.com/samber/do/v2](https://github.com/samber/do)
This skill is not exhaustive — refer to library documentation and code examples for more information:
View the complete source on GitHubgolang-samber-hot
When your agent uses it
In-memory caching in Golang using samber/hot — eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, cache loaders, sharding, stale-while-revalidate, missing key caching, and Prometheus metrics. Apply when using or adopting samber/hot, when the codebase imports github.com/samber/hot, or when the project repeatedly loads the same medium-to-low cardinality resources at high frequency and needs to reduce latency or backend pressure.
What it loads into context
Frontmatter
310 tokensAlways available to the agent
SKILL.md
1,988 tokensWhen the skill is activated
Reference documents
5,934 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Algorithm Selection
- Core Usage
- Capacity Sizing
- Common Mistakes
- Best Practices
- Cross-References
Files
SKILL.mdcore7,975 bytesSKILL.mdcore7,975 bytesevals/evals.jsonasset16,674 bytesreferences/algorithm-guide.mddoc9,427 bytesreferences/api-reference.mddoc6,711 bytesreferences/production-patterns.mddoc7,552 bytes
Read SKILL.md
**Persona:** You are a Go engineer who treats caching as a system design decision. You choose eviction algorithms based on measured access patterns, size caches from working-set data, and always plan for expiration, loader failures, and monitoring.
# Using samber/hot for In-Memory Caching in Go
Generic, type-safe in-memory caching library for Go 1.22+ with 9 eviction algorithms, TTL, loader chains with singleflight deduplication, sharding, stale-while-revalidate, and Prometheus metrics.
**Official Resources:**
- [pkg.go.dev/github.com/samber/hot](https://pkg.go.dev/github.com/samber/hot)
- [github.com/samber/hot](https://github.com/samber/hot)
This skill is not exhaustive — refer to library documentation and code examples for more information:
- For Go package docs, symbols, versions, importers, and known vulnerabilities, → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`), preferred over Context7 for Go package facts.View the complete source on GitHubgolang-samber-lo
When your agent uses it
Functional programming helpers for Golang using samber/lo — 500+ type-safe generic functions for slices, maps, channels, strings, math, tuples, and concurrency (Map, Filter, Reduce, GroupBy, Chunk, Flatten, Find, Uniq, etc.). Core immutable package (lo), concurrent variants (lo/parallel aka lop), in-place mutations (lo/mutable aka lom), lazy iterators (lo/it aka loi for Go 1.23+), and experimental SIMD (lo/exp/simd). Apply when using or adopting samber/lo, when the codebase imports github.com/samber/lo, or when implementing functional-style data transformations in Go. Not for streaming pipelines (→ See `samber/cc-skills-golang@golang-samber-ro` skill).
What it loads into context
Frontmatter
357 tokensAlways available to the agent
SKILL.md
2,612 tokensWhen the skill is activated
Reference documents
8,198 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why samber/lo
- Installation
- Choose the Right Package
- Core Patterns
- Common Mistakes
- Best Practices
- Quick Reference
- Cross-References
Files
SKILL.mdcore9,827 bytesSKILL.mdcore9,827 bytesevals/evals.jsonasset19,413 bytesreferences/advanced-patterns.mddoc5,117 bytesreferences/api-reference.mddoc18,982 bytesreferences/package-guide.mddoc6,824 bytes
Read SKILL.md
**Persona:** You are a Go engineer who prefers declarative collection transforms over manual loops. You reach for `lo` to eliminate boilerplate, but you know when the stdlib is enough and when to upgrade to `lop`, `lom`, or `loi`.
# samber/lo — Functional Utilities for Go
Lodash-inspired, generics-first utility library with 500+ type-safe helpers for slices, maps, strings, math, channels, tuples, and concurrency. Zero external dependencies. Immutable by default.
**Official Resources:**
- [github.com/samber/lo](https://github.com/samber/lo)
- [lo.samber.dev](https://lo.samber.dev)
- [pkg.go.dev/github.com/samber/lo](https://pkg.go.dev/github.com/samber/lo)
This skill is not exhaustive — refer to library documentation and code examples for more information:
View the complete source on GitHubgolang-samber-mo
When your agent uses it
Monadic types for Golang using samber/mo — Option, Result, Either, Future, IO, Task, and State types for type-safe nullable values, error handling, and functional composition with pipeline sub-packages. Apply when using or adopting samber/mo, when the codebase imports `github.com/samber/mo`, or when considering functional programming patterns as a safety design for Golang. Not for nil-safety and zero-value design without this library (→ See `samber/cc-skills-golang@golang-safety` skill), nor for native error wrapping with fmt.Errorf, errors.Is and errors.As (→ See `samber/cc-skills-golang@golang-error-handling` skill).
What it loads into context
Frontmatter
340 tokensAlways available to the agent
SKILL.md
3,035 tokensWhen the skill is activated
Reference documents
9,786 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Types at a Glance
- Option[T] — Nullable Values Without nil
- Result[T] — Error Handling as Values
- Either[L, R] — Discriminated Union of Two Types
- Do Notation — Imperative Style with Monadic Safety
- Pipeline Sub-Packages vs Direct Chaining
- Common Patterns
- Best Practices
- Cross-References
Files
SKILL.mdcore11,739 bytesSKILL.mdcore11,739 bytesevals/evals.jsonasset23,740 bytesreferences/advanced-types.mddoc8,775 bytesreferences/either.mddoc5,680 bytesreferences/monads-guide.mddoc7,692 bytesreferences/option.mddoc5,283 bytesreferences/pipelines.mddoc6,009 bytesreferences/result.mddoc4,377 bytes
Read SKILL.md
**Persona:** You are a Go engineer bringing functional programming safety to Go. You use monads to make impossible states unrepresentable — nil checks become type constraints, error handling becomes composable pipelines.
**Thinking mode:** Reason as thoroughly as possible when designing multi-step Option/Result/Either pipelines — wrong type choice creates unnecessary wrapping/unwrapping that defeats the purpose of monads. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
# samber/mo — Monads and Functional Abstractions for Go
Go 1.18+ library providing type-safe monadic types with zero dependencies. Inspired by Scala, Rust, and fp-ts.
**Official Resources:**
- [pkg.go.dev/github.com/samber/mo](https://pkg.go.dev/github.com/samber/mo)
- [github.com/samber/mo](https://github.com/samber/mo)
This skill is not exhaustive — refer to library documentation and code examples for more information:View the complete source on GitHubgolang-samber-oops
When your agent uses it
Structured error handling in Golang with samber/oops — error builders, stack traces, error codes, error context, error wrapping, error attributes, user-facing vs developer messages, panic recovery, and logger integration. Apply when using or adopting samber/oops, or when the codebase already imports github.com/samber/oops.
What it loads into context
Frontmatter
260 tokensAlways available to the agent
SKILL.md
2,546 tokensWhen the skill is activated
Reference documents
312 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why use samber/oops
- Core pattern: Error builder chain
- Common scenarios
- Error wrapping best practices
- Panic recovery
- Accessing error information
- Context propagation
- References
- Cross-References
Files
SKILL.mdcore10,481 bytesevals/evals.jsonasset13,037 bytesreferences/advanced.mddoc1,347 bytes
Read SKILL.md
**Persona:** You are a Go engineer who treats errors as structured data. Every error carries enough context — domain, attributes, trace — for an on-call engineer to diagnose the problem without asking the developer.
# samber/oops Structured Error Handling
**samber/oops** is a drop-in replacement for Go's standard error handling that adds structured context, stack traces, error codes, public messages, and panic recovery. Variable data goes in `.With()` attributes (not the message string), so APM tools (Datadog, Loki, Sentry) can group errors properly. Unlike the stdlib approach (adding `slog` attributes at the log site), oops attributes travel with the error through the call stack.
## Why use samber/oops
Standard Go errors lack context — you see `connection failed` but not which user triggered it, what query was running, or the full call stack. `samber/oops` provides:
- **Structured context** — key-value attributes on any error
- **Stack traces** — automatic call stack capture
- **Error codes** — machine-readable identifiers
- **Public messages** — user-safe messages separate from technical detailsView the complete source on GitHubgolang-samber-ro
When your agent uses it
Reactive streams and event-driven programming in Golang using samber/ro — ReactiveX implementation with 150+ type-safe operators, cold/hot observables, 5 subject types (Publish, Behavior, Replay, Async, Unicast), declarative pipelines via Pipe, 40+ plugins (HTTP, cron, fsnotify, JSON, logging), automatic backpressure, error propagation, and Go context integration. Apply when using or adopting samber/ro, when the codebase imports github.com/samber/ro, or when building asynchronous event-driven pipelines, real-time data processing, streams, or reactive architectures in Go. Not for finite slice transforms (→ See `samber/cc-skills-golang@golang-samber-lo` skill).
What it loads into context
Frontmatter
344 tokensAlways available to the agent
SKILL.md
2,978 tokensWhen the skill is activated
Reference documents
8,912 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why samber/ro (Streams vs Slices)
- Installation
- Core Concepts
- Cold vs Hot Observables
- Operator Quick Reference
- Common Mistakes
- Best Practices
- Plugin Ecosystem
- Cross-References
Files
SKILL.mdcore12,087 bytesSKILL.mdcore12,087 bytesSKILL.mdcore12,087 bytesSKILL.mdcore12,087 bytesevals/evals.jsonasset17,758 bytesreferences/operators-guide.mddoc14,950 bytesreferences/patterns.mddoc8,210 bytesreferences/plugin-ecosystem.mddoc6,470 bytesreferences/subjects-guide.mddoc6,431 bytes
Read SKILL.md
**Persona:** You are a Go engineer who reaches for reactive streams when data flows asynchronously or infinitely. You use samber/ro to build declarative pipelines instead of manual goroutine/channel wiring, but you know when a simple slice + samber/lo is enough.
**Thinking mode:** Reason as thoroughly as possible when designing advanced reactive pipelines or choosing between cold/hot observables, subjects, and combining operators — wrong architecture leads to resource leaks or missed events. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
# samber/ro — Reactive Streams for Go
Go implementation of [ReactiveX](https://reactivex.io/). Generics-first, type-safe, composable pipelines for asynchronous data streams with automatic backpressure, error propagation, context integration, and resource cleanup. 150+ operators, 5 subject types, 40+ plugins.
**Official Resources:**
- [github.com/samber/ro](https://github.com/samber/ro)
- [ro.samber.dev](https://ro.samber.dev)
- [pkg.go.dev/github.com/samber/ro](https://pkg.go.dev/github.com/samber/ro)
View the complete source on GitHubgolang-samber-slog
When your agent uses it
Structured logging extensions for Golang using samber/slog-**** packages — multi-handler pipelines (slog-multi), log sampling (slog-sampling), attribute formatting (slog-formatter), HTTP middleware (slog-fiber, slog-gin, slog-chi, slog-echo), and backend routing (slog-datadog, slog-sentry, slog-loki, slog-syslog, slog-logstash, slog-graylog...). Apply when using or adopting slog, or when the codebase already imports any github.com/samber/slog-* package.
What it loads into context
Frontmatter
698 tokensAlways available to the agent
SKILL.md
3,122 tokensWhen the skill is activated
Reference documents
7,506 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- The Pipeline Model
- Core Libraries
- slog-multi — Handler Composition
- slog-sampling — Throughput Control
- slog-formatter — Attribute Transformation
- HTTP Middlewares
- Backend Sinks
- Common Mistakes
- Performance Warnings
- Best Practices
- Cross-References
Files
SKILL.mdcore12,310 bytesevals/evals.jsonasset16,040 bytesreferences/backend-handlers.mddoc8,429 bytesreferences/http-middlewares.mddoc5,635 bytesreferences/pipeline-patterns.mddoc8,975 bytesreferences/sampling-strategies.mddoc7,125 bytes
Read SKILL.md
**Persona:** You are a Go logging architect. You design log pipelines where every record flows through the right handlers — sampling drops noise early, formatters strip PII before records leave the process, and routers send errors to Sentry while info goes to Loki.
# samber/slog-\*\*\*\* — Structured Logging Pipeline for Go
20+ composable `slog.Handler` packages for Go 1.21+. Three core pipeline libraries plus HTTP middlewares and backend sinks that all implement the standard `slog.Handler` interface.
**Official resources:**
- [github.com/samber/slog-multi](https://github.com/samber/slog-multi) — handler composition
- [github.com/samber/slog-sampling](https://github.com/samber/slog-sampling) — throughput control
- [github.com/samber/slog-formatter](https://github.com/samber/slog-formatter) — attribute transformation
This skill is not exhaustive — refer to library documentation and code examples for more information:
View the complete source on GitHubgolang-security
When your agent uses it
Security best practices and vulnerability prevention for Golang — injection (SQL, command, XSS), cryptography, path traversal, SSRF and HTTP security headers, cookies, secrets management, memory safety, PII in logs, STRIDE/DREAD threat modeling, plus `gosec` SAST, race detection, and fuzz testing. Apply when writing, reviewing, or auditing Go code for security, or when touching crypto, file or network I/O, secrets, user input, or authentication. Not for non-exploitable defensive bugs such as nil panics or slice aliasing (→ See `samber/cc-skills-golang@golang-safety` skill), dependency vulnerability scanning with govulncheck (→ See `samber/cc-skills-golang@golang-dependency-management` skill), or wiring security scanners into CI pipelines (→ See `samber/cc-skills-golang@golang-continuous-integration` skill).
What it loads into context
Frontmatter
393 tokensAlways available to the agent
SKILL.md
3,299 tokensWhen the skill is activated
Reference documents
20,240 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- Security Thinking Model
- Severity Levels
- Research Before Reporting
- Threat Modeling (STRIDE)
- Quick Reference
- Detailed Categories
- Code Review Checklist
- Tooling & Verification
- Common Mistakes
- Security Anti-Patterns
- Cross-References
- Additional Resources
Files
SKILL.mdcore14,332 bytesSKILL.mdcore14,332 bytesSKILL.mdcore14,332 bytesSKILL.mdcore14,332 bytesevals/evals.jsonasset50,129 bytesreferences/architecture.mddoc10,617 bytesreferences/checklist.mddoc4,105 bytesreferences/cookies.mddoc4,873 bytesreferences/cryptography.mddoc11,231 bytesreferences/filesystem.mddoc6,919 bytesreferences/injection.mddoc7,479 bytesreferences/logging.mddoc4,017 bytesreferences/memory-safety.mddoc5,191 bytesreferences/network.mddoc6,420 bytesreferences/secrets.mddoc4,894 bytesreferences/third-party.mddoc5,057 bytesreferences/threat-modeling.mddoc8,641 bytes
Read SKILL.md
**Persona:** You are a senior Go security engineer. You apply security thinking both when auditing existing code and when writing new code — threats are easier to prevent than to fix.
**Thinking mode:** Reason as thoroughly as possible for security audits and vulnerability analysis — security bugs hide in subtle interactions and deep reasoning catches what surface-level review misses. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Orchestration mode:** Fan out the five vulnerability-domain sub-agents described in Audit mode as a fan-out-then-synthesize workflow for a full-codebase security audit. Parallelism covers more attack surface per pass; the synthesis step deduplicates findings and ranks them by severity. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Review mode** — reviewing a PR for security issues. Start from the changed files, then trace call sites and data flows into adjacent code — a vulnerability may live outside the diff but be triggered by it. Sequential.
- **Audit mode** — full codebase security scan. Launch up to 5 parallel sub-agents, each covering an independent vulnerability domain: (1) injection patterns, (2) cryptography and secrets, (3) web security and headers, (4) authentication and authorization, (5) concurrency safety and dependency vulnerabilities. Aggregate findings, score with DREAD, and report by severity. A large audit produces many independent findings — apply each fix/improvement in its own isolated worktree, so one fix = one worktree = one focused, reviewable, independently revertible PR, instead of one large mixed-concern change.
- **Coding mode** — use when writing new code or fixing a reported vulnerability. Follow the skill's sequential guidance. Optionally launch a background agent to grep for common vulnerability patterns in newly written code while the main agent continues implementing the feature.
**Dependencies:**
View the complete source on GitHubgolang-spf13-cobra
When your agent uses it
Golang CLI command tree library using spf13/cobra — cobra.Command, RunE vs Run, PersistentPreRunE hook chain, Args validators (NoArgs, ExactArgs, MatchAll, custom), persistent vs local flags, command groups, ValidArgsFunction, RegisterFlagCompletionFunc, ShellCompDirective, usage/help template customization, man-page and markdown doc generation, and testing with SetArgs/SetOut/SetErr. Apply when using or adopting spf13/cobra, or when the codebase imports `github.com/spf13/cobra`. For configuration layering alongside cobra, see the `samber/cc-skills-golang@golang-spf13-viper` skill. For general CLI architecture (project layout, exit codes, signal handling, I/O patterns), see `samber/cc-skills-golang@golang-cli`.
What it loads into context
Frontmatter
367 tokensAlways available to the agent
SKILL.md
2,582 tokensWhen the skill is activated
Reference documents
5,401 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Cobra vs. viper
- Command tree
- The Run\* family
- Args validators
- Flags primer
- Completions primer
- Testing commands
- Best Practices
- Common Mistakes
- Further Reading
- Cross-References
Files
SKILL.mdcore10,432 bytesSKILL.mdcore10,432 bytesevals/evals.jsonasset19,592 bytesreferences/commands-and-args.mddoc5,649 bytesreferences/completions.mddoc4,464 bytesreferences/flags.mddoc4,368 bytesreferences/generators.mddoc2,579 bytesreferences/testing.mddoc4,425 bytes
Read SKILL.md
**Persona:** You are a Go CLI engineer building command trees that feel native to the Unix shell. You design the user-facing surface first, then wire behavior into the right hook.
**Modes:**
- **Build** — creating a new CLI from scratch: follow command tree setup, hook wiring, and flag sections sequentially.
- **Extend** — adding subcommands, flags, or completions to an existing CLI: read the current command tree first, then apply changes consistent with the existing structure.
- **Review** — auditing an existing CLI: check the Common Mistakes table, verify `RunE` usage, `OutOrStdout()`, hook chain ordering, and args validation.
# Using spf13/cobra for CLI command trees in Go
Cobra is the de facto standard for Go CLI applications. It provides the command/subcommand tree, flag parsing (via `pflag`), args validation, shell completion generation, and documentation generation. It does **not** handle configuration layering — that's viper's job.
**Official Resources:**
View the complete source on GitHubgolang-spf13-viper
When your agent uses it
Golang configuration library using spf13/viper — layered precedence (flag > env > file > KV > default), BindPFlag/BindPFlags, SetEnvPrefix + SetEnvKeyReplacer + AutomaticEnv, ReadInConfig + ConfigFileNotFoundError, Unmarshal + mapstructure struct tags, Sub for sub-trees, WatchConfig + OnConfigChange for hot reload, viper.New() for test isolation, and remote KV integration. Apply when using or adopting spf13/viper, or when the codebase imports `github.com/spf13/viper`. For CLI command structure alongside viper, see the `samber/cc-skills-golang@golang-spf13-cobra` skill. For general CLI architecture, see `samber/cc-skills-golang@golang-cli`.
What it loads into context
Frontmatter
361 tokensAlways available to the agent
SKILL.md
2,560 tokensWhen the skill is activated
Reference documents
5,091 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Viper vs. cobra
- The precedence pipeline
- Sources and config files
- Env binding and key replacers
- Flag binding (the cobra seam)
- Unmarshaling into structs
- Sub-trees
- Hot reload
- Test isolation
- Best Practices
- Common Mistakes
- Further Reading
- Cross-References
Files
SKILL.mdcore10,271 bytesSKILL.mdcore10,271 bytesSKILL.mdcore10,271 bytesSKILL.mdcore10,271 bytesevals/evals.jsonasset21,477 bytesreferences/binding-and-env.mddoc4,286 bytesreferences/sources-and-formats.mddoc3,794 bytesreferences/testing-and-isolation.mddoc4,148 bytesreferences/unmarshal.mddoc4,457 bytesreferences/watch-and-reload.mddoc3,621 bytes
Read SKILL.md
**Persona:** You are a Go engineer who treats configuration as a layered system. Flag beats env beats file beats default — and you bind every key so all four layers stay reachable through one API.
# Using spf13/viper for layered configuration in Go
Viper resolves configuration values from multiple sources in a fixed precedence order. It has no user-facing surface — it doesn't define commands or flags. Its job is to answer "what is the value of key X right now?" by walking its source layers from highest to lowest priority.
**Official Resources:**
- [pkg.go.dev/github.com/spf13/viper](https://pkg.go.dev/github.com/spf13/viper)
- [github.com/spf13/viper](https://github.com/spf13/viper)
This skill is not exhaustive — refer to library documentation and code examples for more information:
- For Go package docs, symbols, versions, importers, and known vulnerabilities, → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`), preferred over Context7 for Go package facts.View the complete source on GitHubgolang-stay-updated
When your agent uses it
Golang ecosystem watch list — official sources (go.dev/blog, pkg.go.dev, tour.golang.org, golang-nuts), newsletters (Golang Weekly, Awesome Go Newsletter), communities (r/golang, gophers.slack.com, Go Forum, go.dev/wiki), blogs (Dave Cheney, Ardan Labs, Rob Pike), YouTube channels (Gopher Academy, GopherCon EU/UK), conferences, and Go contributors to follow on GitHub, X and Bluesky. Use when seeking Golang learning resources, discovering new libraries or tools, finding community channels or meetups, picking Go people to follow, or keeping up with Go language changes and releases. Not for querying a specific module's versions, docs, or vulnerabilities from the CLI (→ See `samber/cc-skills-golang@golang-pkg-go-dev` skill).
What it loads into context
Frontmatter
310 tokensAlways available to the agent
SKILL.md
1,936 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Official Go Resources
- Newsletters
- Reddit & Communities
- Famous Go Developers
- Must-Follow Blogs
- YouTube Channels
- Quick Tips for Staying Updated
Files
SKILL.mdcore6,971 bytesevals/evals.jsonasset8,365 bytes
Read SKILL.md
<!-- markdownlint-disable table-column-style -->
# Stay Updated with Go
A curated guide to keeping your finger on the pulse of the Go ecosystem.
## Official Go Resources
| Resource | URL |
| ------------------- | -------------------------------------------- |
| **go.dev** | Official Go website with tutorials and tools |
| **pkg.go.dev** | Discover Go packages and documentation |
| **tour.golang.org** | Interactive Go tutorial |
| **play.golang.org** | Go playground for testing code |View the complete source on GitHubgolang-stretchr-testify
When your agent uses it
Comprehensive guide to stretchr/testify for Golang testing. Covers assert, require, mock, and suite packages in depth. Use when writing tests with testify, creating mocks, setting up test suites, or choosing between assert and require. Covers testify assertions, mock expectations, argument matchers, call verification, suite lifecycle, and advanced patterns like Eventually, JSONEq, and custom matchers. Apply when the codebase imports github.com/stretchr/testify.
What it loads into context
Frontmatter
323 tokensAlways available to the agent
SKILL.md
1,860 tokensWhen the skill is activated
Reference documents
819 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- assert vs require
- Core Assertions
- Advanced Assertions
- testify/mock
- testify/suite
- Common Mistakes
- Linters
- Cross-References
Files
SKILL.mdcore7,397 bytesevals/evals.jsonasset12,212 bytesreferences/mock.mddoc3,213 bytes
Read SKILL.md
**Persona:** You are a Go engineer who treats tests as executable specifications. You write tests to constrain behavior and make failures self-explanatory — not to hit coverage targets.
**Modes:**
- **Write mode** — adding new tests or mocks to a codebase.
- **Review mode** — auditing existing test code for testify misuse.
# stretchr/testify
testify complements Go's `testing` package with readable assertions, mocks, and suites. It does not replace `testing` — always use `*testing.T` as the entry point.
This skill is not exhaustive — refer to library documentation and code examples for more information:
- For Go package docs, symbols, versions, importers, and known vulnerabilities, → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`), preferred over Context7 for Go package facts.View the complete source on GitHubgolang-structs-interfaces
When your agent uses it
Golang struct and interface design patterns — composition, embedding, type assertions, type switches, interface segregation, dependency injection via interfaces, struct field tags, and pointer vs value receivers. Use this skill when designing Go types, defining or implementing interfaces, embedding structs or interfaces, writing type assertions or type switches, adding struct field tags for JSON/YAML/DB serialization, or choosing between pointer and value receivers. Also use when the user asks about "accept interfaces, return structs", compile-time interface checks, or composing small interfaces into larger ones.
What it loads into context
Frontmatter
253 tokensAlways available to the agent
SKILL.md
2,735 tokensWhen the skill is activated
Reference documents
1,426 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Interface Design Principles
- Make the Zero Value Useful
- Avoid `any` / `interface{}` When a Specific Type Will Do
- Key Standard Library Interfaces
- Compile-Time Interface Check
- Type Assertions & Type Switches
- Struct & Interface Embedding
- Dependency Injection via Interfaces
- Struct Field Tags
- Pointer vs Value Receivers
- Preventing Struct Copies with `noCopy`
- Cross-References
- Common Mistakes
Files
SKILL.mdcore12,174 bytesevals/evals.jsonasset13,585 bytesreferences/struct-fields.mddoc3,777 bytesreferences/type-assertions.mddoc2,215 bytes
Read SKILL.md
**Persona:** You are a Go type system designer. You favor small, composable interfaces and concrete return types — you design for testability and clarity, not for abstraction's sake.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-structs-interfaces` skill takes precedence.
# Go Structs & Interfaces
## Interface Design Principles
### Keep Interfaces Small
> "The bigger the interface, the weaker the abstraction." — Go Proverbs
Interfaces SHOULD have 1-3 methods. Small interfaces are easier to implement, mock, and compose. If you need a larger contract, compose it from small interfaces:
View the complete source on GitHubgolang-swagger
When your agent uses it
Golang OpenAPI/Swagger documentation with swaggo/swag — annotation comments (@Summary, @Param, @Success, @Router, @Security), swag init code generation, framework integrations (gin, echo, fiber, chi, net/http), security definitions (Bearer/JWT, OAuth2, API key), and struct tags (swaggertype, enums, example, swaggerignore). Apply when adding or maintaining Swagger/OpenAPI docs in a Go project, or when the codebase imports github.com/swaggo/swag, github.com/swaggo/gin-swagger, github.com/swaggo/echo-swagger, github.com/swaggo/http-swagger, or github.com/swaggo/files.
What it loads into context
Frontmatter
375 tokensAlways available to the agent
SKILL.md
2,345 tokensWhen the skill is activated
Reference documents
1,140 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Setup
- General API Info
- Operation Annotations
- Security Definitions
- Struct Tags
- Common Mistakes
- Cross-References
Files
SKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesSKILL.mdcore9,357 bytesevals/evals.jsonasset10,806 bytesreferences/swag-cli.mddoc5,124 bytes
Read SKILL.md
**Persona:** You are a Go API documentation engineer. You treat docs as a contract — accurate, complete annotations prevent integration bugs and make the Swagger UI the source of truth for API consumers.
**Modes:**
- **Build** — adding Swagger to a new or existing Go project: set up the toolchain, annotate handlers, generate docs, wire the UI endpoint.
- **Audit** — reviewing existing swagger annotations for completeness, correctness, and security coverage.
**Dependencies:**
- swag: `go install github.com/swaggo/swag/cmd/swag@latest`
## Setup
Three steps to get Swagger UI running:View the complete source on GitHubgolang-testing
When your agent uses it
Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration tests, idiomatic test naming. Use when writing or reviewing Go tests, choosing a testing approach, setting up Go test CI, or debugging flaky/slow tests. For testify-specific APIs see `samber/cc-skills-golang@golang-stretchr-testify`; for measurement methodology see `samber/cc-skills-golang@golang-benchmark`.
What it loads into context
Frontmatter
293 tokensAlways available to the agent
SKILL.md
4,270 tokensWhen the skill is activated
Reference documents
4,552 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Best Practices Summary
- Test Structure and Organization
- Table-Driven Tests
- Common Pitfall: Assert Scope Leaking into Subtests
- Unit Tests
- Testing HTTP Handlers
- Goroutine Leak Detection with goleak
- testing/synctest for Deterministic Goroutine Testing
- Test Timeouts
- Benchmarks
- Go 1.26+: test artifacts
- Parallel Tests
- Fuzzing
- Examples as Documentation
- Code Coverage
- Integration Tests
- Mocking
- Enforce with Linters
- Cross-References
- Quick Reference
Files
SKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesSKILL.mdcore17,907 bytesevals/evals.jsonasset21,978 bytesreferences/benchmarks.mddoc1,970 bytesreferences/coverage.mddoc1,850 bytesreferences/examples.mddoc1,931 bytesreferences/helpers.mddoc1,054 bytesreferences/http-testing.mddoc2,268 bytesreferences/integration-testing.mddoc4,457 bytesreferences/mocking.mddoc4,757 bytes
Read SKILL.md
**Persona:** You are a Go engineer who treats tests as executable specifications. You write tests to constrain behavior, not to hit coverage targets.
**Thinking mode:** Reason as thoroughly as possible for test strategy design and failure analysis — shallow reasoning misses edge cases and produces brittle tests that pass today but break tomorrow. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Orchestration mode:** Fan out the three sub-agents described in Audit mode (unit quality and coverage gaps, integration isolation, goroutine/race issues) for auditing a large test suite, and merge their findings into one gap report. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Write mode** — generating new tests for existing or new code. Work sequentially through the code under test; use `gotests` to scaffold table-driven tests, then enrich with edge cases and error paths.
- **Review mode** — reviewing a PR's test changes. Focus on the diff: check coverage of new behaviour, assertion quality, table-driven structure, and absence of flakiness patterns. Sequential.
- **Audit mode** — auditing an existing test suite for gaps, flakiness, or bad patterns (order-dependent tests, missing `t.Parallel()`, implementation-detail coupling). Launch up to 3 parallel sub-agents split by concern: (1) unit test quality and coverage gaps, (2) integration test isolation and build tags, (3) goroutine leaks and race conditions.
- **Debug mode** — a test is failing or flaky. Work sequentially: reproduce reliably, isolate the failing assertion, trace the root cause in production code or test setup.
> **Community default.** A company skill that explicitly supersedes `samber/cc-skills-golang@golang-testing` skill takes precedence.View the complete source on GitHubgolang-troubleshooting
When your agent uses it
Troubleshoot Golang programs systematically - find and fix the root cause. Use when encountering bugs, crashes, deadlocks, races, or unexpected behavior in Go code. Covers debugging methodology, common Go pitfalls, test-driven debugging, pprof setup and capture, Delve, race detection, GODEBUG tracing, and production debugging. Start here for any 'something is wrong' situation. Not for interpreting profiles or benchmarking (→ See `samber/cc-skills-golang@golang-benchmark` skill), applying optimization patterns (→ See `samber/cc-skills-golang@golang-performance` skill), or designing new code (→ See `samber/cc-skills-golang@golang-safety` skill for defensive coding, `samber/cc-skills-golang@golang-concurrency` skill for concurrency design).
What it loads into context
Frontmatter
355 tokensAlways available to the agent
SKILL.md
2,993 tokensWhen the skill is activated
Reference documents
15,042 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Decision Tree
- The Golden Rules
- Red Flags: You're Debugging Wrong
- Reference Files
- Cross-References
Files
SKILL.mdcore13,312 bytesevals/evals.jsonasset46,127 bytesreferences/code-review-flags.mddoc1,936 bytesreferences/common-go-bugs.mddoc26,044 bytesreferences/compilation.mddoc647 bytesreferences/concurrency-debug.mddoc3,094 bytesreferences/diagnostic-tools.mddoc3,714 bytesreferences/methodology.mddoc10,261 bytesreferences/performance-debug.mddoc1,514 bytesreferences/pprof.mddoc5,242 bytesreferences/production-debug.mddoc3,805 bytesreferences/testing-debug.mddoc3,229 bytes
Read SKILL.md
**Persona:** You are a Go systems debugger. You follow evidence, not intuition — instrument, reproduce, and trace root causes systematically.
**Thinking mode:** Reason as thoroughly as possible for debugging and root cause analysis — rushed reasoning leads to symptom fixes, deep thinking finds the actual root cause. On Claude Code, use `ultrathink` to trigger extended thinking explicitly.
**Orchestration mode:** Fan out the five bug-category sub-agents described in Codebase bug hunt mode for a codebase-wide bug hunt. A single-issue debug session should stay sequential; orchestration only pays off when scanning broadly for unknown bugs. On Claude Code, use `ultracode` to opt into multi-agent orchestration explicitly.
**Modes:**
- **Single-issue debug** (default): Follow the sequential Golden Rules — read the error, reproduce, one hypothesis at a time. Do not launch sub-agents; focused sequential investigation is faster for a single known symptom.
- **Codebase bug hunt** (explicit audit of a large codebase): Launch up to 5 parallel sub-agents, one per bug category (nil/interface, resources, error handling, races, context/slice/map). Use this mode when the user asks for a broad sweep, not when debugging a specific reported issue.
**Dependencies:**
- dlv: `go install github.com/go-delve/delve/cmd/dlv@latest`View the complete source on GitHubgolang-uber-dig
When your agent uses it
Implements dependency injection in Golang using uber-go/dig — reflection-based container, Provide/Invoke, dig.In/dig.Out parameter and result objects, named values, value groups, optional dependencies, scopes, and Decorate. Apply when using or adopting uber-go/dig, when the codebase imports `go.uber.org/dig`, or when wiring an application graph at startup. For higher-level lifecycle and modules, see `samber/cc-skills-golang@golang-uber-fx` skill.
What it loads into context
Frontmatter
298 tokensAlways available to the agent
SKILL.md
2,588 tokensWhen the skill is activated
Reference documents
4,027 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- dig vs. fx
- Container
- Provide and Invoke
- Parameter Objects with `dig.In`
- Result Objects with `dig.Out`
- Named Values
- Value Groups
- Provide as Interface (`dig.As`)
- Full Application Example
- Best Practices
- Common Mistakes
- Testing
- Further Reading
- Cross-References
Files
SKILL.mdcore10,654 bytesSKILL.mdcore10,654 bytesevals/evals.jsonasset12,359 bytesreferences/advanced.mddoc5,000 bytesreferences/recipes.mddoc7,456 bytesreferences/testing.mddoc4,028 bytes
Read SKILL.md
**Persona:** You are a Go architect wiring an application graph with dig. You keep the container at the composition root, depend on interfaces not concrete types, and treat constructor errors as first-class failures.
# Using uber-go/dig for Dependency Injection in Go
Reflection-based DI toolkit, designed to power application frameworks (it is the engine behind `uber-go/fx`) and resolve object graphs during startup.
**Official Resources:**
- [pkg.go.dev/go.uber.org/dig](https://pkg.go.dev/go.uber.org/dig)
- [github.com/uber-go/dig](https://github.com/uber-go/dig)
This skill is not exhaustive — refer to library documentation and code examples for more information:
- For Go package docs, symbols, versions, importers, and known vulnerabilities, → See `samber/cc-skills-golang@golang-pkg-go-dev` skill (`godig`), preferred over Context7 for Go package facts.View the complete source on GitHubgolang-uber-fx
When your agent uses it
Golang application framework using uber-go/fx — fx.New, fx.Provide, fx.Invoke, fx.Module, fx.Lifecycle hooks, fx.Annotate (name/group/As), fx.Decorate, fx.Supply, fx.Replace, fx.WithLogger, and signal-aware Run(). Apply when using or adopting uber-go/fx, when the codebase imports `go.uber.org/fx`, or when wiring services with fx.New. For raw DI without lifecycle, see `samber/cc-skills-golang@golang-uber-dig` skill.
What it loads into context
Frontmatter
308 tokensAlways available to the agent
SKILL.md
2,827 tokensWhen the skill is activated
Reference documents
4,680 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- fx vs. dig
- The Application
- Provide and Invoke
- Lifecycle Hooks
- Parameter and Result Objects
- fx.Annotate
- Value Groups
- fx.Module
- Best Practices
- Common Mistakes
- Testing
- Further Reading
- Cross-References
Files
SKILL.mdcore11,389 bytesSKILL.mdcore11,389 bytesevals/evals.jsonasset12,825 bytesreferences/advanced.mddoc5,448 bytesreferences/recipes.mddoc8,826 bytesreferences/testing.mddoc4,855 bytes
Read SKILL.md
**Persona:** You are a Go architect building a long-running service with fx. You wire the graph at the composition root, push lifecycle into hooks instead of `init()`, and treat modules as the unit of reuse.
# Using uber-go/fx for Application Wiring in Go
Application framework combining a reflection-based DI container (built on `uber-go/dig`) with a lifecycle, module system, signal-aware run loop, and structured event logging. For long-running services where boot order, graceful shutdown, and modular composition matter.
**Official Resources:**
- [pkg.go.dev/go.uber.org/fx](https://pkg.go.dev/go.uber.org/fx)
- [uber-go.github.io/fx](https://uber-go.github.io/fx/)
- [github.com/uber-go/fx](https://github.com/uber-go/fx)
This skill is not exhaustive — refer to library documentation and code examples for more information:
View the complete source on GitHubSkills included
- golang-benchmark
- golang-cli
- golang-code-style
- golang-concurrency
- golang-context
- golang-continuous-integration
- golang-data-structures
- golang-database
- golang-dependency-injection
- golang-dependency-management
- golang-design-patterns
- golang-documentation
- golang-error-handling
- golang-google-wire
- golang-gopls
- golang-graphql
- golang-grpc
- golang-how-to
- golang-lint
- golang-modernize
- golang-naming
- golang-observability
- golang-performance
- golang-pkg-go-dev
- golang-popular-libraries
- golang-project-layout
- golang-refactoring
- golang-safety
- golang-samber-do
- golang-samber-hot
- golang-samber-lo
- golang-samber-mo
- golang-samber-oops
- golang-samber-ro
- golang-samber-slog
- golang-security
- golang-spf13-cobra
- golang-spf13-viper
- golang-stay-updated
- golang-stretchr-testify
- golang-structs-interfaces
- golang-swagger
- golang-testing
- golang-troubleshooting
- golang-uber-dig
- golang-uber-fx
Repository facts
- License
- MIT
- Created
- Mar 21, 2026
- Last pushed
- Nov 1, 2026
- Forks
- 256
- Open issues
- 4
- Project activity
- Active
Rank over the last 12 weeks
Now #331 · best #284 · down 28 in 30 days
- #331 on Oct 31
- #328 on Nov 1
- #330 on Nov 2
- #331 on Nov 3
- #329 on Nov 4
- #331 since Nov 5
77 earlier periods
- #279 on Aug 2
- #282 on Aug 7
- #285 on Aug 8
- #282 on Aug 9
- #291 on Aug 10
- #285 on Aug 11
- #283 on Aug 12
- #288 on Aug 13
- #285 on Aug 14
- #284 on Aug 15
- #289 on Aug 16
- #287 on Aug 17
- #295 on Aug 18
- #293 on Aug 19
- #291 on Aug 20
- #292 on Aug 21
- #286 on Aug 22
- #292 on Aug 23
- #293 from Aug 24 to Aug 26
- #290 on Aug 27
- #292 on Aug 28
- #291 on Aug 29
- #286 on Aug 30
- #293 on Aug 31
- #295 on Sep 1
- #294 on Sep 2
- #299 on Sep 3
- #290 on Sep 4
- #289 from Sep 5 to Sep 6
- #297 from Sep 7 to Sep 9
- #296 on Sep 10
- #293 on Sep 11
- #300 on Sep 12
- #299 on Sep 13
- #302 from Sep 14 to Sep 15
- #299 on Sep 16
- #296 on Sep 17
- #298 on Sep 18
- #294 on Sep 19
- #301 on Sep 20
- #300 on Sep 21
- #305 on Sep 22
- #304 on Sep 23
- #301 on Sep 24
- #299 on Sep 25
- #296 on Sep 26
- #302 on Sep 27
- #306 on Sep 28
- #304 on Sep 29
- #303 on Sep 30
- #300 on Oct 1
- #304 on Oct 2
- #299 on Oct 3
- #297 on Oct 4
- #305 on Oct 5
- #301 on Oct 6
- #303 on Oct 7
- #305 on Oct 8
- #310 on Oct 9
- #304 on Oct 10
- #306 on Oct 11
- #312 on Oct 12
- #310 on Oct 13
- #312 on Oct 14
- #311 on Oct 15
- #315 on Oct 16
- #314 from Oct 17 to Oct 18
- #316 on Oct 19
- #319 on Oct 20
- #321 on Oct 21
- #320 on Oct 22
- #319 on Oct 23
- #318 on Oct 24
- #325 on Oct 25
- #322 on Oct 28
- #325 on Oct 29
- #330 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 64 notes
skills/golang-benchmark/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-benchmark/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-benchmark/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-concurrency/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-continuous-integration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-data-structures/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-database/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-dependency-management/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-documentation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-documentation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-documentation/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-google-wire/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-google-wire/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/golang-google-wire/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 46 broad permissionsin 46 files: golang-benchmark/SKILL.md:1 golang-cli/SKILL.md:1 golang-code-style/SKILL.md:1 and 43 more
- 11 dangerous shell commandsin 3 files: golang-benchmark/references/ci-regression.md:259 golang-project-layout/assets/Makefile:29 golang-security/references/injection.md:189
- 715 network referencesin 108 files: golang-popular-libraries/references/libraries.md:35 golang-stay-updated/SKILL.md:10 golang-benchmark/references/pprof.md:128 and 105 more
- No hidden or obfuscated text
- No instruction overrides
- 13 executable scriptsin 13 files: golang-cli/assets/examples/args.go:1 golang-cli/assets/examples/cli_test.go:1 golang-cli/assets/examples/completion.go:1 and 10 more
- 27 references to secretsin 15 files: golang-continuous-integration/assets/claude-code-review.yml:52 golang-security/references/cookies.md:61 golang-security/references/secrets.md:58 and 12 more
- No requests to vote in Hot
Show all 812 signals by file
.claude-plugin/plugin.json
- Network accessline 7
"email": "hey@samuel-berthe.fr" }, "homepage": "https://github.com/samber/cc-skills-golang", - Network accessline 8
}, "homepage": "https://github.com/samber/cc-skills-golang", "repository": "https://github.com/samber/cc-skills-golang", - Network accessline 9
"homepage": "https://github.com/samber/cc-skills-golang", - Network accessline 10
"repository": "https://github.com/samber/cc-skills-golang",
skills/golang-benchmark/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch Bash(benchstat:*) Bash(benchdiff:*) Bash(cob:*) Bash(gobenchdata:*) Bash(curl:*) mcp__context7__resolve-library-id mcp__context7__query-docs WebSearch Ask - Network accessline 10
openclaw: emoji: "📊" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📊" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-benchmark/evals/evals.json
- Network accessline 581
"name": "alloc-space-cumulative-trap-for-leak", "description": "Tests that alloc_space is cumulative (includes freed objects) and therefore wrong for leak detection", "prompt": "My Go service's memory keeps growing. I captured a hea - Network accessline 582
"description": "Tests that alloc_space is cumulative (includes freed objects) and therefore wrong for leak detection", "prompt": "My Go service's memory keeps growing. I captured a heap profile with:\n\ngo tool pprof -alloc_space http:/ - Network accessline 583
"prompt": "My Go service's memory keeps growing. I captured a heap profile with:\n\ngo tool pprof -alloc_space http://localhost:6060/debug/pprof/heap\n\nThe top functions show my database layer allocating hundreds of MBs. But when I check t - Network accessline 1795
{ "id": "68.1", "text": "Uses curl with ?debug=1 for human-readable goroutine dump" - Network accessline 1796
"id": "68.1", "text": "Uses curl with ?debug=1 for human-readable goroutine dump" }, - Network accessline 1797
"text": "Uses curl with ?debug=1 for human-readable goroutine dump" - Network accessline 1803
{ "id": "68.3", "text": "Shows the URL: http://localhost:6060/debug/pprof/goroutine?debug=1 or ?debug=2" - Network accessline 1804
"id": "68.3", "text": "Shows the URL: http://localhost:6060/debug/pprof/goroutine?debug=1 or ?debug=2" }, - Network accessline 1805
"text": "Shows the URL: http://localhost:6060/debug/pprof/goroutine?debug=1 or ?debug=2"
skills/golang-benchmark/references/ci-regression.md
- Dangerous shell operationline 259
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor - Dangerous shell operationline 268
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo - Dangerous shell operationline 271
echo 0 | sudo tee /sys/devices/system/cpu/cpufreq/boost - Dangerous shell operationline 289
echo off | sudo tee /sys/devices/system/cpu/smt/control - Dangerous shell operationline 292
echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online # if cpu0 and cpu1 are siblings - Dangerous shell operationline 303
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor - Dangerous shell operationline 304
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo 2>/dev/null || true - Dangerous shell operationline 305
echo off | sudo tee /sys/devices/system/cpu/smt/control 2>/dev/null || true
skills/golang-benchmark/references/pprof.md
- Network accessline 128
# CPU profile — captures 30 seconds of CPU samples go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 129
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 131
# Heap profile — snapshots current heap state go tool pprof -alloc_objects http://localhost:6060/debug/pprof/heap - Network accessline 132
go tool pprof -alloc_objects http://localhost:6060/debug/pprof/heap - Network accessline 134
# Goroutine profile — snapshots all goroutine stacks go tool pprof http://localhost:6060/debug/pprof/goroutine - Network accessline 135
go tool pprof http://localhost:6060/debug/pprof/goroutine - Network accessline 137
# Mutex profile — contention data since last reset go tool pprof http://localhost:6060/debug/pprof/mutex - Network accessline 138
go tool pprof http://localhost:6060/debug/pprof/mutex - Network accessline 140
# Block profile — blocking data since last reset go tool pprof http://localhost:6060/debug/pprof/block - Network accessline 141
go tool pprof http://localhost:6060/debug/pprof/block - Network accessline 168
go tool pprof cpu.prof # or from a URL: go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 170
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 668
# CPU profile — fetch 30 seconds of samples and open interactive mode go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 669
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30 - Network accessline 671
# CPU profile — fetch and immediately generate SVG (no interactive mode) go tool pprof -svg http://localhost:6060/debug/pprof/profile?seconds=10 > cpu.svg - Network accessline 672
go tool pprof -svg http://localhost:6060/debug/pprof/profile?seconds=10 > cpu.svg - Network accessline 674
# CPU profile — fetch with a timeout go tool pprof -timeout=60 "http://localhost:6060/debug/pprof/profile?seconds=30" - Network accessline 675
go tool pprof -timeout=60 "http://localhost:6060/debug/pprof/profile?seconds=30" - Network accessline 677
# Heap profile — fetch and show top allocation sites go tool pprof -top -alloc_objects http://localhost:6060/debug/pprof/heap - Network accessline 678
go tool pprof -top -alloc_objects http://localhost:6060/debug/pprof/heap - Network accessline 680
# Goroutine profile — fetch and show top goroutine stacks go tool pprof -top http://localhost:6060/debug/pprof/goroutine - Network accessline 681
go tool pprof -top http://localhost:6060/debug/pprof/goroutine - Network accessline 683
# Mutex profile — fetch contention data go tool pprof -top http://localhost:6060/debug/pprof/mutex - Network accessline 684
go tool pprof -top http://localhost:6060/debug/pprof/mutex - Network accessline 686
# Block profile — fetch blocking data go tool pprof -top http://localhost:6060/debug/pprof/block - Network accessline 687
go tool pprof -top http://localhost:6060/debug/pprof/block - Network accessline 689
# Fetch and save to a file without analysis (using curl) curl -o heap.prof http://localhost:6060/debug/pprof/heap - Network accessline 690
curl -o heap.prof http://localhost:6060/debug/pprof/heap - Network accessline 692
# Human-readable goroutine dump (no go tool pprof needed) curl http://localhost:6060/debug/pprof/goroutine?debug=1 - Network accessline 693
curl http://localhost:6060/debug/pprof/goroutine?debug=1 - Network accessline 695
# Goroutine dump with full stack traces, creation site, and labels curl http://localhost:6060/debug/pprof/goroutine?debug=2 - Network accessline 696
curl http://localhost:6060/debug/pprof/goroutine?debug=2 - Network accessline 698
# Human-readable heap stats curl http://localhost:6060/debug/pprof/heap?debug=1 - Network accessline 699
curl http://localhost:6060/debug/pprof/heap?debug=1 - Network accessline 701
# Fetch over TLS with client certificate go tool pprof -tls_cert=client.crt -tls_key=client.key -tls_ca=ca.crt https://myservice:6060/debug/pprof/profile?seconds=30 - Network accessline 702
go tool pprof -tls_cert=client.crt -tls_key=client.key -tls_ca=ca.crt https://myservice:6060/debug/pprof/profile?seconds=30 - Network accessline 758
# Contact running service for symbol information go tool pprof -symbolize=remote http://localhost:6060/debug/pprof/profile?seconds=10 - Network accessline 759
go tool pprof -symbolize=remote http://localhost:6060/debug/pprof/profile?seconds=10 - Network accessline 814
# Step 1: take a baseline snapshot curl http://localhost:6060/debug/pprof/heap > heap-baseline.prof - Network accessline 815
curl http://localhost:6060/debug/pprof/heap > heap-baseline.prof - Network accessline 819
# Step 3: take a second snapshot curl http://localhost:6060/debug/pprof/heap > heap-after.prof - Network accessline 820
curl http://localhost:6060/debug/pprof/heap > heap-after.prof
skills/golang-benchmark/references/prometheus-go-metrics.md
skills/golang-benchmark/references/trace.md
- Network accessline 64
# Capture 5 seconds of trace data (adjust duration as needed) curl -o trace.out http://localhost:6060/debug/pprof/trace?seconds=5 - Network accessline 65
curl -o trace.out http://localhost:6060/debug/pprof/trace?seconds=5 - Network accessline 158
# Workflow 2: production trace — capture from running service, analyze scheduling curl -o trace.out http://localhost:6060/debug/pprof/trace?seconds=5 - Network accessline 159
curl -o trace.out http://localhost:6060/debug/pprof/trace?seconds=5
skills/golang-cli/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "💻" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "💻" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-cli/assets/examples/args.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/cli_test.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/completion.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/config.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/exit_codes.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/flags.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/main.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/output.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/root.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/serve.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/signal.go
- Executable scriptline 1
Executable file
skills/golang-cli/assets/examples/version.go
- Executable scriptline 1
Executable file
skills/golang-cli/evals/evals.json
- Access to secretsline 34
[Credential-related source omitted]
skills/golang-code-style/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "🎨" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🎨" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-concurrency/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "⚡" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "⚡" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 140
curl http://localhost:6060/debug/pprof/goroutineleak?debug=2 - Network accessline 141
go tool pprof http://localhost:6060/debug/pprof/goroutineleak - Network accessline 153
- [Go Concurrency Patterns: Pipelines](https://go.dev/blog/pipelines) - Network accessline 154
- [Effective Go: Concurrency](https://go.dev/doc/effective_go#concurrency)
skills/golang-concurrency/evals/evals.json
- Network accessline 59
"name": "waitgroup-add-placement", "description": "wg.Add before go statement; wg.Add(len(urls)) is preferred over per-goroutine Add(1) when count is known", "prompt": "Review this Go code and identify all WaitGroup issues:\n\n```go - Network accessline 60
"description": "wg.Add before go statement; wg.Add(len(urls)) is preferred over per-goroutine Add(1) when count is known", "prompt": "Review this Go code and identify all WaitGroup issues:\n\n```go\nfunc ProcessURLs(urls []string) []Res - Network accessline 61
"prompt": "Review this Go code and identify all WaitGroup issues:\n\n```go\nfunc ProcessURLs(urls []string) []Result {\n var wg sync.WaitGroup\n results := make([]Result, len(urls))\n\n for i, url := range urls {\n go func(i
skills/golang-concurrency/references/sync-primitives.md
skills/golang-context/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "🔗" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔗" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-context/references/cancellation.md
- Network accessline 48
// ✗ Bad — cancel is never called, resources leak func fetch(ctx context.Context) error { - Network accessline 49
func fetch(ctx context.Context) error { - Network accessline 54
// ✓ Good — scoped work, defer cancel immediately func fetch(ctx context.Context) error { - Network accessline 55
func fetch(ctx context.Context) error {
skills/golang-continuous-integration/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch Bash(goreleaser:*) Bash(gh:*) AskUserQuestion - Network accessline 10
openclaw: emoji: "🚀" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🚀" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 160
Install the [Renovate GitHub App](https://github.com/apps/renovate), then create `renovate.json` at the repo root — see [renovate.json](./assets/renovate.json) - Network accessline 258
npx skills add https://github.com/samber/cc-skills-golang --agent github-copilot --skill '*' -y --copy
skills/golang-continuous-integration/assets/claude-code-review.yml
- Network accessline 47
- name: Install Go skills run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Network accessline 48
run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Access to secretsline 52
[Credential-related source omitted] - Network accessline 123
- name: Install Go skills run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Network accessline 124
run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Access to secretsline 128
[Credential-related source omitted] - Network accessline 202
- name: Install Go skills run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Network accessline 203
run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Access to secretsline 207
[Credential-related source omitted] - Network accessline 280
- name: Install Go skills run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Network accessline 281
run: npx skills add https://github.com/samber/cc-skills-golang -a claude-code --skill '*' -y --copy - Access to secretsline 285
[Credential-related source omitted] - Access to secretsline 356
[Credential-related source omitted] - Access to secretsline 397
[Credential-related source omitted]
skills/golang-continuous-integration/assets/copilot-review-instructions.md
- Network accessline 1
<!-- Prerequisites: The skills CLI (listed in the frontmatter install block) can be used to copy skills locally: npx skills add https://github.com/samber/cc-skills-golang --agent github-copilot --skill '*' -y --copy - Network accessline 2
The skills CLI (listed in the frontmatter install block) can be used to copy skills locally: npx skills add https://github.com/samber/cc-skills-golang --agent github-copilot --skill '*' -y --copy ln -s .agents .copilot - Network accessline 3
npx skills add https://github.com/samber/cc-skills-golang --agent github-copilot --skill '*' -y --copy
skills/golang-continuous-integration/assets/renovate.json
skills/golang-continuous-integration/evals/evals.json
- Access to secretsline 248
[Credential-related source omitted]
skills/golang-continuous-integration/references/repo-security.md
- Network accessline 5
The project's GitHub URL can be determined from its git remote (e.g., `git remote -v`). For a project hosted at `https://github.com/{owner}/{repo}`, the relevant settings links are: - Network accessline 7
- Branch protection: `https://github.com/{owner}/{repo}/settings/branches` - Network accessline 8
- Actions permissions: `https://github.com/{owner}/{repo}/settings/actions` - Network accessline 9
- Secrets: `https://github.com/{owner}/{repo}/settings/secrets/actions` - Network accessline 10
- Environments: `https://github.com/{owner}/{repo}/settings/environments`
skills/golang-data-structures/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* mcp__context7__resolve-library-id mcp__context7__query-docs - Network accessline 10
openclaw: emoji: "🗃" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🗃" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 192
- [Go Data Structures (Russ Cox)](https://research.swtch.com/godata) - Network accessline 193
- [The Go Memory Model](https://go.dev/ref/mem) - Network accessline 194
- [Effective Go](https://go.dev/doc/effective_go)
skills/golang-database/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "🗄" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🗄" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 212
- [golang-migrate](https://github.com/golang-migrate/migrate) — CLI + Go library, supports all major databases - Network accessline 213
- [Flyway](https://flywaydb.org/) — JVM-based, widely used in enterprise environments - Network accessline 214
- [Atlas](https://atlasgo.io/) — modern, declarative schema management - Network accessline 242
- [database/sql tutorial](https://go.dev/doc/database/) - Network accessline 243
- [sqlx](https://github.com/jmoiron/sqlx) - Network accessline 244
- [pgx](https://github.com/jackc/pgx) - Network accessline 245
- [golang-migrate](https://github.com/golang-migrate/migrate)
skills/golang-database/references/testing.md
- Network accessline 85
When you need to verify exact SQL without a real database, use [DATA-DOG/go-sqlmock](https://github.com/DATA-DOG/go-sqlmock):
skills/golang-dependency-injection/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion - Network accessline 10
openclaw: emoji: "🔌" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔌" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 261
- [samber/do/v2 documentation](https://do.samber.dev) | [github.com/samber/do/v2](https://github.com/samber/do) - Network accessline 262
- [google/wire user guide](https://github.com/google/wire/blob/main/docs/guide.md) - Network accessline 263
- [uber-go/fx documentation](https://uber-go.github.io/fx/) - Network accessline 264
- [uber-go/dig](https://github.com/uber-go/dig)
skills/golang-dependency-injection/references/google-wire.md
- Network accessline 5
- Docs: [github.com/google/wire](https://github.com/google/wire) | [User Guide](https://github.com/google/wire/blob/main/docs/guide.md)
skills/golang-dependency-injection/references/samber-do.md
- Network accessline 7
- Docs: [do.samber.dev](https://do.samber.dev) | [github.com/samber/do/v2](https://github.com/samber/do)
skills/golang-dependency-injection/references/uber-dig-fx.md
- Network accessline 5
- Docs: [github.com/uber-go/dig](https://github.com/uber-go/dig) | [uber-go.github.io/fx](https://uber-go.github.io/fx/)
skills/golang-dependency-management/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(govulncheck:*) AskUserQuestion - Network accessline 10
openclaw: emoji: "📦" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📦" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-dependency-management/references/auditing.md
- Network accessline 78
**Modern alternative**: [go-size-analyzer](https://github.com/Zxilly/go-size-analyzer) (`gsa`) supports ELF, Mach-O, PE, and WebAssembly formats with interactive HTML/SVG visualization:
skills/golang-design-patterns/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "🏗" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🏗" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-documentation/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch - Network accessline 10
openclaw: emoji: "📝" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📝" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 127
// Returns ErrInvalidQuantity if quantity is zero or negative. // // Play: https://go.dev/play/p/abc123XYZ - Network accessline 128
// // Play: https://go.dev/play/p/abc123XYZ // - Network accessline 129
// Play: https://go.dev/play/p/abc123XYZ - Network accessline 167
[](https://go.dev/) [](./LICENSE) [ format or GitHub Releases, copying the template from [templates/CHANGELOG.md](./assets/templates/CHANGELOG.md). Write each entry to answer _what changed for - Network accessline 182
- **Go Playground demos** — create runnable demos and link them in doc comments with `// Play: https://go.dev/play/p/xxx`. Use a Go Playground integration when one is available to create and share playground URLs. - Network accessline 183
- **Example test functions** — write `func ExampleXxx()` in `_test.go` files. These are executable documentation verified by `go test`. - **Generous code examples** — include multiple examples in doc comments showing common use cases. - **g - Network accessline 184
- **Generous code examples** — include multiple examples in doc comments showing common use cases. - **godoc** — your doc comments render on [pkg.go.dev](https://pkg.go.dev). Use `go doc` locally to preview; to inspect how a published packa - Network accessline 185
- **godoc** — your doc comments render on [pkg.go.dev](https://pkg.go.dev). Use `go doc` locally to preview; to inspect how a published package renders its docs, symbols, and examples, → See `samber/cc-skills-golang@golang-pkg-go-dev` skill - Network accessline 235
# Pre-built binary curl -sSL https://github.com/{owner}/{repo}/releases/latest/download/{repo}-$(uname -s)-$(uname -m) -o /usr/local/bin/{repo} - Network accessline 236
curl -sSL https://github.com/{owner}/{repo}/releases/latest/download/{repo}-$(uname -s)-$(uname -m) -o /usr/local/bin/{repo}
skills/golang-documentation/assets/templates/CHANGELOG.md
- Network accessline 5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Network accessline 35
[Unreleased]: https://github.com/{owner}/{repo}/compare/v1.0.0...HEAD - Network accessline 36
[1.0.0]: https://github.com/{owner}/{repo}/releases/tag/v1.0.0
skills/golang-documentation/assets/templates/CONTRIBUTING.md
- Network accessline 14
# Clone the repository git clone https://github.com/{owner}/{repo}.git - Network accessline 15
git clone https://github.com/{owner}/{repo}.git - Network accessline 43
- Follow [Effective Go](https://go.dev/doc/effective_go) - Network accessline 50
Use [GitHub Issues](https://github.com/{owner}/{repo}/issues). Include:
skills/golang-documentation/assets/templates/README.md
- Network accessline 5
[](https://go.dev/) [](./LICENSE) [: [](https://github.com/{owner}/{repo}/releases) - Network accessline 8
[](https://github.com/{owner}/{repo}/releases) - Network accessline 9
[](https://github.com/{owner}/{repo}/releases) - Network accessline 10
[](https://hub.docker.com/r/{owner}/{repo}) - Network accessline 45
Download from [GitHub Releases](https://github.com/{owner}/{repo}/releases/latest). - Network accessline 47
| Platform | Architecture | Download | | -------- | ------------ | -------------------------------------------------------------------------------------- - Network accessline 48
| -------- | ------------ | ----------------------------------------------------------------------------------------------- | | Linux | amd64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-linux-amd - Network accessline 49
| Linux | amd64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-linux-amd64) | - Network accessline 50
| Linux | arm64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-linux-arm64) | - Network accessline 51
| macOS | amd64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-darwin-amd64) | - Network accessline 52
| macOS | arm64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-darwin-arm64) | - Network accessline 53
| Windows | amd64 | [Download](https://github.com/{owner}/{repo}/releases/latest/download/{repo}-windows-amd64.exe) |
skills/golang-documentation/assets/templates/llms.txt
- Network accessline 64
- Documentation: {URL} - Repository: https://github.com/{owner}/{repo} - Network accessline 65
- Repository: https://github.com/{owner}/{repo} - Network accessline 66
- Go Reference: https://pkg.go.dev/github.com/{owner}/{repo} - Network accessline 67
- Issues: https://github.com/{owner}/{repo}/issues
skills/golang-documentation/evals/evals.json
- Network accessline 33
"id": 2, "name": "scrambled-readme-reorder", "prompt": "I wrote a README for my Go library `github.com/acme/ratelimit` but my team says the sections are in the wrong order. Can you reorganize it following Go open-source best pra - Network accessline 34
"name": "scrambled-readme-reorder", "prompt": "I wrote a README for my Go library `github.com/acme/ratelimit` but my team says the sections are in the wrong order. Can you reorganize it following Go open-source best practices? Keep th - Network accessline 35
"prompt": "I wrote a README for my Go library `github.com/acme/ratelimit` but my team says the sections are in the wrong order. Can you reorganize it following Go open-source best practices? Keep the content, just fix the order:\n\n```markd - Network accessline 422
"id": 16, "name": "existing-contributing-improve", "prompt": "Our Go project requires PostgreSQL and Redis. This is our current CONTRIBUTING.md. Improve it:\n\n```markdown\n# Contributing\n\n## Prerequisites\n- Go 1.22+\n- Postg - Network accessline 423
"name": "existing-contributing-improve", "prompt": "Our Go project requires PostgreSQL and Redis. This is our current CONTRIBUTING.md. Improve it:\n\n```markdown\n# Contributing\n\n## Prerequisites\n- Go 1.22+\n- PostgreSQL 15\n- Redi - Network accessline 424
"prompt": "Our Go project requires PostgreSQL and Redis. This is our current CONTRIBUTING.md. Improve it:\n\n```markdown\n# Contributing\n\n## Prerequisites\n- Go 1.22+\n- PostgreSQL 15\n- Redis 7\n\n## Setup\n1. Install Go from https://go. - Network accessline 451
"name": "play-link-doc-comment", "prompt": "I maintain a public Go library. Write a comprehensive doc comment for this function. I need it to show up well on pkg.go.dev — include everything users need to understand it at a glance:\n\n - Network accessline 452
"prompt": "I maintain a public Go library. Write a comprehensive doc comment for this function. I need it to show up well on pkg.go.dev — include everything users need to understand it at a glance:\n\n```go\npackage sliceutil\n\nfunc Filter - Network accessline 453
"trap": "Model may write a thorough doc comment but omit the Play: line entirely — it's a niche convention the skill specifically teaches. The Play: line with its exact format (// Play: https://...) is a skill-specific pattern not commonly - Network accessline 459
{ "id": "17.2", "text": "The Play: line uses the exact format `// Play: https://go.dev/play/p/...` (not inline, not as a different label)" - Network accessline 460
"id": "17.2", "text": "The Play: line uses the exact format `// Play: https://go.dev/play/p/...` (not inline, not as a different label)" }, - Network accessline 461
"text": "The Play: line uses the exact format `// Play: https://go.dev/play/p/...` (not inline, not as a different label)"
skills/golang-documentation/references/application.md
- Network accessline 127
Use [swaggo/swag](https://github.com/swaggo/swag) to auto-generate OpenAPI docs from Go annotations: - Network accessline 154
For message-based APIs (Kafka, NATS, RabbitMQ), use [AsyncAPI](https://www.asyncapi.com/): - Network accessline 203
Use [buf](https://buf.build/) for linting and breaking change detection: - Network accessline 210
For REST+gRPC, use [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) to serve both from the same protobuf definition.
skills/golang-documentation/references/code-comments.md
- Network accessline 93
// It is safe for concurrent use (or: It is NOT safe for concurrent use). // // Play: https://go.dev/play/p/xxxxx - Network accessline 94
// // Play: https://go.dev/play/p/xxxxx // - Network accessline 95
// Play: https://go.dev/play/p/xxxxx - Network accessline 215
// Map applies a function to each element of a slice. // // Play: https://go.dev/play/p/abc123xyz - Network accessline 216
// // Play: https://go.dev/play/p/abc123xyz // - Network accessline 217
// Play: https://go.dev/play/p/abc123xyz
skills/golang-documentation/references/library.md
- Network accessline 48
// Map applies fn to each element of the slice and returns a new slice. // // Play: https://go.dev/play/p/abc123xyz - Network accessline 49
// // Play: https://go.dev/play/p/abc123xyz // - Network accessline 50
// Play: https://go.dev/play/p/abc123xyz - Network accessline 59
When a Go Playground integration is available, use it to create and share playground URLs. Otherwise, create them manually at <https://go.dev/play/>. - Access to secretsline 136
[Credential-related source omitted] - Network accessline 145
Your doc comments automatically render on [pkg.go.dev](https://pkg.go.dev) when you tag a release and someone imports your package. This is the primary documentation surface for public Go libraries. - Network accessline 167
go get -tool golang.org/x/pkgsite/cmd/pkgsite@latest go tool pkgsite -http=:6060 # Then open http://localhost:6060 - Network accessline 169
# Then open http://localhost:6060 - Network accessline 187
Follow the [Diataxis framework](https://diataxis.fr/) for organizing documentation: - Network accessline 207
- **Context7** — <https://context7.com> — submit your library for inclusion in AI-accessible documentation - Network accessline 208
- **DeepWiki** — <https://deepwiki.com> — auto-generates wiki-style docs from GitHub repos - Network accessline 209
- **OpenDeep** — <https://opendeep.wiki> — open documentation platform for AI consumption - Network accessline 210
- **zRead** — <https://zread.ai> — developer documentation reader
skills/golang-documentation/references/project-docs.md
- Network accessline 61
CHANGELOG MUST be updated for every release, tracking the notable changes it contains. Use [Keep a Changelog](https://keepachangelog.com/) format. Copy the template from [templates/CHANGELOG.md](./templates/CHANGELOG.md). - Network accessline 84
[1.2.0]: https://github.com/{owner}/{repo}/compare/v1.1.0...v1.2.0
skills/golang-error-handling/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "⚠" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "⚠" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 84
- [lmittmann/tint](https://github.com/lmittmann/tint) - Network accessline 85
- [samber/oops](https://github.com/samber/oops) - Network accessline 86
- [samber/slog-multi](https://github.com/samber/slog-multi) - Network accessline 87
- [samber/slog-sampling](https://github.com/samber/slog-sampling) - Network accessline 88
- [samber/slog-formatter](https://github.com/samber/slog-formatter) - Network accessline 89
- [samber/slog-http](https://github.com/samber/slog-http) - Network accessline 90
- [samber/slog-sentry](https://github.com/samber/slog-sentry) - Network accessline 91
- [log/slog package](https://pkg.go.dev/log/slog)
skills/golang-error-handling/references/error-wrapping.md
- Network accessline 35
// Internal layer — wrap to preserve chain func (r *repo) fetch(id string) error { - Network accessline 36
func (r *repo) fetch(id string) error { - Network accessline 40
// Public API boundary — break chain to hide internals func (s *PublicService) GetItem(id string) error { err := s.repo.fetch(id) - Network accessline 41
func (s *PublicService) GetItem(id string) error { err := s.repo.fetch(id) if err != nil { - Network accessline 42
err := s.repo.fetch(id)
skills/golang-google-wire/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(wire:*) Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🪡" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🪡" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 39
**Official Resources:** [pkg.go.dev](https://pkg.go.dev/github.com/google/wire) · [github.com/google/wire](https://github.com/google/wire) · [User Guide](https://github.com/google/wire/blob/main/docs/guide.md) · [Best Practices](https://git - Network accessline 235
If you encounter a bug or unexpected behavior in google/wire, open an issue at <https://github.com/google/wire/issues>.
skills/golang-google-wire/references/advanced.md
- Network accessline 178
When a value is constructed before wire runs (e.g., parsed flags, an `http.Client` from a test), pass it as a parameter to the injector rather than providing it from within the graph:
skills/golang-gopls/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🛰<U+FE0F>" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🛰<U+FE0F>" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-gopls/references/features.md
- Network accessline 3
Source: [tip.golang.org/gopls/features](https://tip.golang.org/gopls/features/). Each entry names the LSP request or `CodeAction` kind so a specific behavior can be looked up in the upstream docs by exact term. - Network accessline 136
Upstream documentation for this feature is a stub as of this writing (tracked as [golang/go#62022](https://github.com/golang/go/issues/62022)) — rely on empirical behavior plus these known settings rather than a documented spec: `usePlaceho
skills/golang-gopls/references/settings.md
- Network accessline 3
Source: [tip.golang.org/gopls/settings](https://tip.golang.org/gopls/settings); full canonical list: `gopls api-json`. Settings are passed via the LSP client's `initializationOptions` (editor-specific config file/UI) — there is no `gopls.js
skills/golang-graphql/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(curl:*) Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🔮" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔮" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 276
- [gqlgen](https://github.com/99designs/gqlgen) - Network accessline 277
- [graph-gophers/graphql-go](https://github.com/graph-gophers/graphql-go) - Network accessline 278
- [Relay cursor connections spec](https://relay.dev/graphql/connections.htm) - Network accessline 280
If you encounter a bug or unexpected behavior in gqlgen, open an issue at <https://github.com/99designs/gqlgen/issues>. - Network accessline 282
If you encounter a bug or unexpected behavior in graph-gophers/graphql-go, open an issue at <https://github.com/graph-gophers/graphql-go/issues>.
skills/golang-graphql/references/gqlgen.md
- Network accessline 202
// Restrict to your own origin in production; true here is dev-only. CheckOrigin: func(r *http.Request) bool { return r.Header.Get("Origin") == "https://app.example.com" - Network accessline 203
CheckOrigin: func(r *http.Request) bool { return r.Header.Get("Origin") == "https://app.example.com" }, - Network accessline 204
return r.Header.Get("Origin") == "https://app.example.com" - Network accessline 255
extend schema @link( url: "https://specs.apollo.dev/federation/v2.3" - Network accessline 256
@link( url: "https://specs.apollo.dev/federation/v2.3" import: ["@key", "@shareable", "@external"] - Network accessline 257
url: "https://specs.apollo.dev/federation/v2.3"
skills/golang-grpc/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(protoc:*) AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🌐" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🌐" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-how-to/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(git:*) Agent AskUserQuestion LSP Bash(gopls:*) mcp__gopls__* - Network accessline 10
openclaw: emoji: "🧭" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🧭" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 160
If you encounter a bug or unexpected behavior in this skill plugin, open an issue at <https://github.com/samber/cc-skills-golang/issues>.
skills/golang-how-to/references/by-category.md
- Access to secretsline 367
[Credential-related source omitted]
skills/golang-lint/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "🧹" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🧹" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-modernize/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch WebSearch AskUserQuestion EnterWorktree ExitWorktree - Network accessline 10
openclaw: emoji: "🔄" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔄" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 75
| Version | Release | Changelog | | ------- | ------------- | --------------------------- | | Go 1.21 | August 2023 | <https://go.dev/doc/go1.21> | - Network accessline 76
| ------- | ------------- | --------------------------- | | Go 1.21 | August 2023 | <https://go.dev/doc/go1.21> | | Go 1.22 | February 2024 | <https://go.dev/doc/go1.22> | - Network accessline 77
| Go 1.21 | August 2023 | <https://go.dev/doc/go1.21> | - Network accessline 78
| Go 1.22 | February 2024 | <https://go.dev/doc/go1.22> | - Network accessline 79
| Go 1.23 | August 2024 | <https://go.dev/doc/go1.23> | - Network accessline 80
| Go 1.24 | February 2025 | <https://go.dev/doc/go1.24> | - Network accessline 81
| Go 1.25 | August 2025 | <https://go.dev/doc/go1.25> | - Network accessline 82
| Go 1.26 | February 2026 | <https://go.dev/doc/go1.26> | - Network accessline 83
| Go 1.27 | August 2026 | <https://go.dev/doc/go1.27> |
skills/golang-modernize/evals/evals.json
- Network accessline 301
"id": 23, "name": "go127-synctest-http", "prompt": "This Go 1.27 HTTP handler test is flaky in CI because of real timeouts. Make it deterministic and fast.\n\n```go\npackage api\n\nimport (\n \"io\"\n \"net/http\"\n \"n - Network accessline 302
"name": "go127-synctest-http", "prompt": "This Go 1.27 HTTP handler test is flaky in CI because of real timeouts. Make it deterministic and fast.\n\n```go\npackage api\n\nimport (\n \"io\"\n \"net/http\"\n \"net/http/httptest - Network accessline 303
"prompt": "This Go 1.27 HTTP handler test is flaky in CI because of real timeouts. Make it deterministic and fast.\n\n```go\npackage api\n\nimport (\n \"io\"\n \"net/http\"\n \"net/http/httptest\"\n \"testing\"\n \"time\"\n)\
skills/golang-modernize/references/tooling.md
skills/golang-modernize/references/versions.md
- Network accessline 82
Changelog: <https://go.dev/doc/go1.21> - Network accessline 186
var ( once sync.Once client *http.Client - Network accessline 187
once sync.Once client *http.Client ) - Network accessline 188
client *http.Client - Network accessline 189
) func getClient() *http.Client { once.Do(func() { client = &http.Client{Timeout: 10 * time.Second} }) - Network accessline 190
func getClient() *http.Client { - Network accessline 191
once.Do(func() { client = &http.Client{Timeout: 10 * time.Second} }) - Network accessline 195
// After (Go 1.21+) var getClient = sync.OnceValue(func() *http.Client { - Network accessline 196
var getClient = sync.OnceValue(func() *http.Client { - Network accessline 197
return &http.Client{Timeout: 10 * time.Second} - Network accessline 214
Changelog: <https://go.dev/doc/go1.22> - Network accessline 325
Changelog: <https://go.dev/doc/go1.23> - Network accessline 406
Changelog: <https://go.dev/doc/go1.24> - Network accessline 566
Changelog: <https://go.dev/doc/go1.25> - Network accessline 666
Changelog: <https://go.dev/doc/go1.26> - Network accessline 772
Changelog: <https://go.dev/doc/go1.27> - Network accessline 776
Go 1.27 lifted a restriction present since generics landed in Go 1.18: a method may now declare its own type parameters ([go.dev/issue/77273](https://go.dev/issue/77273), [spec: Method declarations](https://go.dev/ref/spec#Method_declaratio
skills/golang-naming/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "🏷" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🏷" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 84
// Good — clean at the call site http.Client // not http.HTTPClient - Network accessline 85
http.Client // not http.HTTPClient - Network accessline 135
| `this` or `self` receiver | Go methods are called frequently — use 1-2 letter abbreviation (`s` for `Server`) to reduce visual noise | | `util`, `helper` packages | These names say nothing about content — use specific names that describe - Network accessline 136
| `util`, `helper` packages | These names say nothing about content — use specific names that describe the abstraction | | `http.HTTPClient` stuttering | Package name is always present at call site — `http.Client` avoids reading "HTTP" twic - Network accessline 137
| `http.HTTPClient` stuttering | Package name is always present at call site — `http.Client` avoids reading "HTTP" twice |
skills/golang-naming/evals/evals.json
- Network accessline 4
"name": "new-constructor-naming", "description": "New() constructor for single primary type; error strings with package prefix; bool field is-prefix", "prompt": "Create a Go package called `apiclient` that provides an HTTP client fo - Network accessline 5
"description": "New() constructor for single primary type; error strings with package prefix; bool field is-prefix", "prompt": "Create a Go package called `apiclient` that provides an HTTP client for a REST API. The package exports a si - Network accessline 6
"prompt": "Create a Go package called `apiclient` that provides an HTTP client for a REST API. The package exports a single primary type — the client struct — along with functional options, sentinel errors, and a custom error type. Include: - Network accessline 298
"name": "context-variant-and-in-place-suffixes", "description": "Tests WithContext suffix for context variants and In suffix for in-place mutations", "prompt": "I have a Go data processing library. I need to add variants to existing - Network accessline 299
"description": "Tests WithContext suffix for context variants and In suffix for in-place mutations", "prompt": "I have a Go data processing library. I need to add variants to existing functions:\n\n1. `Fetch(key string) ([]byte, error)` - Network accessline 300
"prompt": "I have a Go data processing library. I need to add variants to existing functions:\n\n1. `Fetch(key string) ([]byte, error)` needs a variant that accepts a context.Context\n2. `Sort(items []Item) []Item` (returns a new sorted sli
skills/golang-observability/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch WebSearch AskUserQuestion - Network accessline 10
openclaw: emoji: "📡" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📡" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 52
11. **Correlate signals** — inject trace_id into logs, use exemplars to link metrics to traces 12. **A feature is not done until it is observable** — declare metrics, add proper logging, create spans 13. **[awesome-prometheus-alerts](https: - Network accessline 54
13. **[awesome-prometheus-alerts](https://samber.github.io/awesome-prometheus-alerts/) provides ~500 ready-to-use alerting rules** organized by technology for infrastructure and dependency monitoring - Network accessline 101
- **[Alerting](references/alerting.md)** — Proactive problem detection. Covers the four golden signals (latency, traffic, errors, saturation), [awesome-prometheus-alerts](https://samber.github.io/awesome-prometheus-alerts/) provides ~500 re - Network accessline 142
1. Add `slog` as the new logger with `slog.SetDefault()` 2. Bridge handlers during migration route slog output through the existing logger: [samber/slog-zap](https://github.com/samber/slog-zap), [samber/slog-logrus](https://github.com/sambe - Network accessline 143
2. Bridge handlers during migration route slog output through the existing logger: [samber/slog-zap](https://github.com/samber/slog-zap), [samber/slog-logrus](https://github.com/samber/slog-logrus), [samber/slog-zerolog](https://github.com/ - Network accessline 152
- [ ] **Logging is proper** — structured key-value pairs with `slog`, context variants used (`slog.InfoContext`), no PII in logs, errors MUST be either logged OR returned (NEVER both). - [ ] **Spans created** — every service method, DB quer - Network accessline 153
- [ ] **Spans created** — every service method, DB query, and external API call has a span with relevant attributes, errors recorded with `span.RecordError()`. - [ ] **Dashboards and alerts exist** — the PromQL from your metric comments is - Network accessline 154
- [ ] **Dashboards and alerts exist** — the PromQL from your metric comments is wired into Grafana dashboards and Prometheus alerting rules. Ready-to-use alert rules for common infrastructure dependencies are available at [awesome-prometheu
skills/golang-observability/references/alerting.md
- Network accessline 30
[awesome-prometheus-alerts](https://samber.github.io/awesome-prometheus-alerts/) is a curated collection of ~500 ready-to-use Prometheus alerting rules. This collection serves as a starting point for infrastructure and dependency alerting. - Network accessline 90
1. [awesome-prometheus-alerts](https://samber.github.io/awesome-prometheus-alerts/) has alert rules organized by technology
skills/golang-observability/references/dashboards.md
- Network accessline 7
| Dashboard | ID | What it shows | | --- | --: | --- | | [Go Host & Runtime Metrics](https://grafana.com/grafana/dashboards/21221-go-host-runtime-metrics-dashboard/) | 21221 | Host metrics + Go runtime (goroutines, heap, GC, threads) in one - Network accessline 8
| --- | --: | --- | | [Go Host & Runtime Metrics](https://grafana.com/grafana/dashboards/21221-go-host-runtime-metrics-dashboard/) | 21221 | Host metrics + Go runtime (goroutines, heap, GC, threads) in one view | | [Go Processes](https://gr - Network accessline 9
| [Go Host & Runtime Metrics](https://grafana.com/grafana/dashboards/21221-go-host-runtime-metrics-dashboard/) | 21221 | Host metrics + Go runtime (goroutines, heap, GC, threads) in one view | - Network accessline 10
| [Go Processes](https://grafana.com/grafana/dashboards/6671-go-processes/) | 6671 | Multi-process comparison — CPU, memory, goroutines, GC across all Go services | - Network accessline 11
| [Go Metrics](https://grafana.com/grafana/dashboards/10826-go-metrics/) | 10826 | Focused Go runtime view — memory breakdown, GC pauses, allocations, goroutines |
skills/golang-observability/references/logging.md
- Network accessline 65
- **Info level** is the typical production default — it provides enough visibility without excessive volume - Debug level SHOULD be disabled in production — use `slog.LevelInfo` in production and `slog.LevelDebug` only in development or whe - Network accessline 67
- For high-throughput services, consider [samber/slog-sampling](https://github.com/samber/slog-sampling) to sample verbose logs (e.g., emit 1 in 100 Debug logs) rather than dropping them entirely - Network accessline 111
- [samber/slog-multi](https://github.com/samber/slog-multi) — fan-out to multiple handlers, routing, failover - Network accessline 112
- [samber/slog-sampling](https://github.com/samber/slog-sampling) — sample high-volume logs to reduce cost - Network accessline 113
- [samber/slog-formatter](https://github.com/samber/slog-formatter) — format/transform log attributes - Network accessline 117
- [samber/slog-http](https://github.com/samber/slog-http) — HTTP server middleware (net/http, chi, fiber, echo, gin) - Network accessline 118
- [samber/slog-gin](https://github.com/samber/slog-gin) — Gin framework middleware - Network accessline 119
- [samber/slog-echo](https://github.com/samber/slog-echo) — Echo framework middleware - Network accessline 120
- [samber/slog-fiber](https://github.com/samber/slog-fiber) — Fiber framework middleware - Network accessline 121
- [samber/slog-chi](https://github.com/samber/slog-chi) — Chi router middleware - Network accessline 123
**Third-party log sinks** (see [go.dev/wiki/Resources-for-slog](https://go.dev/wiki/Resources-for-slog)): - Network accessline 125
- [lmittmann/tint](https://github.com/lmittmann/tint) — colorized terminal output - Network accessline 126
- [samber/slog-datadog](https://github.com/samber/slog-datadog) — send logs to Datadog - Network accessline 127
- [samber/slog-sentry](https://github.com/samber/slog-sentry) — send errors to Sentry - Network accessline 128
- [samber/slog-loki](https://github.com/samber/slog-loki) — send logs to Grafana Loki - Network accessline 129
- [samber/slog-nats](https://github.com/samber/slog-nats) — send logs to NATS - Network accessline 130
- [samber/slog-syslog](https://github.com/samber/slog-syslog) — send logs to syslog - Network accessline 131
- [samber/slog-fluentd](https://github.com/samber/slog-fluentd) — send logs to Fluentd - Network accessline 132
- [samber/slog-logrus](https://github.com/samber/slog-logrus) — bridge to Logrus - Network accessline 133
- [samber/slog-zap](https://github.com/samber/slog-zap) — bridge to Zap - Network accessline 134
- [samber/slog-zerolog](https://github.com/samber/slog-zerolog) — bridge to Zerolog - Network accessline 135
- [samber/slog-slack](https://github.com/samber/slog-slack) — send critical logs to Slack - Network accessline 153
Available bridges: [samber/slog-zap](https://github.com/samber/slog-zap), [samber/slog-logrus](https://github.com/samber/slog-logrus), [samber/slog-zerolog](https://github.com/samber/slog-zerolog)
skills/golang-observability/references/metrics.md
- Network accessline 97
Metric names MUST follow the [Prometheus naming best practices](https://prometheus.io/docs/practices/naming/). The pattern is: `<namespace>_<subsystem>_<name>_<unit>` - Network accessline 186
For infrastructure and dependency alerting (databases, caches, message brokers, reverse proxies, Kubernetes), [awesome-prometheus-alerts](https://samber.github.io/awesome-prometheus-alerts/) provides a curated collection of ~500 ready-to-us
skills/golang-observability/references/profiling.md
- Network accessline 29
_, err := pyroscope.Start(pyroscope.Config{ ApplicationName: "my-service", ServerAddress: os.Getenv("PYROSCOPE_URL"), // e.g., http://user:pass@pyroscope:4040 - Network accessline 30
ApplicationName: "my-service", ServerAddress: os.Getenv("PYROSCOPE_URL"), // e.g., http://user:pass@pyroscope:4040 ProfileTypes: []pyroscope.ProfileType{ - Network accessline 31
ServerAddress: os.Getenv("PYROSCOPE_URL"), // e.g., http://user:pass@pyroscope:4040
skills/golang-observability/references/rum.md
skills/golang-observability/references/tracing.md
- Network accessline 125
// Outgoing requests — HTTP clients MUST use otelhttp for automatic span propagation client := &http.Client{ - Network accessline 126
client := &http.Client{ - Network accessline 152
[`samber/oops`](https://github.com/samber/oops) is a drop-in error library that fills these gaps. Every `oops` error carries a stack trace, structured attributes, and integrates naturally with both OpenTelemetry spans and `slog`:
skills/golang-performance/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch Bash(benchstat:*) Bash(fieldalignment:*) Bash(staticcheck:*) Bash(curl:*) Bash(fgprof:*) Bash(perf:*) WebSearch AskUserQuestion EnterWorktree ExitWorktree - Network accessline 10
openclaw: emoji: "🏎" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🏎" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 91
| --- | --- | | Optimizing without profiling | Profile with pprof first — intuition is wrong ~80% of the time | | Default `http.Client` without Transport | `MaxIdleConnsPerHost` defaults to 2; set to match your concurrency level | - Network accessline 92
| Optimizing without profiling | Profile with pprof first — intuition is wrong ~80% of the time | | Default `http.Client` without Transport | `MaxIdleConnsPerHost` defaults to 2; set to match your concurrency level | | Logging in hot loops - Network accessline 93
| Default `http.Client` without Transport | `MaxIdleConnsPerHost` defaults to 2; set to match your concurrency level |
skills/golang-performance/evals/evals.json
- Network accessline 346
"id": 27, "name": "http-transport-maxidleconnsperhost", "description": "Tests knowledge that default http.Client MaxIdleConnsPerHost is only 2", - Network accessline 347
"name": "http-transport-maxidleconnsperhost", "description": "Tests knowledge that default http.Client MaxIdleConnsPerHost is only 2", "prompt": "Our Go microservice calls an upstream API with high concurrency (200 goroutines making - Network accessline 348
"description": "Tests knowledge that default http.Client MaxIdleConnsPerHost is only 2", "prompt": "Our Go microservice calls an upstream API with high concurrency (200 goroutines making requests simultaneously). Under load, we see many - Network accessline 349
"prompt": "Our Go microservice calls an upstream API with high concurrency (200 goroutines making requests simultaneously). Under load, we see many TCP connections being created and destroyed. Why doesn't connection pooling work?\n\n```go\n - Network accessline 361
"name": "response-body-drain", "description": "Tests whether the model drains the response body when writing a new HTTP health-check function", "prompt": "Write a Go function that polls a list of service endpoints and returns which - Network accessline 362
"description": "Tests whether the model drains the response body when writing a new HTTP health-check function", "prompt": "Write a Go function that polls a list of service endpoints and returns which ones are healthy (HTTP 200). It wil - Network accessline 363
"prompt": "Write a Go function that polls a list of service endpoints and returns which ones are healthy (HTTP 200). It will run every 5 seconds against ~50 endpoints with a shared http.Client.\n\n```go\nfunc CheckHealthy(client *http.Clien - Network accessline 568
"name": "http-keepalive-crawler", "description": "Tests knowledge of disabling keep-alive for crawlers hitting many hosts", "prompt": "Our Go web crawler scrapes 100,000 different domains. After running for a while, it runs out of f - Network accessline 569
"description": "Tests knowledge of disabling keep-alive for crawlers hitting many hosts", "prompt": "Our Go web crawler scrapes 100,000 different domains. After running for a while, it runs out of file descriptors. The crawler uses an h - Network accessline 570
"prompt": "Our Go web crawler scrapes 100,000 different domains. After running for a while, it runs out of file descriptors. The crawler uses an http.Client with tuned Transport:\n\n```go\nvar crawlerClient = &http.Client{\n Timeout: 10
skills/golang-performance/references/io-networking.md
- Network accessline 34
// Bad — default transport, only 2 idle connections per host client := &http.Client{} - Network accessline 35
client := &http.Client{} - Network accessline 37
// Good — tuned for high-concurrency service-to-service calls var apiClient = &http.Client{ - Network accessline 38
var apiClient = &http.Client{ - Network accessline 54
crawlerClient := &http.Client{ - Network accessline 61
The zero-value `http.Client` and `http.Server` have NO timeouts. A slow or malicious peer holds connections open indefinitely, exhausting file descriptors and memory:
skills/golang-performance/references/observability.md
- Network accessline 87
pyroscope.Start(pyroscope.Config{ ApplicationName: "myapp", ServerAddress: "http://pyroscope:4040", - Network accessline 88
ApplicationName: "myapp", ServerAddress: "http://pyroscope:4040", ProfileTypes: []pyroscope.ProfileType{ - Network accessline 89
ServerAddress: "http://pyroscope:4040",
skills/golang-performance/references/runtime.md
- Network accessline 179
curl http://localhost:6060/debug/pprof/profile?seconds=60 > cpu.pprof
skills/golang-pkg-go-dev/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Bash(godig:*) Agent - Network accessline 10
openclaw: emoji: "🔎" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔎" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 29
`godig` queries the [pkg.go.dev](https://pkg.go.dev) API. Use it to answer questions about Go packages and modules: docs, symbols, versions, importers and vulnerabilities. It works as a CLI and as an MCP server, and all operations are **rea - Network accessline 66
godig mcp --transport http --addr :8080 claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp - Network accessline 67
claude mcp add --transport http pkg-go-dev http://localhost:8080/mcp - Network accessline 70
Hosted instance (no install needed) — a public server runs at `https://godig.samber.dev/mcp`: - Network accessline 73
claude mcp add --transport http pkg-go-dev https://godig.samber.dev/mcp - Network accessline 199
This skill is not exhaustive. `godig --help` and each sub-command's `--help` list current flags and output formats; the data mirrors what [pkg.go.dev](https://pkg.go.dev) exposes. - Network accessline 201
If you encounter a bug or unexpected behavior in `godig`, open an issue at <https://github.com/samber/godig/issues>.
skills/golang-pkg-go-dev/references/sample-output.md
- Network accessline 33
| path | github.com/samber/ro | | recentVersions | ["v0.3.0","v0.2.0","v0.1.0"] | | repoUrl | <https://github.com/samber/ro> | - Network accessline 35
| repoUrl | <https://github.com/samber/ro> | - Network accessline 138
| isStandardLibrary | false | | path | github.com/samber/ro | | repoUrl | <https://github.com/samber/ro> | - Network accessline 139
| path | github.com/samber/ro | | repoUrl | <https://github.com/samber/ro> | | size | 137530 | - Network accessline 140
| repoUrl | <https://github.com/samber/ro> |
skills/golang-popular-libraries/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch WebSearch AskUserQuestion mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "📚" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📚" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 39
Find more libraries here: <https://github.com/avelino/awesome-go>
skills/golang-popular-libraries/references/libraries.md
- Network accessline 35
**Gin** (<https://github.com/gin-gonic/gin>) High-performance HTTP web framework with minimalist API. Up to 40x faster than some alternatives. Great for building REST APIs and microservices. - Network accessline 37
**Echo** (<https://github.com/labstack/echo>) Minimalist, extensible web framework. Clean middleware system, excellent performance. Good for both REST APIs and traditional web apps. - Network accessline 39
**Fiber** (<https://github.com/gofiber/fiber>) Express.js-inspired web framework built on Fasthttp. Very fast, easy for Node.js developers transitioning to Go. - Network accessline 41
**Chi** (<https://github.com/go-chi/chi>) Lightweight, idiomatic router that composes well with net/http. Minimal dependencies, great for smaller projects. - Network accessline 45
**Resty** (<https://github.com/go-resty/resty>) Simple HTTP and REST client for Go. Inspired by Ruby's rest-client. Great for API consumption with retry support. - Network accessline 47
**Req** (<https://github.com/imroc/req>) Simple Go HTTP client with "black magic" - less code, more efficiency. Clean API for common operations. - Network accessline 51
**GORM** (<https://github.com/go-gorm/gorm>) Feature-complete ORM library. Developer-friendly, supports associations, hooks, auto-migrations. The most popular Go ORM. - Network accessline 53
**SQLx** (<https://github.com/jmoiron/sqlx>) Extensions for database/sql that provide convenience while maintaining power. Type-safe, performant query helpers. - Network accessline 55
**Ent** (<https://github.com/ent/ent>) Entity framework for Go. Code-generated, type-safe ORM with excellent support for complex queries and graph traversals. - Network accessline 57
**Sqlc** (<https://github.com/sqlc-dev/sqlc>) Generate type-safe Go code from SQL. No runtime reflection, compiler-checked queries. - Network accessline 61
**go-sql-driver/mysql** (<https://github.com/go-sql-driver/mysql>) MySQL driver for Go's database/sql package. Maintained by the Go team, reliable and performant. - Network accessline 63
**lib/pq** (<https://github.com/lib/pq>) Pure Go PostgreSQL driver. The gold standard for PostgreSQL in Go. - Network accessline 65
**pgx** (<https://github.com/jackc/pgx>) PostgreSQL driver with advanced features. Faster than lib/pq, supports all PostgreSQL types. - Network accessline 67
**redis-go** (<https://github.com/redis/go-redis>) Redis client for Go. Cluster support, modern Redis features, well-maintained. - Network accessline 69
**mongo-go-driver** (<https://github.com/mongodb/mongo-go-driver>) Official MongoDB driver for Go. Supports async operations, transactions (in newer versions). - Network accessline 73
**Testify** (<https://github.com/stretchr/testify>) Sacred extension to the testing package. Assertions, mocking, suite testing. Essential for Go testing. - Network accessline 75
**gomock** (<https://github.com/uber-go/mock>) Mocking framework for Go interfaces. Widely used, integrates well with testing package. - Network accessline 77
**go-sqlmock** (<https://github.com/DATA-DOG/go-sqlmock>) SQL mock driver for testing database operations. Test database code without a real database. - Network accessline 79
**testcontainers-go** (<https://golang.testcontainers.org>) Integration testing with real dependencies in Docker containers. Spin up databases, message queues, etc. - Network accessline 85
**Cobra** (<https://github.com/spf13/cobra>) Commander for modern Go CLI applications. Powerful subcommand system, flags, auto-generated docs. Industry standard for CLIs. - Network accessline 87
**Viper** (<https://github.com/spf13/viper>) Go configuration with fangs. Works with Cobra, supports multiple formats (JSON, YAML, TOML, env). - Network accessline 89
**urfave/cli** (<https://github.com/urfave/cli>) Simple, fast, fun package for building command line apps. Alternative to Cobra. - Network accessline 91
**Koanf** (<https://github.com/knadh/koanf>) Lightweight, extensible library for reading config. Support for JSON, YAML, TOML, env, command line. - Network accessline 93
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Network accessline 97
**Zap** (<https://github.com/uber-go/zap>) Fast, structured, leveled logging. Uber's production logger, zero-allocation in hot paths. - Network accessline 99
**Zerolog** (<https://github.com/rs/zerolog>) Zero-allocation JSON logging. Very fast, simple API, leveled logging. - Network accessline 101
**Logrus** (<https://github.com/sirupsen/logrus>) Structured logger for Go. Mature, widely-used, plugin architecture. Note: deprecated in favor of structured logging. - Network accessline 105
**validator** (<https://github.com/go-playground/validator>) Go struct validation. Tags-based, extensive validators, cross-field validation. - Network accessline 107
**ozzo-validation** (<https://github.com/go-ozzo/ozzo-validation>) Fast validation library. Modern alternative for struct validation. - Network accessline 111
**jsoniter** (<https://github.com/json-iterator/go>) High-performance 100% compatible drop-in replacement for encoding/json. Faster JSON parsing. - Network accessline 115
**Casbin** (<https://github.com/casbin/casbin>) Authorization library supporting ACL, RBAC, ABAC. Policy-based access control. - Network accessline 117
**JWT** (<https://github.com/golang-jwt/jwt>) JSON Web Token implementation for Go. Full-featured, widely-used. - Network accessline 121
**hot** (<https://github.com/samber/hot>) In-memory caching library for Go with 9 eviction algorithms (LRU, LFU, TinyLFU, W-TinyLFU, S3FIFO, ARC, TwoQueue, SIEVE, FIFO), TTL, loaders with singleflight deduplication, sharding, and stale-whil - Network accessline 123
**Ristretto** (<https://github.com/dgraph-io/ristretto>) High-performance memory-bound Go cache. - Network accessline 125
**BigCache** (<https://github.com/allegro/bigcache>) Efficient key/value cache for gigabytes of data. Sharded, optimized for high throughput. - Network accessline 127
**go-cache** (<https://github.com/patrickmn/go-cache>) In-memory key-value store with expiration. Thread-safe, simple API. - Network accessline 131
**Tollbooth** (<https://github.com/ulule/limiter>) Rate limiting HTTP middleware. Simple, volume-based limiting, easy to use. - Network accessline 133
**golang.org/x/time/rate** (<https://golang.org/x/time/rate>) Standard library rate limiter. Token bucket algorithm, well-maintained. - Network accessline 137
**Watermill** (<https://github.com/ThreeDotsLabs/watermill>) Event-driven framework for Go. Message streams, event sourcing, CQRS patterns. - Network accessline 139
**ro** (<https://github.com/samber/ro>) Reactive programming for Go. Event-driven streams with operators for data flow transformation. - Network accessline 143
**franz-go** (<https://github.com/twmb/franz-go>) Kafka client for Go. Modern, high-performance, feature-complete client with excellent documentation and community support. - Network accessline 145
**amqp091-go** (<https://github.com/rabbitmq/amqp091-go>) Official RabbitMQ client for Go. Maintained by RabbitMQ team, supports AMQP 0.9.1 protocol. - Network accessline 147
**NATS.go** (<https://github.com/nats-io/nats.go>) Client for NATS messaging system. Simple, secure, performant communications. - Network accessline 149
**Temporal Go SDK** (<https://github.com/temporalio/sdk-go>) Durable execution framework for building reliable async applications. Workflows, activities, and long-running processes. - Network accessline 151
**DBOS** (<https://github.com/dbos-inc/dbos-transact-golang>) Backend framework for Go applications with durable execution, built on PostgreSQL. - Network accessline 155
**gods** (<https://github.com/emirpasic/gods>) Go Data Structures - Sets, Lists, Stacks, Maps, Trees, Queues, and much more - Network accessline 157
**bloom** (<https://github.com/bits-and-blooms/bloom>) Bloom filter implementation. Memory-efficient set membership testing. - Network accessline 159
**hyperloglog** (<https://github.com/clarkduvall/hyperloglog>) HyperLogLog implementation for Go. Memory-efficient cardinality estimation for large datasets. - Network accessline 161
**Carbon** (<https://github.com/uniplaces/carbon>) Simple, semantic time library for Go. Time parsing, formatting, manipulation. - Network accessline 163
**google/uuid** (<https://github.com/google/uuid>) Generate and parse UUIDs. Official Google library, RFC 4122 compliant. For new Go 1.27+ code, check the standard library `uuid` package first — this library still has broader RFC-variant co - Network accessline 167
**golang-migrate** (<https://github.com/golang-migrate/migrate>) Database migration tool. Supports multiple databases, version control for schemas. - Network accessline 169
**goose** (<https://github.com/pressly/goose>) Database migration tool. SQL or Go migrations, supports multiple databases. - Network accessline 173
**gorilla/websocket** (<https://github.com/gorilla/websocket>) WebSocket package for Go. Mature, widely-used, part of Gorilla toolkit. - Network accessline 177
**grpc-go** (<https://github.com/grpc/grpc-go>) The Go language implementation of gRPC. HTTP/2 based RPC framework by Google. - Network accessline 181
**gqlgen** (<https://github.com/99designs/gqlgen>) Go generate based graphql server library. Type-safe, schema-first, code generation. - Network accessline 183
**graphql-go** (<https://github.com/graphql-go/graphql>) Implementation of GraphQL for Go. Query execution, schema parsing. - Network accessline 187
**fsnotify** (<https://github.com/fsnotify/fsnotify>) Cross-platform file system watcher for Go. Watch for file changes efficiently. - Network accessline 191
**avast/retry-go** (<https://github.com/avast/retry-go>) Retry mechanism for Go with exponential backoff. Simple, configurable. - Network accessline 195
**pkg/errors** (<https://github.com/pkg/errors>) Legacy projects only. Prefer stdlib `errors`, `fmt.Errorf("%w")`, and `errors.Join` for new code; use a structured error library only when you need stack traces or rich context. - Network accessline 197
**oops** (<https://github.com/samber/oops>) Error handling library with stack traces, hints, and context. Rich error wrapping with type-safe error chains. - Network accessline 201
**prometheus/client_golang** (<https://github.com/prometheus/client_golang>) Prometheus instrumentation library for Go. Metrics, histograms, counters, gauges. - Network accessline 203
**opentelemetry-go** (<https://github.com/open-telemetry/opentelemetry-go>) OpenTelemetry Go API and SDK. Distributed tracing, metrics, logs. - Network accessline 207
**swag** (<https://github.com/swaggo/swag>) Auto-generate OpenAPI/Swagger specs from Go code annotations, parsing comment-based annotations (`@Summary`, `@Param`, `@Success`, `@Router`, etc.) on handler functions to produce `swagger.json`/` - Network accessline 211
**do** (<https://github.com/samber/do>) Dependency injection library for Go. Simple, runtime DI with service locator pattern and health checks. - Network accessline 213
**Wire** (<https://github.com/google/wire>) Code-generated dependency injection for Go. Compile-time dependency injection without reflection. - Network accessline 215
**Dig** (<https://github.com/uber-go/dig>) Dependency injection container for Go. Runtime DI with lifecycle management. - Network accessline 217
**Fx** (<https://github.com/uber-go/fx>) Application framework for Go. Built on Dig, provides lifecycle management, dependency injection, and observability. - Network accessline 221
**lo** (<https://github.com/samber/lo>) A generics-based helper library for Go. Slice, map, and tuple operations with functional programming style. - Network accessline 223
**mo** (<https://github.com/samber/mo>) Monads and functional programming helpers for Go. Option, Either, Try, and other functional patterns. - Network accessline 227
**Excelize** (<https://github.com/qax-os/excelize>) Go library for reading and writing Excel files (XLSX). Supports formatting, charts, and complex spreadsheet operations.
skills/golang-popular-libraries/references/tools.md
- Network accessline 5
**Delve** (<https://github.com/go-delve/delve>) Debugger for the Go programming language. Source-level debugger for Go programs. - Network accessline 9
**golangci-lint** (<https://github.com/golangci/golangci-lint>) Fast Go linters runner. Runs multiple linters in parallel, highly configurable, the industry standard for Go code quality. - Network accessline 19
**goleak** (<https://github.com/uber-go/goleak>) Goroutine leak detector for Go tests. Verifies that tests do not leak goroutines between runs. - Network accessline 23
**go-mod-outdated** (<https://github.com/psampaz/go-mod-outdated>) Find outdated dependencies in your go.mod. Helps keep dependencies up to date securely. - Network accessline 25
**goweight** (<https://github.com/jondot/goweight>) Analyze package dependencies and calculate weight. Helps identify heavy dependencies and transitive bloat.
skills/golang-project-layout/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "📁" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📁" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 38
For applications (services, APIs, workers), follow [12-Factor App](https://12factor.net/) conventions: config via environment variables, logs to stdout, stateless processes, graceful shutdown, backing services as attached resources, and adm
skills/golang-project-layout/assets/.gitignore
- Access to secretsline 33
[Credential-related source omitted]
skills/golang-project-layout/assets/Makefile
skills/golang-refactoring/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Bash(gh:*) Bash(gopls:*) Bash(benchstat:*) LSP mcp__gopls__* Agent AskUserQuestion EnterWorktree ExitWorktree WebFetch WebSearch - Network accessline 10
openclaw: emoji: "♻<U+FE0F>" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "♻<U+FE0F>" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 159
If you encounter a bug or unexpected behavior in `gopls`, open an issue at <https://github.com/golang/go/issues>.
skills/golang-safety/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent - Network accessline 10
openclaw: emoji: "🛡" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🛡" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-safety/evals/evals.json
- Network accessline 533
"name": "nil-check-all-func-fields", "description": "Both OnRequest and OnResponse checked for nil before calling", "prompt": "In package `http`, write a struct `Client` with fields `OnRequest func(url string)` and `OnResponse func( - Network accessline 534
"description": "Both OnRequest and OnResponse checked for nil before calling", "prompt": "In package `http`, write a struct `Client` with fields `OnRequest func(url string)` and `OnResponse func(status int)`. Add a `Fetch(url string) (i - Network accessline 535
"prompt": "In package `http`, write a struct `Client` with fields `OnRequest func(url string)` and `OnResponse func(status int)`. Add a `Fetch(url string) (int, error)` method that calls OnRequest before fetching, does the fetch (simulate w - Network accessline 546
{ "id": "22.3", "text": "Client is usable with zero-value callbacks — `Client{}.Fetch(url)` should not panic" - Network accessline 547
"id": "22.3", "text": "Client is usable with zero-value callbacks — `Client{}.Fetch(url)` should not panic" }, - Network accessline 548
"text": "Client is usable with zero-value callbacks — `Client{}.Fetch(url)` should not panic"
skills/golang-safety/references/nil-safety.md
skills/golang-samber-do/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "💉" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "💉" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [pkg.go.dev/github.com/samber/do/v2](https://pkg.go.dev/github.com/samber/do/v2) - Network accessline 32
- [do.samber.dev](https://do.samber.dev) - Network accessline 33
- [github.com/samber/do/v2](https://github.com/samber/do)
skills/golang-samber-hot/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🔥" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔥" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [pkg.go.dev/github.com/samber/hot](https://pkg.go.dev/github.com/samber/hot) - Network accessline 32
- [github.com/samber/hot](https://github.com/samber/hot) - Network accessline 134
If you encounter a bug or unexpected behavior in samber/hot, open an issue at <https://github.com/samber/hot/issues>.
skills/golang-samber-lo/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🧰" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🧰" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [github.com/samber/lo](https://github.com/samber/lo) - Network accessline 32
- [lo.samber.dev](https://lo.samber.dev) - Network accessline 33
- [pkg.go.dev/github.com/samber/lo](https://pkg.go.dev/github.com/samber/lo) - Network accessline 182
If you encounter a bug or unexpected behavior in samber/lo, open an issue at [github.com/samber/lo/issues](https://github.com/samber/lo/issues).
skills/golang-samber-lo/references/api-reference.md
- Network accessline 5
For up-to-date signatures, use `godig symbol doc github.com/samber/lo <Symbol>` (→ `samber/cc-skills-golang@golang-pkg-go-dev`) or check [pkg.go.dev/github.com/samber/lo](https://pkg.go.dev/github.com/samber/lo). Context7 is a fallback if a
skills/golang-samber-mo/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🎭" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🎭" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 33
- [pkg.go.dev/github.com/samber/mo](https://pkg.go.dev/github.com/samber/mo) - Network accessline 34
- [github.com/samber/mo](https://github.com/samber/mo) - Network accessline 131
return mo.Left[CachedUser, FreshUser](cached) } return mo.Right[CachedUser, FreshUser](db.Fetch(id)) - Network accessline 132
} return mo.Right[CachedUser, FreshUser](db.Fetch(id)) } - Network accessline 133
return mo.Right[CachedUser, FreshUser](db.Fetch(id)) - Network accessline 273
If you encounter a bug or unexpected behavior in samber/mo, open an issue at <https://github.com/samber/mo/issues>.
skills/golang-samber-mo/references/advanced-types.md
- Network accessline 185
te := mo.NewTaskEither(func() *mo.Future[string] { return mo.NewFuture(func(resolve func(string), reject func(error)) { resp, err := http.Get("https://api.example.com/data") - Network accessline 186
return mo.NewFuture(func(resolve func(string), reject func(error)) { resp, err := http.Get("https://api.example.com/data") if err != nil { - Network accessline 187
resp, err := http.Get("https://api.example.com/data")
skills/golang-samber-oops/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "💥" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "💥" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 75
| `.Code("iam_authz_missing_permission")` | Set machine-readable error identifier/slug | | `.Public("Could not fetch user.")` | Set user-safe message (separate from technical details) | | `.Hint("Runbook: https://doc.acme.org/doc/abcd.md")` - Network accessline 76
| `.Public("Could not fetch user.")` | Set user-safe message (separate from technical details) | | `.Hint("Runbook: https://doc.acme.org/doc/abcd.md")` | Add debugging hint for developers | | `.Owner("team/slack")` | Identify responsible te - Network accessline 77
| `.Hint("Runbook: https://doc.acme.org/doc/abcd.md")` | Add debugging hint for developers | - Network accessline 276
- [github.com/samber/oops](https://github.com/samber/oops) - Network accessline 277
- [pkg.go.dev/github.com/samber/oops](https://pkg.go.dev/github.com/samber/oops)
skills/golang-samber-ro/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "👁" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "👁" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 29
Go implementation of [ReactiveX](https://reactivex.io/). Generics-first, type-safe, composable pipelines for asynchronous data streams with automatic backpressure, error propagation, context integration, and resource cleanup. 150+ operators - Network accessline 33
- [github.com/samber/ro](https://github.com/samber/ro) - Network accessline 34
- [ro.samber.dev](https://ro.samber.dev) - Network accessline 35
- [pkg.go.dev/github.com/samber/ro](https://pkg.go.dev/github.com/samber/ro) - Network accessline 179
If you encounter a bug or unexpected behavior in samber/ro, open an issue at [github.com/samber/ro/issues](https://github.com/samber/ro/issues).
skills/golang-samber-slog/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🪵" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🪵" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 63
- [github.com/samber/slog-multi](https://github.com/samber/slog-multi) — handler composition - Network accessline 64
- [github.com/samber/slog-sampling](https://github.com/samber/slog-sampling) — throughput control - Network accessline 65
- [github.com/samber/slog-formatter](https://github.com/samber/slog-formatter) — attribute transformation - Network accessline 234
If you encounter a bug or unexpected behavior in any samber/slog-\* package, open an issue at the relevant repository (e.g., [slog-multi/issues](https://github.com/samber/slog-multi/issues), [slog-sampling/issues](https://github.com/samber/
skills/golang-samber-slog/references/backend-handlers.md
- Network accessline 169
handler := slogslack.Option{ Level: slog.LevelError, WebhookURL: "https://hooks.slack.com/services/...", - Network accessline 170
Level: slog.LevelError, WebhookURL: "https://hooks.slack.com/services/...", Channel: "alerts", - Network accessline 171
WebhookURL: "https://hooks.slack.com/services/...", - Network accessline 200
handler := slogwebhook.Option{ Level: slog.LevelError, Endpoint: "https://webhook.site/your-id", - Network accessline 201
Level: slog.LevelError, Endpoint: "https://webhook.site/your-id", Timeout: 10 * time.Second, - Network accessline 202
Endpoint: "https://webhook.site/your-id",
skills/golang-security/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch Bash(govulncheck:*) WebSearch AskUserQuestion EnterWorktree ExitWorktree - Network accessline 10
openclaw: emoji: "🔒" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔒" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 188
- [Go Security Best Practices](https://go.dev/doc/security/best-practices) - Network accessline 189
- [gosec Security Linter](https://github.com/securego/gosec) - Network accessline 190
- [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck) - Network accessline 191
- [OWASP Go Secure Coding Practices](https://owasp.org/www-project-go-secure-coding-practices-guide/)
skills/golang-security/evals/evals.json
skills/golang-security/references/cookies.md
skills/golang-security/references/injection.md
- Dangerous shell operationline 189
cmd := exec.Command("sh", "-c", "rm -f /tmp/"+filename) // DON'T
skills/golang-security/references/secrets.md
skills/golang-security/references/third-party.md
skills/golang-spf13-cobra/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🐍" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🐍" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 37
- [pkg.go.dev/github.com/spf13/cobra](https://pkg.go.dev/github.com/spf13/cobra) - Network accessline 38
- [github.com/spf13/cobra](https://github.com/spf13/cobra) - Network accessline 39
- [cobra.dev](https://cobra.dev) - Network accessline 176
If you encounter a bug or unexpected behavior in spf13/cobra, open an issue at <https://github.com/spf13/cobra/issues>.
skills/golang-spf13-viper/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Access to secretsline 3
[Credential-related source omitted] - Network accessline 10
openclaw: emoji: "🔧" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔧" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [pkg.go.dev/github.com/spf13/viper](https://pkg.go.dev/github.com/spf13/viper) - Network accessline 32
- [github.com/spf13/viper](https://github.com/spf13/viper) - Network accessline 190
If you encounter a bug or unexpected behavior in spf13/viper, open an issue at <https://github.com/spf13/viper/issues>.
skills/golang-spf13-viper/references/sources-and-formats.md
skills/golang-stay-updated/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch WebSearch - Network accessline 10
openclaw: emoji: "📰" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📰" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 38
| Newsletter | Description | Subscribe | | --- | --- | --- | | **Golang Weekly** | Weekly curated Go content, news, and articles | <https://golangweekly.com/> | - Network accessline 39
| --- | --- | --- | | **Golang Weekly** | Weekly curated Go content, news, and articles | <https://golangweekly.com/> | | **Awesome Go Newsletter** | Updates on new Go libraries and tools | <https://go.libhunt.com/> | - Network accessline 40
| **Golang Weekly** | Weekly curated Go content, news, and articles | <https://golangweekly.com/> | - Network accessline 41
| **Awesome Go Newsletter** | Updates on new Go libraries and tools | <https://go.libhunt.com/> | - Network accessline 45
| Community | Description | URL | | --- | --- | --- | | r/golang | Main Go subreddit with 300K+ members | <https://www.reddit.com/r/golang> | - Network accessline 46
| --- | --- | --- | | r/golang | Main Go subreddit with 300K+ members | <https://www.reddit.com/r/golang> | | golang wiki | Official wiki with resources and FAQs | <https://go.dev/wiki/> | - Network accessline 47
| r/golang | Main Go subreddit with 300K+ members | <https://www.reddit.com/r/golang> | - Network accessline 48
| golang wiki | Official wiki with resources and FAQs | <https://go.dev/wiki/> | - Network accessline 49
| gophers.slack.com | Official Go Slack community | <https://invite.slack.golangbridge.org> | - Network accessline 50
| Go Forum | Official Go discussion forum | <https://forum.golangbridge.org> | - Network accessline 51
| Discuss Go | Official Go team discussion | <https://groups.google.com/g/golang-nuts> | - Network accessline 61
| **Rob Pike** | robpike | | | | | **Ken Thompson** | ken | | | | | **Russ Cox** | rsc | @\_rsc | <https://www.linkedin.com/in/swtch> | <https://bsky.app/profile/swtch.com> | - Network accessline 62
| **Ken Thompson** | ken | | | | | **Russ Cox** | rsc | @\_rsc | <https://www.linkedin.com/in/swtch> | <https://bsky.app/profile/swtch.com> | | **Brad Fitzpatrick** | bradfitz | @bradfitz | <https://www.linkedin.com/in/bradfitz/> | <http - Network accessline 63
| **Russ Cox** | rsc | @\_rsc | <https://www.linkedin.com/in/swtch> | <https://bsky.app/profile/swtch.com> | - Network accessline 64
| **Brad Fitzpatrick** | bradfitz | @bradfitz | <https://www.linkedin.com/in/bradfitz/> | <https://bsky.app/profile/bradfitz.com> | - Network accessline 74
| **Daniel Theophanes** | kardianos | @kardianos | | | | **Matt Butcher** | technosophos | | | | | **Jaana Dogan** | rakyll | @rakyll | <https://www.linkedin.com/in/rakyll/> | | - Network accessline 76
| **Jaana Dogan** | rakyll | @rakyll | <https://www.linkedin.com/in/rakyll/> | | - Network accessline 80
| Name | GitHub | Twitter/X | LinkedIn | Bluesky | | --- | --- | --- | --- | --- | | **Mat Ryer** | matryer | @matryer | <https://linkedin.com/in/matryer> | | - Network accessline 81
| --- | --- | --- | --- | --- | | **Mat Ryer** | matryer | @matryer | <https://linkedin.com/in/matryer> | | | **Dave Cheney** | davecheney | @davecheney | <https://linkedin.com/in/davecheney> | | - Network accessline 82
| **Mat Ryer** | matryer | @matryer | <https://linkedin.com/in/matryer> | | - Network accessline 83
| **Dave Cheney** | davecheney | @davecheney | <https://linkedin.com/in/davecheney> | | - Network accessline 84
| **Katherine Cox-Buday** | kat-co | | <https://linkedin.com/in/katherinecoxbuday> | | - Network accessline 85
| **Johnny Boursiquot** | jboursiquot | @jboursiquot | <https://linkedin.com/in/jboursiquot> | | - Network accessline 86
| **Michał Łowicki** | mlowicki | @mlowicki | <https://linkedin.com/in/michał-łowicki-a60402b> | | - Network accessline 90
| Name | GitHub | Twitter/X | LinkedIn | Bluesky | | --- | --- | --- | --- | --- | | **Steve Francia** | spf13 | @spf13 | <https://linkedin.com/in/spf13> | | - Network accessline 91
| --- | --- | --- | --- | --- | | **Steve Francia** | spf13 | @spf13 | <https://linkedin.com/in/spf13> | | | **Samuel Berthe** | samber | @samuelberthe | <https://linkedin.com/in/samuelberthe> | <https://bsky.app/profile/samber.bsky.social - Network accessline 92
| **Steve Francia** | spf13 | @spf13 | <https://linkedin.com/in/spf13> | | - Network accessline 93
| **Samuel Berthe** | samber | @samuelberthe | <https://linkedin.com/in/samuelberthe> | <https://bsky.app/profile/samber.bsky.social> | - Network accessline 94
| **Mitchell Hashimoto** | mitchellh | @mitchellh | <https://linkedin.com/in/mitchellh> | <https://bsky.app/profile/mitchellh.com> | - Network accessline 95
| **Matt Holt** | mholt | @mholt6 | | | | **Tomás Senart** | tsenart | @tsenart | <https://www.linkedin.com/in/tsenart/> | | | **Björn Rabenstein** | beorn7 | | | | - Network accessline 96
| **Tomás Senart** | tsenart | @tsenart | <https://www.linkedin.com/in/tsenart/> | | - Network accessline 101
| Name | GitHub | Twitter/X | LinkedIn | Bluesky | | --- | --- | --- | --- | --- | | **Carlisia Campos** | carlisia | @carlisia | <https://linkedin.com/in/carlisia> | | - Network accessline 102
| --- | --- | --- | --- | --- | | **Carlisia Campos** | carlisia | @carlisia | <https://linkedin.com/in/carlisia> | | | **Erik St. Martin** | erikstmartin | @erikstmartin | | | - Network accessline 103
| **Carlisia Campos** | carlisia | @carlisia | <https://linkedin.com/in/carlisia> | | - Network accessline 109
| Blog | Author | URL | | --------------- | ------------ | ------------------------------------ | | The Go Blog | Go Team | <https://go.dev/blog> | - Network accessline 110
| --------------- | ------------ | ------------------------------------ | | The Go Blog | Go Team | <https://go.dev/blog> | | Rob Pike's Blog | Rob Pike | <https://commandcenter.blogspot.com> | - Network accessline 111
| The Go Blog | Go Team | <https://go.dev/blog> | - Network accessline 112
| Rob Pike's Blog | Rob Pike | <https://commandcenter.blogspot.com> | - Network accessline 113
| Dave Cheney | Dave Cheney | <https://dave.cheney.net> | - Network accessline 114
| Ardan Labs Blog | Bill Kennedy | <https://www.ardanlabs.com/blog> | - Network accessline 118
| Channel | Content | URL | | --- | --- | --- | | Go | Official Go team | <https://www.youtube.com/@golang> | - Network accessline 119
| --- | --- | --- | | Go | Official Go team | <https://www.youtube.com/@golang> | | Gopher Academy | Talks & tutorials | <https://www.youtube.com/@GopherAcademy> | - Network accessline 120
| Go | Official Go team | <https://www.youtube.com/@golang> | - Network accessline 121
| Gopher Academy | Talks & tutorials | <https://www.youtube.com/@GopherAcademy> | - Network accessline 122
| GopherCon Europe | European conference talks | <https://www.youtube.com/@GopherConEurope> | - Network accessline 123
| GopherCon UK | UK conference talks | <https://www.youtube.com/@GopherConUK> | - Network accessline 124
| Golang Singapore | Singapore meetup & conf talks | <https://www.youtube.com/@golangSG> | - Network accessline 125
| Ardan Labs | Go training & tips | <https://www.youtube.com/@ArdanLabs> | - Network accessline 126
| Applied Go | Go tutorials | <https://youtube.com/appliedgocode> | - Network accessline 127
| Learn Go Programming | Beginner tutorials | <https://youtube.com/learn_goprogramming> |
skills/golang-stretchr-testify/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(gotests:*) AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "✅" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "✅" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-stretchr-testify/evals/evals.json
- Network accessline 73
"name": "mock-retry-different-returns", "description": "Tests knowledge of chaining .Once() calls to return different values per call for retry testing", "prompt": "I need to test that my Go HTTP client retries on failure. The clien - Network accessline 74
"description": "Tests knowledge of chaining .Once() calls to return different values per call for retry testing", "prompt": "I need to test that my Go HTTP client retries on failure. The client calls Fetcher.Fetch(url string) ([]byte, e - Network accessline 75
"prompt": "I need to test that my Go HTTP client retries on failure. The client calls Fetcher.Fetch(url string) ([]byte, error). First call should return a timeout error, second call should succeed with some data. How do I set up this mock?
skills/golang-structs-interfaces/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent AskUserQuestion - Network accessline 10
openclaw: emoji: "🧩" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🧩" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-structs-interfaces/references/struct-fields.md
skills/golang-swagger/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(swag:*) AskUserQuestion Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "📋" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "📋" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 173
// OAuth2 authorization code // @securityDefinitions.oauth2.authorizationCode OAuth2 // @authorizationUrl https://example.com/oauth/authorize - Network accessline 174
// @securityDefinitions.oauth2.authorizationCode OAuth2 // @authorizationUrl https://example.com/oauth/authorize // @tokenUrl https://example.com/oauth/token - Network accessline 175
// @authorizationUrl https://example.com/oauth/authorize - Network accessline 176
// @tokenUrl https://example.com/oauth/token - Network accessline 234
If you encounter a bug or unexpected behavior in swag, open an issue at <https://github.com/swaggo/swag/issues>.
skills/golang-testing/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(gotests:*) AskUserQuestion - Network accessline 10
openclaw: emoji: "🧪" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🧪" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang
skills/golang-testing/references/helpers.md
- Network accessline 8
// https://github.com/stretchr/testify/issues/1101
skills/golang-troubleshooting/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Bash(dlv:*) Agent WebFetch WebSearch AskUserQuestion - Network accessline 10
openclaw: emoji: "🔍" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🔍" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 75
"Program hangs / frozen" → curl localhost:6060/debug/pprof/goroutine?debug=2 - Network accessline 76
→ curl localhost:6060/debug/pprof/goroutine?debug=2
skills/golang-troubleshooting/references/concurrency-debug.md
skills/golang-troubleshooting/references/methodology.md
- Network accessline 82
# Reproduce an API call outside your app curl -v -X POST https://api.example.com/endpoint \ - Network accessline 83
curl -v -X POST https://api.example.com/endpoint \ - Network accessline 92
# Test connectivity and DNS resolution dig api.example.com nc -zv api.example.com 443 - Network accessline 94
nc -zv api.example.com 443 - Network accessline 96
# Check if an external service is responding at all curl -o /dev/null -s -w "HTTP %{http_code} in %{time_total}s\n" https://api.example.com/health - Network accessline 97
curl -o /dev/null -s -w "HTTP %{http_code} in %{time_total}s\n" https://api.example.com/health - Access to secretsline 108
[Credential-related source omitted]
skills/golang-troubleshooting/references/pprof.md
- Network accessline 89
# CPU profiles SHOULD capture at least 30 seconds for meaningful data (30s default). # Ensure your HTTP server's request timeout exceeds the capture duration. curl http://localhost:6060/debug/pprof/profile?seconds=30 > cpu.prof - Network accessline 91
curl http://localhost:6060/debug/pprof/profile?seconds=30 > cpu.prof - Network accessline 93
# Heap snapshot curl http://localhost:6060/debug/pprof/heap > heap.prof - Network accessline 94
curl http://localhost:6060/debug/pprof/heap > heap.prof - Network accessline 96
# Goroutine dump (human-readable) curl http://localhost:6060/debug/pprof/goroutine?debug=2 > goroutines.txt - Network accessline 97
curl http://localhost:6060/debug/pprof/goroutine?debug=2 > goroutines.txt - Network accessline 99
# Goroutine profile (for pprof analysis) curl http://localhost:6060/debug/pprof/goroutine > goroutine.prof - Network accessline 100
curl http://localhost:6060/debug/pprof/goroutine > goroutine.prof - Network accessline 102
# Goroutine leak profile — generally available since Go 1.27 (no GOEXPERIMENT needed) curl http://localhost:6060/debug/pprof/goroutineleak?debug=2 - Network accessline 103
curl http://localhost:6060/debug/pprof/goroutineleak?debug=2 - Network accessline 104
go tool pprof http://localhost:6060/debug/pprof/goroutineleak - Network accessline 106
# Mutex contention curl http://localhost:6060/debug/pprof/mutex > mutex.prof - Network accessline 107
curl http://localhost:6060/debug/pprof/mutex > mutex.prof - Network accessline 109
# Block profile curl http://localhost:6060/debug/pprof/block > block.prof - Network accessline 110
curl http://localhost:6060/debug/pprof/block > block.prof
skills/golang-troubleshooting/references/production-debug.md
- Network accessline 22
Capture all profiles before restarting the process. The curl commands in [pprof.md](./pprof.md) can be used targeting your production server address. At minimum, capture: goroutine dump (`?debug=2`), heap, CPU (30s), and mutex profiles. - Network accessline 108
// 1. HTTP clients MUST set timeouts — default http.Client has NO timeout - Network accessline 109
client := &http.Client{
skills/golang-uber-dig/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "⛏" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "⛏" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [pkg.go.dev/go.uber.org/dig](https://pkg.go.dev/go.uber.org/dig) - Network accessline 32
- [github.com/uber-go/dig](https://github.com/uber-go/dig) - Network accessline 231
If you encounter a bug or unexpected behavior in uber-go/dig, open an issue at <https://github.com/uber-go/dig/issues>.
skills/golang-uber-fx/SKILL.md
- Broad permissionsline 1
Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent WebFetch mcp__context7__resolve-library-id mcp__context7__query-docs Bash(godig:*) Bash(gopls:*) LSP mcp__gopls__* - Network accessline 10
openclaw: emoji: "🏭" homepage: https://github.com/samber/cc-skills-golang - Network accessline 11
emoji: "🏭" homepage: https://github.com/samber/cc-skills-golang requires: - Network accessline 12
homepage: https://github.com/samber/cc-skills-golang - Network accessline 31
- [pkg.go.dev/go.uber.org/fx](https://pkg.go.dev/go.uber.org/fx) - Network accessline 32
- [uber-go.github.io/fx](https://uber-go.github.io/fx/) - Network accessline 33
- [github.com/uber-go/fx](https://github.com/uber-go/fx) - Network accessline 237
If you encounter a bug or unexpected behavior in uber-go/fx, open an issue at <https://github.com/uber-go/fx/issues>.
skills/golang-uber-fx/evals/evals.json
- Access to secretsline 49
[Credential-related source omitted]
skills/golang-uber-fx/references/recipes.md
- Access to secretsline 220
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Broad permissions in the frontmatter of the SKILL.mdgolang-benchmark/SKILL.md:1High confidence
- Network access in the frontmatter of the SKILL.mdgolang-benchmark/SKILL.md:10Low confidence
- Network access in the frontmatter of the SKILL.mdgolang-benchmark/SKILL.md:11Low confidence
- Network access in the frontmatter of the SKILL.mdgolang-benchmark/SKILL.md:12Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:259Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:268Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:271Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:289Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:292Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:303Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:304Low confidence
- Dangerous shell operation in code of documentationgolang-benchmark/references/ci-regression.md:305Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:128Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:129Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:131Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:132Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:134Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:135Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:137Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:138Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:140Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:141Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:168Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:170Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:668Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:669Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:671Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:672Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:674Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:675Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:677Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:678Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:680Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:681Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:683Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:684Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:686Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:687Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:689Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:690Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:692Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:693Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:695Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:696Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:698Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:699Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:701Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:702Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:758Low confidence
- Network access in code of documentationgolang-benchmark/references/pprof.md:759Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/plugin.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/golang-benchmark/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/golang-benchmark/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Manifest gemini-extension.json | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/golang-benchmark/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/golang-benchmark/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/samber-cc-skills-golang/)