Build tooling workflow
Skill gaelic-ghost/socket/plugins/server-side-jvm/skills/build-tooling-workflow
Inspect and maintain server-side JVM build tooling across Gradle, Maven, and SBT, including wrapper policy, Java toolchains, dependencies, multi-module boundaries, local run commands, tests, package tasks, and machine-local dependency guardrails.From its SKILL.md
npx -y skills add gaelic-ghost/socket --skill build-tooling-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
JVM Build Tooling Workflow
Purpose
Keep JVM build and dependency work grounded in the repository's real build tool.
The practical decision is which tool owns the project, which wrapper or pinned toolchain should be used, which module is affected, and which command proves the change without relying on machine-global state.
When To Use
- Use this skill when a JVM backend task touches Gradle, Maven, SBT, Java versions, dependencies, modules, package tasks, or local run commands.
- Use this skill before adding dependencies or changing build files.
- Use this skill when build failures need phase-aware triage.
- Use this skill when the repository shape is unclear and
choose-service-shapeidentified build tooling as the next owner.
Source Check
Use repo-local build files, checked-out dependency sources, Dash MCP or Dash HTTP for installed build-tool docsets, and then official build tool documentation when Dash/local coverage is missing or stale:
- Gradle User Manual
- Gradle Toolchains for JVM projects
- Maven documentation
- Maven Compiler Plugin documentation
- SBT Reference Manual
- SBT multi-project builds
Translate documentation rules into concrete build-file, command, or module decisions.
Inspection Workflow
- Identify the build owner:
- Gradle:
settings.gradle,settings.gradle.kts,build.gradle,build.gradle.kts,gradlew - Maven:
pom.xml,.mvn/ - SBT:
build.sbt,project/*.scala,project/*.sbt
- Gradle:
- Prefer repository wrappers:
- use
./gradlewwhen present - use
./mvnwwhen present - use
sbtonly after checking for repo-local launcher conventions
- use
- Inspect Java/toolchain policy:
- Gradle Java toolchains
- Maven compiler release/source/target
- SBT
javacOptions,scalacOptions,ThisBuild / scalaVersion, and JVM settings .java-version,.sdkmanrc,.tool-versions, or CI setup
- Inspect dependencies:
- Gradle version catalogs, platforms, constraints, and repositories
- Maven dependency management, parent POMs, profiles, and repositories
- SBT library dependencies, plugins, resolvers, and cross-versioning
- Inspect module boundaries:
- Gradle subprojects
- Maven modules
- SBT projects
- Java/Scala source sets
- shared JVM libraries versus Android modules
Command Selection
Choose the narrowest useful command first:
- Gradle compile:
./gradlew :module:classes - Gradle test:
./gradlew :module:test - Gradle full verification:
./gradlew test - Maven compile:
mvn -pl module -am test-compile - Maven test:
mvn -pl module -am test - Maven full verification:
mvn test - SBT compile:
sbt module/compile - SBT test:
sbt module/test - SBT full verification:
sbt test
Use the repository's documented commands when they differ.
Dependency Rules
- Use fetchable package repositories or source repositories only.
- Do not commit machine-local paths, local Maven repositories, local Ivy caches, unpublished local jars, or absolute paths.
- Preserve existing version catalog, dependency management, or plugin-management patterns.
- Add a new dependency only when it removes real complexity or matches an existing repo pattern.
- Keep dependency updates separate from feature work when the update has broad risk.
Failure Triage
Classify failures by phase:
- toolchain selection
- dependency resolution
- compile
- annotation processing or code generation
- test discovery
- test execution
- package or artifact creation
Report the command, module, phase, first meaningful error, likely cause, and smallest next check.
Output Shape
Return:
Build owner: Gradle, Maven, SBT, and wrapper command.Affected modules: module or project names.Toolchain policy: Java, Scala, and plugin version constraints.Dependency decision: add, update, preserve, or remove.Validation path: exact commands.Risk: build, dependency, generated-source, or cross-module risks.
Guardrails
- Do not mix Gradle, Maven, and SBT commands speculatively.
- Do not run multiple build or test commands concurrently.
- Do not add machine-local dependency paths.
- Do not change Java, Scala, Gradle, Maven, or SBT versions without explaining the compatibility impact.
- Do not make backend build decisions inside Android-owned modules unless the task is explicitly about a shared non-Android JVM library.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.