Skip to content
mcp/skillhub

Agent Skill

Golang Samber Oops skill

golang-samber-oopssamber/cc-skills-golangskills/golang-samber-oops/SKILL.md

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.

3.6kMIT

always on

74 tokname + description

once used

2,283 tokSKILL.md body

bundled files

214 KB

repo stars

3.6kGitHub

Install the Golang Samber Oops skill

Skills CLI (Claude Code, Codex, Cursor and others)

npx skills add https://github.com/samber/cc-skills-golang --skill golang-samber-oops

Claude Code, by hand (all projects)

git clone --depth 1 https://github.com/samber/cc-skills-golang.git /tmp/cc-skills-golang
mkdir -p ~/.claude/skills
cp -R /tmp/cc-skills-golang/skills/golang-samber-oops ~/.claude/skills/golang-samber-oops

For one project only, copy the folder into .claude/skills/ in that project instead. The agent picks it up when a task matches its description.

What it costs your context

Agent Skills load in three steps. Tokens counted with the o200k tokenizer; your model's count will differ a little.

WhenWhat loadsCost
Every sessionName and description74 tok
When the agent uses itThe SKILL.md instructions2,283 tok
Only if opened2 bundled files (14 KB)varies

Until it is used, golang-samber-oops costs about 18× less than the median MCP server we measured (1,363 tokens on every turn). Installing all 46 skills from samber/cc-skills-golang would load 6,483 tokens of descriptions. Skills vs MCP study

Checks

Our checks found nothing to flag: it follows the Agent Skills specification's naming and size guidelines and doesn't pipe downloads into a shell.

Pre-approved tools (allowed-tools): 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__*. The agent can use these without asking while the skill is active.

Checked 2026-10-22 · method

What's inside

The headings of its SKILL.md. Read the full file on GitHub.

  • samber/oops Structured Error Handling
  • Why use samber/oops
  • Core pattern: Error builder chain
  • Error builder methods
  • Common scenarios
  • Database/repository layer
  • HTTP handler layer
  • Service layer with reusable builder
  • Error wrapping best practices
  • DO: Wrap directly, no nil check needed
  • DO: Add context at each layer
  • DO: Keep error messages low-cardinality
  • Panic recovery
  • Accessing error information
  • Output formats
  • Context propagation
  • References
  • Cross-References

More skills from samber/cc-skills-golang

All skills in this repo
  1. golang-benchmarksamber/cc-skills-golang

    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.

    3.6k104 tok idle · 2,819 in use
  2. golang-clisamber/cc-skills-golang

    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.

    3.6k12126 tok idle · 2,074 in use
  3. golang-code-stylesamber/cc-skills-golang

    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).

    3.6k116 tok idle · 2,105 in use
  4. golang-concurrencysamber/cc-skills-golang

    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).

    3.6k180 tok idle · 1,984 in use
  5. golang-contextsamber/cc-skills-golang

    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.

    3.6k83 tok idle · 1,169 in use
  6. golang-continuous-integrationsamber/cc-skills-golang

    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).

    3.6k181 tok idle · 3,151 in use
  7. golang-data-structuressamber/cc-skills-golang

    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).

    3.6k126 tok idle · 2,343 in use
  8. golang-databasesamber/cc-skills-golang

    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.

    3.6k98 tok idle · 2,483 in use