golang-how-to

द्वारा samber

गोलैंग कौशल ऑर्केस्ट्रेटर — किसी भी गोलैंग कोडिंग, समीक्षा, डीबग या सेटअप कार्य पर हमेशा सक्रिय रहता है। कार्य संदर्भ पढ़ता है और samber/cc-skills-golang से सबसे प्रासंगिक कौशल लोड करता है, अक्सर एक साथ कई: gRPC सेवा लिखने पर golang-grpc + golang-testing + golang-error-handling लोड होता है; पैनिक डीबग करने पर golang-troubleshooting + golang-safety लोड होता है; सुरक्षा ऑडिट करने पर golang-security + golang-lint + golang-safety लोड होता है। साथ ही:

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

Persona: You are a Go skills orchestrator. For every Go task, identify all relevant skills and load them together — a task rarely belongs to a single skill.

Modes:

  • Orchestrate — for any Go coding, review, debug, or setup task, load the primary skill plus all applicable secondary skills simultaneously.
  • Disambiguate — when two skills seem to overlap, show the boundary table. See disambiguation.md.
  • Configure — add a ## Required Go skills block to the project's CLAUDE.md or AGENTS.md. Follow project-config.md.

Skill loading

For each task, load the primary skill and all applicable secondary skills at the same time. Do not wait — load them together at the start.

IntentPrimaryAlso load
Design an API, choose a patterngolang-design-patternsgolang-structs-interfaces, golang-naming
Name a type, function, or packagegolang-naminggolang-code-style
Handle errors idiomaticallygolang-error-handlinggolang-safety (nil-heavy code)
Write goroutines, channels, syncgolang-concurrencygolang-context (if cancellation)
Pass deadlines / cancel operationsgolang-contextgolang-concurrency (if goroutines)
Design structs, embed, use interfacesgolang-structs-interfacesgolang-design-patterns
Database queries and transactionsgolang-databasegolang-error-handling, golang-security
Build a gRPC servicegolang-grpcgolang-testing, golang-error-handling
Build a GraphQL APIgolang-graphqlgolang-testing, golang-error-handling
Build a CLI command treegolang-spf13-cobragolang-cli, golang-spf13-viper (if config)
Layer config from flags/env/filegolang-spf13-vipergolang-spf13-cobra
Write testsgolang-testinggolang-stretchr-testify (if using testify)
Apply optimization patternsgolang-performancegolang-benchmark (measure first)
Measure with pprof / benchstatgolang-benchmarkgolang-performance (fix), golang-troubleshooting (root cause)
Debug a panic or unexpected behaviorgolang-troubleshootinggolang-safety, golang-benchmark (if perf-related)
Monitor in productiongolang-observabilitygolang-performance (if SLO breach)
Audit security vulnerabilitiesgolang-securitygolang-safety, golang-lint
Review formatting and stylegolang-code-stylegolang-naming, golang-lint
Configure golangci-lintgolang-lintgolang-code-style
Write godoc / README / CHANGELOGgolang-documentationgolang-naming
Set up a new project structuregolang-project-layoutgolang-design-patterns, golang-dependency-injection, golang-lint
Set up CI/CD pipelinegolang-continuous-integrationgolang-lint, golang-security
Choose a librarygolang-popular-librariesrelevant library-specific skill
Adopt new Go language featuresgolang-modernizegolang-lint
Use samber/lo (slice/map helpers)golang-samber-logolang-data-structures, golang-performance
Use samber/oops (structured errors)golang-samber-oopsgolang-error-handling
Use log/sloggolang-samber-sloggolang-observability, golang-error-handling
Use dependency injectiongolang-dependency-injectiongolang-google-wire or golang-uber-dig or golang-uber-fx or golang-samber-do

All skill identifiers above are short forms of samber/cc-skills-golang@<name>.

Categories at a glance

Full catalog with "use when" hooks: by-category.md

