skills/.system/guicedee-vertx/SKILL.md
Build reactive services using Vert.x 5 inside the GuicedEE DI lifecycle: event-bus consumers, publishers, verticle deployment, codecs, throttling, clustering, SPI hooks, and JPMS module setup. Use when adding Vert.x event-bus messaging, deploying verticles, wiring reactive endpoints with Guice injection, configuring Vert.x runtime options, or implementing custom codecs and cluster managers.
npx skillsauth add guicedee/ai-rules guicedee-vertxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Wire Vert.x 5 into the GuicedEE lifecycle with zero manual bootstrap.
Vert.x starts automatically via SPI — never create Vertx manually:
IGuiceContext.instance().inject()
└─ VertXPreStartup (IGuicePreStartup) → creates Vertx, scans events, registers codecs
└─ VerticleBuilder → deploys verticles from @Verticle annotations
└─ VertxConsumersStartup → deploys one EventConsumerVerticle per address
└─ VertXModule (IGuiceModule) → binds Vertx, consumers, publishers into Guice
└─ VertXPostStartup (IGuicePreDestroy) → closes Vertx on shutdown
Bootstrap with:
IGuiceContext.registerModuleForScanning.add("my.app");
IGuiceContext.instance().inject();
com.guicedee:vertx dependency.module-info.java:
requires com.guicedee.vertx;opens consumer/publisher packages to com.google.guice and com.guicedee.vertxopens DTO packages to com.fasterxml.jackson.databind@VertxEventDefinition on methods (preferred) or classes.@Inject @Named("address") VertxEventPublisher<T>.@VertX, @EventBusOptions, @MetricsOptions, @FileSystemOptions, @AddressResolverOptions on package-info.java (preferred) or any class.VertxConfigurator, ClusterVertxConfigurator, VerticleStartup) and dual-register in module-info.java + META-INF/services/.public class OrderConsumers {
@VertxEventDefinition(value = "order.created",
options = @VertxEventOptions(worker = true))
public String handleOrder(Message<OrderRequest> message) {
return "Accepted: " + message.body().id();
}
}
EventConsumerVerticle deployed per address.Message<T> parameter gives raw access; any POJO parameter is Jackson-deserialized.void, a value, Uni<T>, or Future<T>.worker = true for blocking IO/DB work.@VertxEventDefinition("user.login")
public class LoginConsumer {
public void consume(Message<LoginRequest> message) { message.reply("OK"); }
}
@Inject @Named("order.created")
private VertxEventPublisher<OrderRequest> publisher;
publisher.request(order); // request/reply → Future<R>
publisher.send(order); // point-to-point fire-and-forget (throttled)
publisher.publish(order); // broadcast to all consumers (throttled)
publisher.publishLocal(order); // local-only broadcast
request() is immediate; send()/publish() are throttled (default 50 ms FIFO drain).
Vertx manually — use the injected instance from VertXModule.@VertX annotation per application.opens to com.google.guice and com.guicedee.vertx.opens to com.fasterxml.jackson.databind.module-info.java + META-INF/services/).worker = true for any blocking or IO-bound consumer.package-info.java is preferred for package-level annotations; classes work too.references/consumers-publishers.md — full consumer/publisher API, parameter/return tables, throttling config, environment variable overrides.references/verticles-runtime.md — @Verticle configuration, capabilities enum, runtime annotation details (@VertX, @EventBusOptions, etc.), SPI hooks, complete example project.references/module-graph.md — JPMS module graph and transitive dependencies.development
Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.
development
WebAwesome icon integration for JWebMP — modern, open-source icon library. Provides 1,500+ icons with solid/regular styles, sizing, rotation, animation, and CSS utilities. Drop-in FontAwesome alternative with fresh designs. Use when working with WebAwesome icons, modern icon designs, or as FontAwesome alternative in JWebMP applications.
development
WebAwesome Pro integration for JWebMP with premium icons and features. Extends jwebmp-webawesome with additional styles, premium icons, and advanced features. Use when working with WebAwesome Pro icons or premium WebAwesome features in JWebMP applications.