Loading...
Loading...
Use when working with Protocol Buffer (.proto) files, buf.yaml, buf.gen.yaml, or buf.lock. Covers proto design, buf CLI, gRPC/Connect services, protovalidate constraints, schema evolution, and troubleshooting lint/breaking errors.
npx skill4agent add bufbuild/claude-plugins protobuf.protobuf.yamlbuf.gen.yaml.protobuf format -w && buf lintmake lintmake format| Task | Reference |
|---|---|
| Field types, enums, oneofs, maps | quick_reference.md |
| Schema evolution, breaking changes | best_practices.md |
| Validation constraints | protovalidate.md |
| Complete service examples | examples.md, assets/ |
| buf CLI, buf.yaml, buf.gen.yaml | buf_toolchain.md |
| Migrating from protoc | migration.md |
| Lint errors, common issues | troubleshooting.md |
| Proto API review checklist | review_checklist.md |
proto/
├── buf.yaml
├── buf.gen.yaml
└── company/
└── domain/
└── v1/
└── service.protoassets/buf.yamlbuf.build/bufbuild/protovalidatebuf.yamlbuf dep updateassets/buf.gen.*.yaml| Template | Use For |
|---|---|
| Go with gRPC |
| Go with Connect |
| TypeScript with Connect |
| Python with gRPC |
| Java with gRPC |
assets/proto/example/v1/| Template | Description |
|---|---|
| Entity message, BookRef oneof, enum |
| Full CRUD with batch ops, pagination, ordering |
buf format -w && buf lintreserved 4;
reserved "old_field_name";buf breaking --against '.git#branch=main'.string.uuid.string.email.string.uri.string.pattern.string.min_len.string.max_len.int32.gte.uint32.lte.enum.defined_only.enum.not_in = 0.repeated.min_items.repeated.max_items(buf.validate.field).required = true(buf.validate.oneof).required = truebuf format -wbuf lintbuf breaking --against '.git#branch=main'