guicedee-installer

Retrofit existing Maven modules to GuicedEE baseline standards: Maven 4 wrapper, JDK 25+, GuicedEE BOM import, and JPMS main/test module boundaries. Use when a project already exists and needs GuicedEE dependency management and compliant `module-info.java` plus `.test` package separation.

5 stars

Best use case

guicedee-installer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Retrofit existing Maven modules to GuicedEE baseline standards: Maven 4 wrapper, JDK 25+, GuicedEE BOM import, and JPMS main/test module boundaries. Use when a project already exists and needs GuicedEE dependency management and compliant `module-info.java` plus `.test` package separation.

Teams using guicedee-installer should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/guicedee-installer/SKILL.md --create-dirs "https://raw.githubusercontent.com/GuicedEE/ai-rules/main/skills/.system/guicedee-installer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/guicedee-installer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How guicedee-installer Compares

Feature / Agentguicedee-installerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Retrofit existing Maven modules to GuicedEE baseline standards: Maven 4 wrapper, JDK 25+, GuicedEE BOM import, and JPMS main/test module boundaries. Use when a project already exists and needs GuicedEE dependency management and compliant `module-info.java` plus `.test` package separation.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# GuicedEE Installer

Upgrade an existing module to the same baseline expected by `guicedee-creator`.

## Required Flow
1. Inspect current project state (`pom.xml`, wrapper files, source roots, module-info files).
2. Patch `pom.xml` to align with `references/retrofit-checklist.md`:
   - Java baseline set to 25+
   - GuicedEE BOM imported in `dependencyManagement`
   - Enforcer rules for Maven 4 and Java 25+
   - Testing baseline includes `org.junit.jupiter:junit-jupiter` (`test` scope), JUnit Jupiter `6.0.3+`, and Mockito
3. Ensure Maven wrapper points to Maven 4 (`.mvn/wrapper/maven-wrapper.properties`).
4. Create or repair:
   - `src/main/java/module-info.java`
   - `src/test/java/module-info.java`
   - ensure test module `requires` JUnit Jupiter module(s)
   - ensure every test package `opens ... to org.junit.platform.commons`
   - ensure packages requiring injection open to `com.google.guice`
   - ensure DTO/JSON deserialization packages open to `com.fasterxml.jackson.databind`
   - ensure Vert.x packages open to `com.guicedee.vertx`
   - safe default: open each used package to all required runtime targets
5. Create or repair bootstrap `main()` class with:
   - `LogUtils.addHighlightedConsoleLogger(Level.DEBUG)`
   - `IGuiceContext.registerModule("<mainModule>")`
   - `IGuiceContext.instance().inject()`
6. If lifecycle customization exists, ensure SPI implementations are correctly dual-registered:
   - `com.guicedee.client.services.lifecycle.IGuicePreStartup`
   - `com.guicedee.client.services.lifecycle.IGuiceModule`
   - `com.guicedee.client.services.lifecycle.IGuicePostStartup`
   - Ensure each implementation overrides `sortOrder()` (from `IDefaultService<J>`)
   - registrations required in both `module-info.java` and `src/main/resources/META-INF/services/*`
7. Apply package separation:
   - test module name defaults to `<mainModule>.test`
   - test package names end with `.test`
   - no duplicate package names between main and test source roots
8. Run creator validator when available:
   - `python3 ../guicedee-creator/scripts/verify_guicedee_baseline.py --project-root .`
   - If not installed side-by-side, apply the checklist manually.

## Migration Rules
- Prefer forward-only edits: change files to final target state in one pass.
- Do not keep old Java/Maven compatibility profiles when they conflict with Maven 4/JDK 25 baseline.
- Keep module/package naming deterministic to avoid split-package issues in JPMS tests.
- `pom.xml` must include `org.junit.jupiter:junit-jupiter` with `test` scope.
- Safe module rule: open used main packages to `com.google.guice`, `com.fasterxml.jackson.databind`, and `com.guicedee.vertx`; include `org.junit.platform.commons` for test packages.

## References
- `references/retrofit-checklist.md` - patch checklist and exact BOM snippet.

Related Skills

skill-installer

5
from GuicedEE/ai-rules

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).

guicedee-websockets

5
from GuicedEE/ai-rules

RFC 6455 WebSocket support for GuicedEE using Vert.x 5: call-scoped connections, action-based message routing via IWebSocketMessageReceiver SPI, group management and broadcasting, WebSocketServerOptions, and lifecycle hooks. Use when adding WebSocket messaging, implementing real-time communication, managing WebSocket groups, or creating message receivers.

