← ClaudeAtlas

protogenlisted

Generate compile-time-safe protobuf builders with the protogen-maven-plugin — proto2 required-field enforcement, proto3 presence-aware accessors, and oneof discriminators. Use when configuring the plugin, reasoning about the generated builder chain, or when the user says "generate builders", "protobuf builder", "required field", or "shift-left validation".
adamw7/tools · ★ 9 · AI & Automation · score 72
Install: claude install-skill adamw7/tools
# Protogen Skill Generate and use the compile-time-safe protobuf builders produced by `code/protogen-maven-plugin`. The point of this module is **shift-left**: stock protobuf builders only detect a missing `required` field at runtime (an `UninitializedMessageException` from `build()`), while the generated builder chain makes the same mistake **fail to compile**. ## When to Use - Wiring `protogen-maven-plugin` into a `pom.xml` - Explaining or debugging why generated builders won't compile until every required field is set - Questions about proto2 vs proto3 handling, presence accessors, or `oneof` - The user says "generate builders" / "protobuf builder" / "required field" / "shift-left validation" ## How the plugin is wired The plugin runs **after** protobuf classes exist, so it consumes the compiled `*.proto` output and emits builder sources. Bind its `code-generator` goal to a generate-sources phase, point it at the packages holding the generated protobuf messages, and name an output package for the builders: ```xml <plugin> <groupId>io.github.adamw7</groupId> <artifactId>protogen-maven-plugin</artifactId> <!-- Use the latest release: https://github.com/adamw7/tools/releases/latest --> <configuration> <generatedSourcesDir>${project.basedir}/target/generated-sources/</generatedSourcesDir> <pkgs> <param>io.github.adamw7.tools.code.protos</param> </pkgs> <outputpackage>io.github.adamw7.tools.code.builders</outpu