bce/java-cli-app/SKILL.md
Create and maintain multi-file Java 25 CLI applications packaged as executable JARs with zb (Zero Dependencies Builder). Use when asked to create a Java CLI application, a CLI project with multiple source files, or an executable JAR. Triggers on "Java CLI app", "CLI application", "multi-file Java", "executable JAR", "zb build", or requests for Java programs that need multiple source files or JAR packaging. Not for single-file scripts — use java-cli-script for those.
npx skillsauth add adambien/airails java-cli-appInstall 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.
Create or maintain a multi-file Java 25 CLI application using $ARGUMENTS. Apply all rules below strictly.
/bce skill. Feature business components (BCs) are direct children of the project package; boundary, control, entity only appear inside a BC, never directly under the project root.
src/main/java/
Main.java # unnamed package, compact source
<project>/<bc-a>/{boundary,control,entity}/
<project>/<bc-b>/{boundary,control,entity}/
<project>/<bc-c>/control/ # BC may have only the layers it needs
auth, users, billing), not technical concerns.boundary/control/entity directly under the project root, flag it as a BCE violation and propose feature BCs before scaffolding.zb.sh in the project root — it compiles all .java files from src/main/java/ and packages them into zbo/app.jarjava -jar zbo/app.jar--enable-preview — Java 25 is a GA release, all features used here are standard.java extension and live in the project directoryzb has no classpath or dependency resolution — all dependencies are bundled as source code directly in src/main/java/ under their original package structure.
How to add a dependency:
.java source files from that path into src/main/java/<package-path>/Common dependencies and their source locations:
| Dependency | Ask user for local path to | Fallback source | Copy to |
|-----------|---------------------------|----------------|---------|
| org.json (JSON processing) | org.json / z-JSON-java repo | https://github.com/AdamBien/z-JSON-java | src/main/java/org/json/ |
| zcfg (configuration) | zcfg repo | https://github.com/AdamBien/zcfg | src/main/java/airhacks/zcfg/ |
| zcl (colored logging) | zcl repo | https://github.com/AdamBien/zcl | src/main/java/ |
/zunit to generate and run unit tests for the projectString version = "YYYY-MM-DD.N"; instance variable (e.g., String version = "2026-02-12.1";)Main.java — no package declarationIO.println() for printing (or IO::println as method reference) — never System.out.println()Generic Java style, naming, structure, streams, exceptions, and comment rules come from the java-conventions skill.
tools
Generic, composable Java 25 code conventions — modern syntax, code style, naming, visibility, structure, methods, streams, exceptions, and documentation rules that apply across all Java contexts (single-file scripts, CLI apps, MicroProfile/Jakarta EE servers, libraries). Technology-neutral within the Java world; meant to be composed with context-specific skills (e.g. `java-cli-script`, `java-cli-app`, `microprofile-server`, `bce`). Use when writing, generating, or reviewing Java code anywhere the composed skill does not already specify style. Triggers on "Java conventions", "Java style", "Java code style", "modern Java", "Java 25", "idiomatic Java", or any request to write or review Java code where context-specific skills do not already cover style.
development
Architecture and coding rules for long-running Java MicroProfile / Jakarta EE server applications — BCE layering, business components (BC), JAX-RS resources, CDI, JSON-P, testing (unit/integration/system), and Maven project structure. Use when creating, generating, scaffolding, writing, or reviewing code, resources, entities, boundaries, or business components in MicroProfile server projects. Not for serverless deployments.
development
Generate a GitHub Actions pipeline that builds a zb (Zero Dependencies Builder) project and publishes a GitHub Release with the produced JAR. Use whenever the user wants CI/CD, a build pipeline, a release workflow, or GitHub Actions for a zb-based Java project — phrases like "set up GitHub Actions for this zb project", "add a zb release pipeline", "create a build workflow", "automate the zb build/release", or when a project has a .zb config and needs continuous builds/releases. Trigger even if the user doesn't say "zb" explicitly, as long as the project is a zb project (a .zb file is present and there is no Maven/Gradle build).
development
Build Java 25+ projects with zb (Zero Dependencies Builder). Use when compiling, building, packaging, or running Java projects that have no external dependencies. Triggers on "build with zb", "zb build", "compile and package", "create executable JAR", or when a .zb configuration file is present in the project. Not for projects requiring Maven/Gradle dependency management.