grpc-golang – skill Lập trình cho agent AI
Xây dựng dịch vụ gRPC sẵn sàng production trong Go với mTLS, streaming và observability. Dùng khi thiết kế contract Protobuf với Buf hoặc triển khai transport bảo mật giữa các service.
Cài skill grpc-golang bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/grpc-golang-1244a.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /grpc-golang – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/grpc-golang-1244a.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $grpc-golang – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/grpc-golang-1244a.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /grpc-golang – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/grpc-golang-1244a.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /grpc-golang – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
gRPC Golang (gRPC-Go)
Overview
Comprehensive guide for designing and implementing production-grade gRPC services in Go. Covers contract standardization with Buf, transport layer security via mTLS, and deep observability with OpenTelemetry instrumentation.
Use this skill when
- Designing microservices communication with gRPC in Go.
- Building high-performance internal APIs using Protobuf.
- Implementing streaming workloads (unidirectional or bidirectional).
- Standardizing API contracts using Protobuf and Buf.
- Configuring mTLS for service-to-service authentication.
Do not use this skill when
- Building pure REST/HTTP public APIs without gRPC requirements.
- Modifying legacy
.protofiles without the ability to introduce a new API version (e.g.,api.v2) or ensure backward compatibility. - Managing service mesh traffic routing (e.g., Istio/Linkerd), which is outside the application code scope.
Step-by-Step Guide
1. Confirm Technical Context: Identify Go version, gRPC-Go version, and whether the project uses Buf or raw protoc.
2. Confirm Requirements: Identify mTLS needs, load patterns (unary/streaming), SLOs, and message size limits.
3. Plan Schema: Define package versioning (e.g., api.v1), resource types, and error mapping.
4. Security Design: Implement mTLS for service-to-service authentication.
5. Observability: Configure interceptors for tracing, metrics, and structured logging.
6. Verification: Always run buf lint and breaking change checks before finalizing code generation.
Refer to resources/implementation-playbook.md for detailed patterns, code examples, and anti-patterns.
Examples
Example 1: Defining a Service & Message (v1 API)
syntax = "proto3";
package api.v1;
option go_package = "github.com/org/repo/gen/api/v1;apiv1";
service UserService {
rpc GetUser(GetUserRequest) returns (GetUserResponse);
}
message User {
string id = 1;
string name = 2;
}
message GetUserRequest {
string id = 1;
}
message GetUserResponse {
User user = 1;
}Best Practices
- ✅ Do: Use Buf to standardize your toolchain and linting with
buf.yamlandbuf.gen.yaml. - ✅ Do: Always use semantic versioning in package paths (e.g.,
package api.v1). - ✅ Do: Enforce mTLS for all internal service-to-service communication.
- ✅ Do: Handle
ctx.Done()in all streaming handlers to prevent resource leaks. - ✅ Do: Map domain errors to standard gRPC status codes (e.g.,
codes.NotFound). - ❌ Don't: Return raw internal error strings or stack traces to gRPC clients.
- ❌ Don't: Create a new
grpc.ClientConnper request; always reuse connections.
Troubleshooting
- Error: Inconsistent Gen: If the generated code does not match the schema, run
buf generateand verify thego_packageoption. - Error: Context Deadline: Check client timeouts and ensure the server is not blocking infinitely in streaming handlers.
- Error: mTLS Handshake: Ensure the CA certificate is correctly added to the
x509.CertPoolon both client and server sides.
Limitations
- Does not cover service mesh traffic routing (Istio/Linkerd configuration).
- Does not cover gRPC-Web or browser-based gRPC integration.
- Version-specific sketches, not a supported-version matrix; verify current Go/gRPC-Go module requirements and APIs (e.g.,
grpc.Dialvsgrpc.NewClient). - Does not cover L7 gRPC-aware load balancer configuration (e.g., Envoy, NGINX).
- Does not address Protobuf schema registry or large-scale schema governance beyond Buf lint.
Resources
resources/implementation-playbook.mdfor detailed patterns, code examples, and anti-patterns.- [Google API Design Guide](https://cloud.google.com/apis/design)
- [Buf Docs](https://buf.build/docs)
- [gRPC-Go Docs](https://grpc.io/docs/languages/go/)
- [OpenTelemetry Go Instrumentation](https://opentelemetry.io/docs/instrumentation/go/)
Related Skills
- @golang-pro - General Go patterns and performance optimization outside the gRPC layer.
- @go-concurrency-patterns - Advanced goroutine lifecycle management for streaming handlers.
- @api-design-principles - Resource naming and versioning strategy before writing
.protofiles. - @docker-expert - Containerizing gRPC services and configuring TLS cert injection via Docker secrets.
Skill liên quan
- hasdata-cli – Truy cập qua dòng lệnh để tìm kiếm, thu thập dữ liệu web và lấy dữ liệu có cấu trúc.
- site-architecture – Khi người dùng muốn kiểm tra, thiết kế lại hoặc lên kế hoạch cấu trúc website, cấu trúc…
- skill-doctor – Dùng khi người dùng muốn chấm điểm thiết lập agent của mình dựa trên lịch sử hội thoại…
- hf-cli – Hướng dẫn upstream được tuyển chọn cho Hf Cli; dùng khi quy trình khớp với mục tiêu của…
- hig-components-controls – Chọn và đánh giá các điều khiển chọn và nhập liệu của Apple: toggle, segmented control…
- skill-tester – Xác thực, kiểm thử và chấm điểm chất lượng các skill trong hệ sinh thái claude-skills…
- hono – Xây dựng web API và ứng dụng full-stack siêu nhanh với Hono — chạy trên Cloudflare…
- html-injection-testing – Phát hiện và khai thác lỗ hổng HTML injection cho phép kẻ tấn công chèn nội dung HTML…