plugins/formal-specification/skills/protobuf-design/SKILL.md
Protocol Buffers and Interface Definition Languages for service contracts
npx skillsauth add melodic-software/claude-code-plugins protobuf-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when:
Before creating protobuf definitions:
docs-management skill for API contract patterns| Benefit | Description | |---------|-------------| | Efficient | Binary format, 3-10x smaller than JSON | | Typed | Strong typing with code generation | | Versioned | Built-in backward/forward compatibility | | Cross-Language | Supports C#, Java, Python, Go, etc. | | gRPC Integration | Native service definition for gRPC |
syntax = "proto3";
package ecommerce.orders.v1;
option csharp_namespace = "ECommerce.Orders.V1";
import "google/protobuf/timestamp.proto";
service OrderService {
rpc GetOrder(GetOrderRequest) returns (Order);
rpc ListOrders(ListOrdersRequest) returns (ListOrdersResponse);
rpc WatchStatus(WatchRequest) returns (stream StatusUpdate);
}
enum OrderStatus {
ORDER_STATUS_UNSPECIFIED = 0;
ORDER_STATUS_DRAFT = 1;
ORDER_STATUS_SUBMITTED = 2;
}
message Order {
string id = 1;
string customer_id = 2;
OrderStatus status = 3;
google.protobuf.Timestamp created_at = 4;
}
For complete template: See proto-syntax.md
| Pattern | Syntax | Use Case |
|---------|--------|----------|
| Unary | rpc Get(Req) returns (Resp) | Simple CRUD |
| Server Stream | rpc List(Req) returns (stream Resp) | Large results, updates |
| Client Stream | rpc Upload(stream Req) returns (Resp) | Batch uploads |
| Bidirectional | rpc Chat(stream Req) returns (stream Resp) | Real-time sync |
For streaming patterns: See grpc-patterns.md
| Element | Convention | Example |
|---------|------------|---------|
| Package | lowercase.dots.version | ecommerce.orders.v1 |
| Service | PascalCase + Service | OrderService |
| RPC | PascalCase verb | CreateOrder |
| Message | PascalCase | OrderCreatedEvent |
| Field | snake_case | customer_id |
| Enum | SCREAMING_PREFIX_VALUE | ORDER_STATUS_DRAFT |
Load on-demand based on need:
| Reference | Load When | |-----------|-----------| | proto-syntax.md | Creating proto definitions, well-known types, advanced patterns | | grpc-patterns.md | Designing streaming services (server, client, bidirectional) | | csharp-implementation.md | Implementing gRPC in .NET/C# with ASP.NET Core | | schema-evolution.md | Planning schema changes, Buf CLI, versioning |
| Phase | Skill | Plugin | Purpose |
| ----- | ----- | ------ | ------- |
| DESIGN | protobuf-design (this skill) | formal-specification | Architecture research, pattern selection |
| AUTHORING | N/A | spec-driven-development | Gap: protobuf-authoring not yet created |
Workflow: Design (research gRPC patterns) → Author (create .proto files) → Generate (code generation)
Note: Unlike OpenAPI and AsyncAPI, protobuf authoring is typically straightforward enough that the design skill's C# implementation reference covers concrete creation. A dedicated
protobuf-authoringskill may be added if demand warrants.
For current protobuf patterns and tools:
perplexity: "Protocol Buffers proto3" "gRPC service design patterns"
context7: "grpc" (for official documentation)
microsoft-learn: "gRPC ASP.NET Core" (for .NET implementation)
Last Updated: 2026-01-17
development
Search Milan Jovanovic's .NET blog for Clean Architecture, DDD, CQRS, EF Core, and ASP.NET Core patterns. Use for finding applicable patterns, code examples, and architecture guidance. Invoke when working with .NET projects that could benefit from proven architectural patterns.
tools
Install and configure Data API Builder (DAB) for production SQL Server MCP access with RBAC
tools
Manage MssqlMcp servers - status, rebuild, and upstream updates
tools
Developer environment setup guides for Windows, macOS, Linux, and WSL. Use when setting up development machines, installing tools, configuring environments, or following platform-specific setup guides. Covers package management, shell/terminal, code editors, AI tooling, containerization, databases, and more.