SKILL.md
name: zero-skills description: | Comprehensive knowledge base for go-zero microservices framework.
Use this skill when:
- Building REST APIs with go-zero (Handler → Logic → Model architecture)
- Creating RPC services with service discovery and load balancing
- Implementing database operations with sqlx, MongoDB, or Redis caching
- Adding resilience patterns (circuit breaker, rate limiting, load shedding)
- Troubleshooting go-zero issues or understanding framework conventions
- Generating production-ready microservices code
Features:
- Complete pattern guides with ✅ correct and ❌ incorrect examples
- Three-layer architecture enforcement
- Production best practices
- Common pitfall solutions license: MIT allowed-tools:
- Read
- Grep
- Glob
go-zero Skills for AI Agents
This skill provides comprehensive go-zero microservices framework knowledge, optimized for AI agents helping developers build production-ready services. It covers REST APIs, RPC services, database operations, resilience patterns, and troubleshooting.
🎯 When to Use This Skill
Invoke this skill when working with go-zero:
- Creating services: REST APIs, gRPC services, or microservices architectures
- Database integration: SQL, MongoDB, Redis, or connection pooling
- Production hardening: Circuit breakers, rate limiting, or error handling
- Debugging: Understanding errors, fixing configuration, or resolving issues
- Learning: Understanding go-zero patterns and best practices
📚 Knowledge Structure
This skill organizes go-zero knowledge into focused modules. Load specific guides as needed rather than reading everything at once:
Quick Start Guide
Link: Official go-zero Documentation Contains: Installation, first API service, basic commands, hello-world examples (refer to official docs)
Pattern Guides (Detailed Reference)
1. REST API Patterns
File: references/rest-api-patterns.md When to load: Creating HTTP endpoints, implementing CRUD operations, adding middleware Contains:
- Handler → Logic → Context three-layer architecture
- Request/response handling with proper types
- Middleware (auth, logging, metrics, CORS)
- Error handling with
httpx.Error()andhttpx.OkJson() - Complete CRUD examples with ✅ correct vs ❌ incorrect patterns
2. RPC Service Patterns
File: references/rpc-patterns.md When to load: Building gRPC services, service-to-service communication Contains:
- Protocol Buffers definition and code generation
- Service discovery with etcd/consul/kubernetes
- Load balancing strategies
- Client configuration and interceptors
- Error handling in RPC contexts
3. Database Patterns
File: references/database-patterns.md When to load: Implementing data persistence, caching, or complex queries Contains:
- SQL operations with sqlx (CRUD, transactions, batch inserts)
- MongoDB integration patterns
- Redis caching strategies and cache-aside pattern
- Model generation with
goctl model - Connection pooling and performance tuning
4. Resilience Patterns
File: references/resilience-patterns.md When to load: Production hardening, handling failures, managing system load Contains:
- Circuit breaker configuration (Breaker)
- Rate limiting and API throttling
- Load shedding under pressure
- Timeout and retry strategies
- Graceful shutdown and degradation
Supporting Resources
Best Practices
File: best-practices/overview.md When to load: Production deployment, code review, optimization Contains: Configuration management, logging, monitoring, security, performance
Troubleshooting
File: troubleshooting/common-issues.md When to load: Debugging errors, configuration issues, runtime problems Contains: Common error messages, solutions, configuration pitfalls, debugging tips
Claude Code Integration
File: getting-started/claude-code-guide.md When to load: Setting up Claude Code for zero-skills usage Contains: Installation, invocation methods, advanced features (subagents, dynamic context)
🚀 Common Workflows
These workflows guide you through typical go-zero development tasks:
Creating a New REST API Service
Steps:
- Define API specification in
.apifile with types and routes - Generate code:
goctl api go -api user.api -dir . - Implement business logic in
internal/logic/layer - Add validation and error handling with
httpx - Test endpoints with proper request/response handling
Detailed guide: references/rest-api-patterns.md
Implementing Database Operations
Steps:
- Design database schema and create tables
- Generate model:
goctl model mysql datasource -url="..." -table="users" -dir="./model" - Inject model into ServiceContext in
internal/svc/service_context.go - Use sqlx methods in logic layer (
Insert,FindOne,Update,Delete) - Handle transactions and errors properly with
ctxpropagation
Detailed guide: references/database-patterns.md
Adding Middleware
Steps:
- Create middleware function in
internal/middleware/directory - Define middleware in
.apifile or register programmatically - Implement authentication/authorization logic
- Pass validated data through
r.Context() - Handle errors with appropriate HTTP status codes
Detailed guide: references/rest-api-patterns.md
Building an RPC Service
Steps:
- Define service in
.protofile with messages and RPCs - Generate code:
goctl rpc protoc user.proto --go_out=. --go-grpc_out=. --zrpc_out=. - Implement service logic in
internal/logic/ - Configure service discovery (etcd/consul/kubernetes)
- Test with RPC client and handle errors
Detailed guide: references/rpc-patterns.md
⚡ Key Principles
When generating or reviewing go-zero code, always apply these principles:
✅ Always Follow
- Three-layer separation: Keep Handler (routing) → Logic (business) → Model (data) distinct
- Structured errors: Use
httpx.Error(w, err)for HTTP errors, notfmt.Errorf - Configuration: Load with
conf.MustLoad(&c, *configFile)and inject via ServiceContext - Context propagation: Pass
ctx context.Contextthrough all layers for tracing and cancellation - Type safety: Define request/response types in
.apifiles, generate with goctl - goctl generation: Always use
goctlto generate boilerplate, never hand-write handlers/routes
❌ Never Do
- Put business logic directly in handlers (violates three-layer architecture)
- Return raw errors with
w.Write()orfmt.Fprintf()instead of using httpx helpers - Hard-code configuration values (ports, hosts, database credentials)
- Skip validation of user inputs or forget to check
err != nil - Modify generated code (customize via
logiclayer instead) - Bypass ServiceContext injection (leads to tight coupling and testing issues)
📖 Progressive Learning Path
Follow this path based on your needs:
🟢 New to go-zero?
-
Start here: Official go-zero Quick Start Install go-zero, create your first API, understand basic concepts
Connect to MySQL/PostgreSQL, generate models, implement CRUD
🟡 Building production services?
-
Review best practices: best-practices/overview.md Configuration, logging, monitoring, security checklist
-
Add resilience: references/resilience-patterns.md Circuit breakers, rate limiting, graceful degradation
-
Check common pitfalls: troubleshooting/common-issues.md Avoid typical mistakes and know how to debug issues
🔵 Extending capabilities?
-
Use with Claude Code: getting-started/claude-code-guide.md Learn advanced features like subagents, dynamic context, and argument passing Run demo projects to validate your environment
-
Verify knowledge: examples/verify-tutorial.sh Script to check if examples work correctly
🔗 Integration with go-zero AI Ecosystem
This skill is part of a three-tool ecosystem for AI-assisted go-zero development:
| Tool | Purpose | Best For |
|---|---|---|
| ai-context | Concise workflow instructions (~5KB) | GitHub Copilot, Cursor, Windsurf |
| zero-skills (this repo) | Comprehensive knowledge base (~40KB) | Claude Code, deep learning, reference |
| mcp-zero | Runtime tools (execute goctl commands) | Claude Desktop/Code for code generation |
Usage in Claude Code:
- This skill loads automatically when working with go-zero projects
- Use
/zero-skillsto invoke manually for go-zero guidance - Combine with mcp-zero tools for automatic code generation
- Reference specific pattern files when needed (Claude loads them on demand)
See getting-started/claude-code-guide.md for detailed usage instructions.
🌐 Additional Resources
- Official docs: go-zero.dev - Latest API reference and guides
- GitHub: zeromicro/go-zero - Source code and examples
- Community: Discussions, issues, and contributions welcome in the main repository
📝 Version Compatibility
- Target version: go-zero 1.5+
- Go version: Go 1.19 or later recommended
- Updates: Patterns updated regularly to reflect framework evolution
- Breaking changes: Check official docs for API changes between versions
Quick invocation: Use /zero-skills or ask "How do I [task] with go-zero?"
Need help? Reference the specific pattern guide for detailed examples and explanations.