guicedee-webservices

5
from GuicedEE/ai-rules

SOAP web services for GuicedEE using Apache CXF conventions: JAX-WS annotations (@WebService, @WebMethod, @WebParam, @WebResult), code-first and WSDL-first approaches, endpoint publishing, CXF interceptors and logging, MTOM, WS-Security (WSS4J), SOAP 1.1/1.2 bindings, and Guice DI integration. Use when creating SOAP services, publishing JAX-WS endpoints, configuring CXF bindings, or adding WS-Security.

guicedee-web

5
from GuicedEE/ai-rules

Bootstrap reactive HTTP/HTTPS servers with Vert.x 5 inside GuicedEE: Router setup, BodyHandler configuration, TLS/HTTPS, SPI extension points (VertxRouterConfigurator, VertxHttpServerOptionsConfigurator, VertxHttpServerConfigurator), per-verticle sub-routers, and environment-driven configuration. Use when setting up the Vert.x web server, configuring HTTP/HTTPS, adding custom routes or middleware, or managing server options.

guicedee-vertx

5
from GuicedEE/ai-rules

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.

guicedee-service-registry

5
from GuicedEE/ai-rules

Named service registry with health-aware resolution for GuicedEE. Register services by simple name, auto-construct URLs from cloud DNS suffix, monitor health status, resolve services via registry:name prefix or bare name in rest-client @Endpoint. Supports aliases, multiple external URLs, Kubernetes internal URLs, and per-service health paths. Use when registering named services, checking service health, resolving service URLs by name, or integrating with rest-client for service-to-service calls.

guicedee-rest

5
from GuicedEE/ai-rules

Build Jakarta REST (JAX-RS) services on Vert.x 5 inside GuicedEE: @Path/@GET/@POST route registration, parameter binding (@PathParam, @QueryParam, @HeaderParam, etc.), Guice-managed resource classes, response handling, content negotiation, and JPMS module setup. Use when creating REST endpoints, configuring Jakarta REST resources, or wiring JAX-RS services with Guice injection.

guicedee-rest-client

5
from GuicedEE/ai-rules

Annotation-driven REST client for GuicedEE using Vert.x 5 WebClient: @Endpoint declarations, RestClient<Send, Receive> injection, authentication strategies (Bearer, Basic, API Key, OAuth2, mTLS), path parameters, environment variable overrides, package-level endpoints, service registry integration (bare name or registry: prefix), and RestClientConfigurator SPI. Use when making outbound REST calls, configuring REST client endpoints, or wiring reactive HTTP clients with Guice injection.

guicedee-rabbitmq

5
from GuicedEE/ai-rules

Annotation-driven RabbitMQ integration for GuicedEE with Vert.x 5: @RabbitConnectionOptions, @QueueExchange, @QueueDefinition, QueueConsumer/QueuePublisher injection, exchange management, queue options (priority, TTL, prefetch), publisher confirms, environment variable overrides, and verticle-scoped connections. Use when adding RabbitMQ messaging, declaring exchanges and queues, creating consumers and publishers, or configuring AMQP topology.

guicedee-persistence

5
from GuicedEE/ai-rules

Reactive JPA persistence with Hibernate Reactive 7, Vert.x 5 SQL clients, and Mutiny sessions inside GuicedEE: DatabaseModule setup, persistence.xml configuration, multi-database support, @EntityManager scoping, and environment variable resolution. Use when adding database persistence, configuring Hibernate Reactive, creating DatabaseModule subclasses, wiring Mutiny.SessionFactory, or managing multiple persistence units.

guicedee-openapi

5
from GuicedEE/ai-rules

Automatic OpenAPI 3.1 spec generation and serving for GuicedEE with Vert.x 5: scans Jakarta REST resources at startup, serves /openapi.json and /openapi.yaml endpoints, Swagger annotations support, @OpenAPIDefinition configuration, and companion Swagger UI module. Use when generating API documentation, serving OpenAPI specs, or configuring Swagger annotations on REST resources.

guicedee-metrics

5
from GuicedEE/ai-rules

Application metrics for GuicedEE using Vert.x 5 Dropwizard Metrics and MicroProfile Metrics 5.1: @Counted, @Timed, @MetricMethod annotations, Guice AOP interceptors, Prometheus scrape endpoint, Graphite reporting, JMX exposure, @MetricsOptions configuration, environment variable overrides, and Vert.x built-in metrics (event bus, HTTP, pools). Use when adding application metrics, configuring Prometheus endpoints, creating custom counters/timers, or monitoring Vert.x internals.