Claude-skill-registry go-modules

Go modules and dependency management

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/go-modules" ~/.claude/skills/majiayu000-claude-skill-registry-go-modules && rm -rf "$T"
manifest: skills/data/go-modules/SKILL.md
source content

Go Modules Skill

Master Go module system and dependency management.

Overview

Complete guide for Go modules including versioning, private modules, vendoring, and dependency updates.

Parameters

ParameterTypeRequiredDefaultDescription
actionstringyes-Action: "init", "tidy", "vendor", "update"
privateboolnofalseHandle private modules

Core Topics

Module Initialization

# Initialize new module
go mod init github.com/myorg/myapp

# Download dependencies
go mod download

# Cleanup unused dependencies
go mod tidy

# Verify dependencies
go mod verify

go.mod Structure

module github.com/myorg/myapp

go 1.22

require (
    github.com/gin-gonic/gin v1.9.1
    github.com/jmoiron/sqlx v1.3.5
    go.uber.org/zap v1.26.0
)

require (
    // indirect dependencies auto-managed
    github.com/lib/pq v1.10.9 // indirect
)

Private Modules

# Configure private module pattern
go env -w GOPRIVATE=github.com/myorg/*

# Use SSH for private repos
git config --global url."git@github.com:".insteadOf "https://github.com/"

# Or use access token
git config --global url."https://${GITHUB_TOKEN}@github.com/".insteadOf "https://github.com/"

Vendoring

# Create vendor directory
go mod vendor

# Build with vendor
go build -mod=vendor ./...

# Verify vendor is in sync
go mod verify

Dependency Updates

# List available updates
go list -m -u all

# Update specific dependency
go get github.com/gin-gonic/gin@latest

# Update all dependencies
go get -u ./...

# Update to specific version
go get github.com/gin-gonic/gin@v1.9.1

# Downgrade
go get github.com/gin-gonic/gin@v1.8.0

Replace Directives

// go.mod

// Local development
replace github.com/myorg/shared => ../shared

// Fork with fixes
replace github.com/original/pkg => github.com/myorg/pkg-fork v1.2.3

// Exclude vulnerable version
exclude github.com/vulnerable/pkg v1.0.0

Workspace (Go 1.18+)

// go.work
go 1.22

use (
    ./api
    ./shared
    ./worker
)
# Initialize workspace
go work init ./api ./shared

# Add module to workspace
go work use ./worker

# Sync workspace
go work sync

Troubleshooting

Failure Modes

SymptomCauseFix
Module not foundPrivate repoSet GOPRIVATE
Checksum mismatchProxy cacheGOPROXY=direct
Version conflictDiamond dependencyUse
go mod graph

Debug Commands

go mod graph                    # Show dependency graph
go mod why github.com/pkg/errors # Why is this needed?
go list -m -versions github.com/gin-gonic/gin # Available versions

Usage

Skill("go-modules")