Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/adamw7/tools/protogennpx skills add adamw7/tools --skill protogengit clone --depth 1 https://github.com/adamw7/toolsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00072 | $0.01363 |
| Opus 5 | $0.00036 | $0.00681 |
| Sonnet 5 | $0.00014 | $0.00273 |
| Haiku 4.5 | $0.00007 | $0.00136 |
Grade A, and why
protogen scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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.
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:
<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</outputpackage>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>code-generator</goal>
</goals>
</execution>
</executions>
</plugin>
Mojo goal / parameters (CodeMojo, defaultPhase = GENERATE_SOURCES):
| Parameter | Property | Meaning |
|---|---|---|
generatedSourcesDir |
generatedsourcesdir |
Where the builder sources are written |
pkgs |
pkgs |
Packages to scan for compiled protobuf messages |
outputpackage |
outputpackage |
Package the generated builders go into |
Add the output directory as a source root (e.g. build-helper-maven-plugin's
add-source / add-test-source) so the builders are compiled with the rest of
the module.
How the goal talks to its user
This module is the one place in the repository whose production code does not
log through log4j2, and ProtogenArchitectureTest.pluginLogsThroughTheMojoLog
holds it to that:
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 111 lines · 72 tokens per session scan A 0133eadbf50e
protogen is a skill published in the GitHub repository adamw7/tools (11 stars, last pushed 4d ago), licensed MIT. It adds 72 tokens to every session and 1,363 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
union-type-wrappers
Add typed getters and setters over BinaryData properties that represent TypeSpec union types in generated Java models. Use when generated classes expose BinaryData for union-typed fields and you need ergonomic, type-safe accessors instead.
build-with-tinybase
Scaffold, extend, and verify reactive local-first JavaScript or TypeScript applications with TinyBase. Use when choosing TinyBase for in-memory tabular or key-value state, generating an app with create-tinybase, adding schemas or UI bindings, configuring browser or database persistence, configuring MergeableStore…
run-tests
Run project tests using Maven (mvn). Use when the user asks to run tests.
search-m2
Search for Java classes inside Maven dependencies in /.m2. Use when the user asks to locate classes or inspect JARs. Cross-reference pom.xml files in the current directory to resolve dependency names/versions.
evergreen
Evergreen CI infrastructure, configuration validation. Use when modifying .evergreen/ config, preparing to submit changes or understanding the Evergreen test matrix.