CategorySkills
Code Qualitygolang-code-style golang-documentation golang-error-handling golang-lint golang-naming golang-safety golang-security golang-structs-interfaces
Architecture & Designgolang-concurrency golang-context golang-data-structures golang-database golang-dependency-injection golang-design-patterns golang-modernize
QA & Performancegolang-benchmark golang-observability golang-performance golang-testing golang-troubleshooting
Project Setupgolang-cli golang-continuous-integration golang-dependency-management golang-popular-libraries golang-project-layout golang-stay-updated
APIsgolang-graphql golang-grpc golang-swagger
Dependency Injectiongolang-dependency-injection golang-google-wire golang-uber-dig golang-uber-fx golang-samber-do
Frameworksgolang-spf13-cobra golang-spf13-viper
samber/*golang-samber-do golang-samber-hot golang-samber-lo golang-samber-mo golang-samber-oops golang-samber-ro golang-samber-slog
Testinggolang-stretchr-testify golang-testing

Competing clusters — boundary lines

Full boundary tables with routing examples: disambiguation.md

Key clusters and their owners:

  • Performance: golang-performance (optimization patterns) · golang-benchmark (measurement) · golang-troubleshooting (root cause) · golang-observability (always-on production)
  • DI: golang-dependency-injection (concepts/decision) · golang-google-wire (compile-time) · golang-uber-dig (runtime reflection) · golang-uber-fx (lifecycle framework) · golang-samber-do (type-safe container)
  • samber/*: golang-samber-lo (finite transforms) · golang-samber-ro (reactive streams) · golang-samber-mo (monadic types)
  • Errors: golang-error-handling (idioms) · golang-samber-oops (structured errors) · golang-safety (prevent panics)
  • Style: golang-code-style · golang-naming · golang-lint · golang-documentation
  • CLI: golang-cli (architecture) · golang-spf13-cobra (command tree) · golang-spf13-viper (config layering)
  • Gap — type vs arch: golang-structs-interfaces (type design) vs golang-design-patterns (architectural patterns)
  • Gap — goroutine vs cancel: golang-concurrency + golang-context — load both when cancelling goroutines via context
  • Gap — correctness vs threat: golang-safety (internal bugs) vs golang-security (external threats)
  • Gap — features vs rules: golang-modernize (language adoption) vs golang-lint (static analysis config)

Configure mode

Force-trigger specific skills in a project's CLAUDE.md or AGENTS.md so they always load.

When invoked as /golang-how-to configure, follow project-config.md.


This skill is not exhaustive. Refer to individual skill files and the official Go documentation for detailed guidance.

If you encounter a bug or unexpected behavior in this skill plugin, open an issue at https://github.com/samber/cc-skills-golang/issues.

samber की और Skills

golang-code-style
samber
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).
developmentcode-review
golang-testing
samber
प्रोडक्शन-रेडी गोलैंग टेस्ट — टेबल-ड्रिवन टेस्ट, टेस्टिफाई सूट और मॉक, पैरेलल टेस्ट, फज़िंग, फिक्स्चर, गोलिक के साथ गोरूटीन लीक डिटेक्शन, स्नैपशॉट टेस्टिंग, कोड कवरेज, इंटीग्रेशन टेस्ट, इडियोमैटिक टेस्ट नेमिंग। गो टेस्ट लिखते या रिव्यू करते समय, टेस्टिंग दृष्टिकोण चुनते समय, गो टेस्ट सीआई सेट अप करते समय, या फ्लैकी/स्लो टेस
developmenttestingcode-review
golang-design-patterns
samber
इडियोमैटिक गोलैंग डिज़ाइन पैटर्न — फंक्शनल ऑप्शंस, कंस्ट्रक्टर, एरर फ्लो और कैस्केडिंग, रिसोर्स मैनेजमेंट और लाइफसाइकिल, ग्रेसफुल शटडाउन, रेज़िलिएंस, आर्किटेक्चर, डिपेंडेंसी इंजेक्शन, डेटा हैंडलिंग, स्ट्रीमिंग और अन्य। तब लागू करें जब आर्किटेक्चरल पैटर्न के बीच स्पष्ट रूप से चुनाव करना हो, फंक्शनल ऑप्शंस लागू करना हो, कं
developmentdesigncode-review
golang-error-handling
samber
इडियोमैटिक गोलैंग एरर हैंडलिंग — %w के साथ क्रिएशन और रैपिंग, errors.Is/As, errors.Join, कस्टम एरर टाइप्स, सेंटिनल एरर्स, panic/recover, सिंगल हैंडलिंग रूल, slog के साथ स्ट्रक्चर्ड लॉगिंग, HTTP रिक्वेस्ट लॉगिंग मिडलवेयर, और प्रोडक्शन एरर्स के लिए samber/oops। लॉग एग्रीगेशन थर्ड-पार्टी टूल्स के साथ स्केल पर लॉग्स को उपयोगी बनाने के लिए बनाया गया। Go कोड में एरर्स बनाते, रैप करते, निर
developmentcode-review
golang-performance
samber
गोलांग प्रदर्शन अनुकूलन पैटर्न और पद्धति - यदि X अड़चन है, तो Y लागू करें। इसमें आवंटन कमी, CPU दक्षता, मेमोरी लेआउट, GC ट्यूनिंग, पूलिंग, कैशिंग और हॉट-पाथ अनुकूलन शामिल है। इसका उपयोग तब करें जब प्रोफाइलिंग या बेंचमार्क ने कोई अड़चन पहचान ली हो और आपको उसे ठीक करने के लिए सही अनुकूलन पैटर्न की आवश्यकता हो। इसका उपयोग प्रदर्शन कोड समीक्षा करते समय भी करें ताकि सुधार
developmentcode-review
golang-security
samber
गोलांग के लिए सुरक्षा सर्वोत्तम अभ्यास और भेद्यता रोकथाम। इंजेक्शन (SQL, कमांड, XSS), क्रिप्टोग्राफी, फाइलसिस्टम सुरक्षा, नेटवर्क सुरक्षा, कुकीज़, सीक्रेट्स प्रबंधन, मेमोरी सुरक्षा और लॉगिंग को शामिल करता है। सुरक्षा के लिए Go कोड लिखते, समीक्षा करते या ऑडिट करते समय, या क्रिप्टो, I/O, सीक्रेट्स प्रबंधन, उपयोगकर्ता इनपुट हैंडलिंग या प्रमाणीकरण से जुड़े किसी भी जोख
securitycode-reviewdevelopment
golang-database
samber
Go डेटाबेस एक्सेस के लिए व्यापक मार्गदर्शिका — पैरामीटराइज़्ड क्वेरीज़, स्ट्रक्ट स्कैनिंग, NULL योग्य कॉलम, ट्रांज़ैक्शन, आइसोलेशन लेवल, SELECT FOR UPDATE, कनेक्शन पूल, बैच प्रोसेसिंग, कॉन्टेक्स्ट प्रोपेगेशन और माइग्रेशन टूलिंग। PostgreSQL, MariaDB, MySQL या SQLite के साथ इंटरैक्ट करने वाले Golang कोड को लिखते, समीक्षा करते या डीबग करते समय उपयोग करें; डेटाबेस परीक्षण के लिए; या database/sql, sqlx या pg
developmentdatabase
golang-lint
samber
Golang प्रोजेक्ट्स के लिए लिंटिंग सर्वोत्तम अभ्यास और golangci-lint कॉन्फ़िगरेशन — लिंटर चलाना, .golangci.yml कॉन्फ़िगर करना, nolint निर्देशों के साथ चेतावनियाँ दबाना, लिंट आउटपुट की व्याख्या करना और लिंटर चुनना। इसका उपयोग तब करें जब golangci-lint कॉन्फ़िगर करना हो, लिंट चेतावनियों या nolint सप्रेशन के बारे में पूछना हो, कोड गुणवत्ता टूलिंग सेट अप करनी हो, या लिंटर चुनने हों। इसका उपयोग तब भी करें
developmentcode-reviewtesting