一键导入
grpc-migration
Orchestrator for migrating CustomRPC to standard gRPC. Coordinates assessment, contract distribution, and error handling migrations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Orchestrator for migrating CustomRPC to standard gRPC. Coordinates assessment, contract distribution, and error handling migrations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
RFC-39 compliant API best practices for Java services. Covers request/response patterns, error handling, pagination, versioning, and authentication standards. Use when designing or reviewing REST APIs in Java services.
RFC-29 compliant changelog management with Common Changelog format and Unreleased section extension. Validates changelog on commits, generates from git history, and ensures all merged PRs are documented. Use when setting up changelog workflows or retrofitting existing repositories.
Systematic workflow for CodeRabbit reviews - local CLI, PR threads, and commit attribution
Enforces consistent coding standards across the codebase including naming conventions, code organization, and documentation requirements. Use when writing new code, reviewing pull requests, or refactoring existing code.
Database integration patterns for Java services using jOOQ and Flyway. Covers code generation, read/write splitting, migration guidelines, and version compatibility. Use when setting up or maintaining PostgreSQL integration.
Version catalog strategy, dependency management, BOMs, and version constraints for Java/Gradle projects. Covers version centralization, never-downgrade policy, bundle patterns, resolution strategies, and compatibility matrices.
| name | grpc-migration |
| description | Orchestrator for migrating CustomRPC to standard gRPC. Coordinates assessment, contract distribution, and error handling migrations. |
| compatibility | Java projects using CustomRPC with Failure entities; requires grpc-compliance-validate-repository |
| metadata | {"version":"1.0.0","technology":"java","category":"migration","tags":["java","grpc","migration","rfc-33","customrpc"]} |
| dependencies | grpc-compliance-validate-repository |
Orchestrator for migrating CustomRPC with Failure entities to standard gRPC error handling.
Use this skill when you need to:
Failure entities to standard gRPC error handling-generated (internal) modulessrc/main/proto/ to src/main/resources/{package/path}/grpc-compliance-validate-repository📚 references/ - Detailed documentation
The grpc-compliance-validate-repository command must be available before starting any migration.
Cloud agents: Pre-installed (no action needed).
Local setup:
export HOMEBREW_GITHUB_API_TOKEN=your-token
brew tap bitsoex/homebrew-bitso
brew install bitso-grpc-linter
brew install bufbuild/buf/buf
Verify: grpc-compliance-validate-repository --help
See ../grpc-services-rfc-33/references/installation.md for details.
1. ASSESSMENT
Run compliance validator → Document ERRORS
Use: grpc-migration-assessment
↓
2. CONTRACT DISTRIBUTION (for each proto module with ERRORS)
- Split into proto-only and -generated modules
- Move proto files to src/main/resources/{package/path}/
- Update all internal references
Use: grpc-migration-contract-distribution
↓
3. ERROR HANDLING (for each service with Failure responses)
- Create V2 service (e.g., TransferServiceV2)
- Move methods to V2 (no V2 suffix on method names)
- Compile protos and implement Java handlers
- Mark original methods with @replacedBy
Use: grpc-migration-error-handling
↓
4. VALIDATION
Run compliance validator again → Verify ZERO errors
Run full build and tests → Create comprehensive PR
| Sub-Skill | Purpose | When to Use |
|---|---|---|
grpc-migration-assessment | Initial compliance check | First step - identify all issues |
grpc-migration-contract-distribution | Proto module restructuring | Proto modules with compilation issues |
grpc-migration-error-handling | V2 service creation | Services using Failure entity |
grpc-compliance-validate-repository --dir .
Document all ERRORS found:
Failure entityFor each module/service:
⚠️ CRITICAL: Do NOT create PR until build passes
# 1. Run compliance check
grpc-compliance-validate-repository --dir . # Zero errors
# 2. Run build - MUST PASS
./gradlew clean build
# 3. IF BUILD FAILS:
# - Analyze error output
# - Fix compilation issues (imports, dependencies, typos)
# - Fix missing proto generations
# - REPEAT until build passes
# 4. Run tests
./gradlew test # Tests pass
# 5. ONLY THEN create PR
Build failure resolution loop:
BUILD FAILED → Analyze error → Fix issue → ./gradlew build → REPEAT until SUCCESS
Common build failures after migration:
Observability:
Maintainability:
Resiliency:
Proto Compilation Time:
generateProto may take 10-30 secondsgenerateProto in build pipeline before compileRuntime Performance:
google.rpc.Status with details has negligible overheadgRPC migration is a BREAKING CHANGE. You MUST bump the MAJOR version in the protobuf module's gradle.properties BEFORE creating a PR.
# {proto-module}/gradle.properties
# Before: version=1.2.3
# After: version=2.0.0
Why this is mandatory:
Failure to bump MAJOR version will:
Before starting migration, verify your plan does NOT:
The goal is additive changes only for service definitions.
The original service name must NEVER change. Renaming an existing service (e.g., adding V1 suffix) is a breaking change that will cause client failures.
| ❌ WRONG | ✅ CORRECT |
|---|---|
Rename FooService → FooServiceV1 | Keep FooService unchanged |
Then create FooServiceV2 | Add new FooServiceV2 alongside |
Why this matters:
FooService - if you rename it to FooServiceV1, all calls failExample of the WRONG approach (from real PR):
// ❌ WRONG: Original service was renamed
service SavingsPartnerManagementServiceV1 { ... } // Was SavingsPartnerManagementService
service SavingsPartnerManagementServiceV2 { ... } // New
// Result: All existing clients break immediately!
Example of the CORRECT approach:
// ✅ CORRECT: Original service preserved
service SavingsPartnerManagementService { ... } // Unchanged, may have @deprecated methods
service SavingsPartnerManagementServiceV2 { ... } // New service for new patterns
// Result: Existing clients continue working, new clients use V2
src/main/resources/-generated modules./gradlew clean build and fix ALL errors before PRprotos.model for new V2 servicesreferences/SHARED_TEMPLATES.md - PR and commit message templates/grpc-migration-assessment - Detailed assessment guidance/grpc-migration-contract-distribution - Proto module migration/grpc-migration-error-handling - V2 service creation