protobuf-schema-evolution

Enforce protobuf schema compatibility across Rust and Kotlin versions.

58|4|Updated Mar 8, 2026
One-click install
npx skills add https://github.com/po4yka/RIPDPI --skill protobuf-schema-evolution
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: protobuf-schema-evolution
Source: https://github.com/po4yka/RIPDPI/tree/main/.github/skills/protobuf-schema-evolution
Command: npx skills add https://github.com/po4yka/RIPDPI --skill protobuf-schema-evolution

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Protobuf Schema Evolution ensures that app data serialized as protobuf remains readable across versions by enforcing reserved field numbers and names, preventing silent data corruption during migrations, and aligning diagnostics contracts between Rust and Kotlin.

Core Features & Use Cases

  • Reserve and track field numbers and names to prevent collisions during proto evolution.
  • Enforce diagnostics wire contract symmetry and schema version alignment across Rust and Kotlin.
  • Provide migration guidance and testing practices, including golden fixture verification.

Quick Start

Run the migration checklist to update the proto definitions and regenerate golden fixtures.

Frequently Asked Questions about protobuf-schema-evolution

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prevent silent data corruption when evolving protobuf schemas?

To prevent silent data corruption during protobuf schema evolution, you must enforce reserved field numbers and names. This ensures deprecated fields are not reused accidentally, maintaining wire compatibility across serialized versions.

What is the best way to align protobuf diagnostics wire contracts between Rust and Kotlin?

Aligning protobuf wire contracts between Rust and Kotlin requires enforcing schema version governance and diagnostics symmetry. This verifies that both platforms serialize and deserialize messages identically across versions.

How do I run a migration checklist for updating protobuf definitions?

Running a protobuf migration checklist involves updating proto definitions and regenerating golden fixtures. This process validates schema version alignment and tests compatibility to ensure safe AppSettings and diagnostics migrations.

Why do I need reserved field numbers and name reservations in protobuf?

Reserved field numbers and names in protobuf prevent field collisions during schema evolution. Without reservations, reusing a deprecated field number causes silent data corruption because older clients misinterpret the new serialized bytes.

Can I verify protobuf schema compatibility using golden fixtures and tests?

Yes, you can verify protobuf schema compatibility using golden fixtures and tests. This method validates wire contracts by comparing serialized outputs against known-good fixtures, ensuring safe migration workflows.

Does this protobuf schema evolution approach support AppSettings migration workflows?

Yes, this protobuf schema evolution approach supports AppSettings migration workflows. It governs schema versions and defaults, ensuring that application settings serialized as protobuf remain readable across updates.