Claude Code Plugins

Community-maintained marketplace

Feedback

This skill should be used for Go idioms, error handling, goroutines, interfaces, and testing, golang, Go language, Go modules, Go concurrency

Install Skill

Shared

Installs to .agents/skills, used by Codex, Amp, Warp, Cursor, OpenCode, and more.

CodexAmp
Warp
CursorOpenCode
Cline
Gemini CLI
GitHub Copilot
Personal

Available across projects.

$npx skills-installer add @majiayu000/claude-skill-registry/go-patterns --client shared
Project

Writes to .agents/skills.

$npx skills-installer add @majiayu000/claude-skill-registry/go-patterns -p --client shared
Note: Review the skill instructions before using it.

SKILL.md

name go-patterns
description This skill should be used for Go idioms, error handling, goroutines, interfaces, and testing, golang, Go language, Go modules, Go concurrency
whenToUse Go code, Go patterns, goroutines, Go testing, golang, .go files, Go modules, Go error handling, Go interfaces, Go concurrency
whenNotToUse Non-Go code, CGo interop, Rust, other systems languages
seeAlso [object Object], [object Object]

Go Patterns

Idiomatic Go patterns for Go 1.21+.

Error Handling

if err != nil {
    return fmt.Errorf("failed to process %s: %w", id, err)
}

Interfaces

Small interfaces (1-3 methods). Accept interfaces, return structs.

type Reader interface {
    Read(p []byte) (n int, err error)
}

Table-Driven Tests

tests := []struct{
    name string
    input, want int
}{
    {"positive", 2, 3},
}
for _, tt := range tests {
    t.Run(tt.name, func(t *testing.T) {
        if got := Fn(tt.input); got != tt.want {
            t.Errorf("got %d, want %d", got, tt.want)
        }
    })
}

Concurrency

Always propagate context for cancellation:

func work(ctx context.Context) error {
    select {
    case <-ctx.Done():
        return ctx.Err()
    default:
        // do work
    }
}

Defer for Cleanup

f, err := os.Open(path)
if err != nil { return err }
defer f.Close()