From server-side-jvm
Choose the right server-side JVM project shape before implementation, including Java versus Scala language choice, Gradle/Maven/SBT ownership, framework fit, validation commands, package boundaries, Android handoffs, and documentation updates.
How this skill is triggered — by the user, by Claude, or both
Slash command
/server-side-jvm:choose-service-shapeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Pick the smallest correct JVM backend shape before code changes begin.
Pick the smallest correct JVM backend shape before code changes begin.
The practical decision is whether the work belongs in Java, Scala, future Clojure, a shared JVM library, a service framework, a build-tool maintenance pass, or a handoff to Android guidance.
Use repo-local JVM files, checked-out dependency sources, Dash MCP or Dash HTTP for installed JVM docsets, and then official or canonical documentation when Dash/local coverage is missing or stale. Check one of those source-specific paths before making claims about JVM, language, build, or framework behavior:
Translate any documentation rule into the concrete repository decision it changes.
settings.gradle, settings.gradle.kts, build.gradle, build.gradle.ktspom.xmlbuild.sbt, project/gradle.properties.java-version, .sdkmanrc, .tool-versionssrc/main/java, src/main/scala, src/test/java, src/test/scalaDockerfile, compose.yaml, docker-compose.ymlAndroidManifest.xml, com.android.application, or com.android.library./gradlew test or narrower tasks from the changed module.mvn test or narrower module commands.sbt test or scoped project/test commands.Use Java guidance when the repository is Java-first, the framework defaults to Java, or the change belongs inside an existing Java service.
Handoff:
server-side-jvm:build-java-service for implementationserver-side-jvm:build-tooling-workflow for Gradle, Maven, or SBT wiringserver-side-jvm:testing-workflow for testsUse Scala guidance when the repository is Scala-first, the user wants functional JVM design, or the service benefits from immutable data and explicit effect or async boundaries.
Handoff:
server-side-jvm:build-scala-service for implementationserver-side-jvm:build-tooling-workflow for Gradle, Maven, or SBT wiringserver-side-jvm:testing-workflow for testsUse a shared library when Android, backend, CLI, or multiple services need the same non-platform-specific behavior. Keep Android APIs out of a shared non-Android JVM library unless the module is explicitly Android-owned.
Preserve the existing framework. If starting fresh, decide the framework from constraints first:
Return:
Chosen shape: Java service, Scala service, future Clojure service, shared JVM library, framework-specific service, or maintenance pass.Language decision: Java, Scala, mixed, future Clojure, or user decision needed.Build owner: Gradle, Maven, SBT, wrapper command, and relevant modules.Framework fit: existing framework, recommended framework, or framework-neutral.Validation path: exact build and test commands.Next skill: the next server-side JVM or Android skill to use.npx claudepluginhub gaelic-ghost/socket --plugin server-side-jvmCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.