src/main/resources/targets/claude/skills/core/dev/helidon-scaffold/SKILL.md
Scaffold a Helidon SE or MP service with routing, health checks, config, Dockerfile, and integration tests.
npx skillsauth add edercnj/ia-dev-environment helidon-scaffoldInstall 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.
Scaffolds a complete Helidon service module following the hexagonal architecture pattern. Supports both Helidon SE (reactive, functional) and Helidon MP (MicroProfile, CDI + JAX-RS). Produces:
WebServer builder; MP: Main.java)@Path resource)Dockerfile (multi-stage build)/helidon-scaffold <ServiceName> — scaffold Helidon MP service (default)/helidon-scaffold <ServiceName> --se — scaffold Helidon SE reactive service/helidon-scaffold <ServiceName> --mp — scaffold Helidon MP service explicitly| Parameter | Required | Description |
|-----------|----------|-------------|
| ServiceName | Yes | PascalCase service name (e.g., PaymentService, InventoryService) |
| --se | No | Use Helidon SE (reactive, functional routing) |
| --mp | No | Use Helidon MP (MicroProfile, CDI + JAX-RS) — default |
| --port | No | HTTP port (default: 8080) |
src/main/java/.../Main.java — Application entrypointsrc/main/java/.../adapter/inbound/rest/{ServiceName}Resource.java — HTTP endpointsrc/main/java/.../adapter/inbound/health/AppLivenessCheck.java — Liveness probesrc/main/java/.../adapter/inbound/health/AppReadinessCheck.java — Readiness probesrc/main/resources/application.yaml — Service configurationDockerfile — Multi-stage Docker build (JVM)src/test/java/.../adapter/inbound/rest/{ServiceName}ResourceTest.java — Integration testknowledge/stack-patterns/helidon/index.md — Helidon patternsknowledge/layer-templates.md — Layer templatesknowledge/architecture-hexagonal.md — Hexagonal conventionsHelidon MP:
public class Main {
public static void main(String[] args) {
io.helidon.microprofile.server.Main.main(args);
}
}
Helidon SE:
public class Main {
public static void main(String[] args) {
var server = WebServer.builder()
.config(Config.global().get("server"))
.routing(routing -> routing
.register("/api/v1", new {ServiceName}Service())
.get("/health/live", (req, res) -> res.send("UP"))
)
.build()
.start();
Runtime.getRuntime().addShutdownHook(new Thread(server::stop));
}
}
Follow knowledge/stack-patterns/helidon/index.md §1 JAX-RS pattern.
Follow knowledge/stack-patterns/helidon/index.md §4 MicroProfile Health pattern.
Multi-stage build:
FROM eclipse-temurin:21-jdk-alpine AS build
WORKDIR /app
COPY . .
RUN mvn -B package -DskipTests
FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
Integration test using HelidonTest annotation (MP) or WebServer programmatic start (SE).
USER appuser)/health/live and /health/ready implementedapplication.yaml (no hardcoded values)shutdownHook; MP: automatic)Thread.sleep() for async waitingknowledge/stack-patterns/helidon/index.md — Helidon patternsknowledge/layer-templates.md — Layer templatestesting
Scaffolds a Helidon SE/MP service with routing, health, config, Dockerfile, and tests.
tools
Generates a Picocli @Command with subcommands, options, converters, and unit tests.
testing
Scaffolds a Micronaut service with @Controller, DI, health, Dockerfile, and tests.
testing
Scaffolds a Helidon SE/MP service with routing, health, config, Dockerfile, and tests.