Loading...
Loading...
Found 19 Skills
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.
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`.
SAP Converged Cloud Go coding conventions extracted from sapcc/keppel and sapcc/go-bits PR reviews. Enforces architecture patterns, library usage rules, error handling conventions, testing patterns, and anti-over-engineering principles. Use when working in sapcc/* repos, when code imports github.com/sapcc/go-bits, or when targeting SAP CC code review standards. Do NOT use for general Go projects without sapcc dependencies.
Test APIs and services with Encore Go.
Use when writing, reviewing, or refactoring Go code; when handling errors (fmt.Errorf, %w, sentinel, errors.Is, errors.As); when deciding between panic, error return, and log.Fatal; when writing tests (table-driven, t.Helper, t.Fatal vs t.Error, goroutines); when designing API surface (option struct, variadic options, channel direction, context); when naming functions, methods, packages, receivers, or test doubles; when laying out packages and imports; when initializing variables or building strings.
Write Go table-driven tests following established patterns. Use when writing tests, creating test functions, adding test cases, or when the user mentions "test", "table-driven", "Go tests", or testing in Go codebases.
Go development with gotestsum for testing, standard tooling, and best practices
Generate a complete Go MCP server project with proper structure, dependencies, and implementation using the official github.com/modelcontextprotocol/go-sdk.
A skill to improve test code quality based on the test principles from Google's "Software Engineering at Google". It supports creating new tests, reviewing and refactoring existing tests. Must be used when users make requests such as: "Write tests", "Add tests", "Review test code", "Refactor tests", "Improve test quality", "Check if test principles are followed", "Use good test writing practices", "I want tests for this method", "Insufficient test cases", "Review tests", "Increase coverage". Actively trigger this skill for any test-related work even if the skill name is not explicitly mentioned. It has three subcommands: review (test code review), refactor (refactoring existing tests), write (creating new tests).
Build production REST APIs with Go - handlers, middleware, security
Use when writing or reviewing Go code to ensure idiomatic style, up-to-date language features, and best practices.
Write idiomatic Go with goroutines, channels, and interfaces. Use for Go development, concurrency, or performance.