install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/sdk-platform-development/skills/go-sdk-specialist" ~/.claude/skills/a5c-ai-babysitter-go-sdk-specialist && rm -rf "$T"
manifest:
library/specializations/sdk-platform-development/skills/go-sdk-specialist/SKILL.mdsource content
Go SDK Specialist Skill
Overview
This skill specializes in developing idiomatic Go SDKs with proper module versioning, context-based cancellation, and Go-style error handling patterns.
Capabilities
- Design Go SDK architecture with proper module structure
- Implement context-based cancellation and timeouts
- Apply Go error handling patterns with wrapped errors
- Configure go.mod versioning following semver
- Design functional options pattern for configuration
- Implement interface-based design for testability
- Configure proper logging with structured output
- Support concurrent operations safely
Target Processes
- Multi-Language SDK Strategy
- SDK Architecture Design
- SDK Testing Strategy
Integration Points
- Go modules (go.mod)
- go test with testify
- golangci-lint for code quality
- pkg.go.dev for documentation
- goreleaser for releases
Input Requirements
- API specification
- Module path (e.g., github.com/org/sdk)
- Minimum Go version
- Concurrency requirements
- Error handling preferences
Output Artifacts
- Go module source code
- go.mod and go.sum files
- Test files (*_test.go)
- Examples in examples/ directory
- README with installation instructions
- GoDoc-compatible documentation
Usage Example
skill: name: go-sdk-specialist context: apiSpec: ./openapi.yaml modulePath: github.com/myorg/sdk-go goVersion: "1.21" useGenerics: true errorWrapping: true functionalOptions: true
Best Practices
- Use functional options for configuration
- Accept interfaces, return structs
- Make zero values useful
- Handle errors explicitly with wrapping
- Use context.Context for cancellation
- Keep packages focused and small