protobuf_skill

This skill helps you design, validate, and troubleshoot Protocol Buffer schemas and buf tooling for robust gRPC and Connect services.

7

GitHub Stars

1

Bundled Files

3 weeks ago

Catalog Refreshed

2 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstart where the catalogue uses aiagentskills.

npx veilstart add skill bufbuild/claude-plugins --skill protobuf

  • SKILL.md4.5 KB

Overview

This skill helps engineers design, edit, and validate Protocol Buffer schemas and Buf configuration files for production APIs. It covers .proto authoring, protovalidate constraints, buf CLI workflows, code generation templates, and troubleshooting lint or breaking-change errors. Use it to enforce consistent schema style, safe schema evolution, and reliable codegen across languages.

How this skill works

I inspect existing .proto files and Buf configs to match project conventions, then propose or modify proto definitions with required protovalidate constraints. I recommend and generate buf.yaml and buf.gen.yaml snippets for your target languages and toolchains, and I validate changes with the recommended Buf commands (format, lint, breaking). When issues appear, I diagnose lint and breaking errors and suggest minimal, safe fixes.

When to use it

  • Creating or editing .proto files for gRPC or Connect services
  • Adding protovalidate constraints to ensure production-safe inputs
  • Setting up or updating buf.yaml, buf.gen.yaml, or buf.lock for code generation
  • Verifying schema evolution and preventing breaking changes before merge
  • Troubleshooting buf lint or buf breaking errors reported in CI

Best practices

  • Match existing project style for naming, field ordering, and docs before adding new proto files
  • Add protovalidate constraints to every field (format, bounds, required) for production APIs
  • Use next sequential field numbers; reserve numbers/names when removing fields
  • Always run buf format -w && buf lint after edits; use make lint/format if provided
  • Run buf breaking --against '.git#branch=main' when modifying existing schemas

Example use cases

  • Add a new optional email field with .string.email and max length validation to a User proto
  • Create buf.gen.*.yaml config to generate Go gRPC and TypeScript Connect clients simultaneously
  • Migrate a legacy protoc-based project to Buf with buf.yaml and dependency protovalidate
  • Resolve a buf lint error by fixing a naming violation and applying buf format
  • Verify a refactor won’t break clients by running buf breaking against main

FAQ

Add type-appropriate constraints: format validators for strings (uuid, email, uri), min/max lengths, numeric ranges, enum defined_only, and mark required fields with (buf.validate.field).required = true.

How do I safely remove a field?

Reserve the field number and name using reserved, update consumers, and run buf breaking --against '.git#branch=main' to confirm no breaking changes.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational