Source profileQuality 92/100

gaelic-ghost/socket/plugins/server-side-jvm/skills/build-java-service/SKILL.md

build-java-service

Implement and maintain idiomatic Java backend services, including package structure, records, sealed types, nullability, optionals, exceptions, concurrency, dependency boundaries, API and persistence seams, tests, and human-friendly diagnostics.

Source repository stars
6
Declared platforms
1
Static risk flags
0
Last source update
2026-08-21
Source checked
2026-08-25

Decision brief

What it does: where it fits

Implement and maintain idiomatic Java backend services, including package structure, records, sealed types, nullability, optionals, exceptions, concurrency, dependency boundaries, API and persistence seams, tests, and human-friendly diagnostics.

Best for

  • Use this skill when the repository is Java-first and the task changes backend behavior.
  • Use this skill when choose-service-shape routes implementation to Java.
  • Use this skill for Java service code, Java shared JVM libraries, Java API handlers, Java persistence adapters, and Java tests.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexDeclaredSource recordInstall path and trigger
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/gaelic-ghost/socket --skill "plugins/server-side-jvm/skills/build-java-service"
Safe inspection promptEditorial

Inspect the Agent Skill "build-java-service" from https://github.com/gaelic-ghost/socket/blob/1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d/plugins/server-side-jvm/skills/build-java-service/SKILL.md at commit 1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Implementation Workflow

    1. Inspect the existing Java shape: - package names - framework entry points - controller, route, handler, service, repository, and domain boundaries - records, classes, interfaces, enums, sealed types, and exceptions - nullability annotations or conventions - test framework and…

    Inspect the existing Java shape:package namesframework entry points
  2. 02

    Purpose

    Implement Java backend behavior without treating Java as the only JVM path.

    Implement Java backend behavior without treating Java as the only JVM path.The practical decision is how to fit the change into an existing Java service, keep domain behavior clear, choose framework boundaries deliberately, and prove the result with focused build and test commands.
  3. 03

    When To Use

    Use this skill when the repository is Java-first and the task changes backend behavior.

    Use this skill when the repository is Java-first and the task changes backend behavior.Use this skill when choose-service-shape routes implementation to Java.Use this skill for Java service code, Java shared JVM libraries, Java API handlers, Java persistence adapters, and Java tests.
  4. 04

    Source Check

    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:

    Java documentationOpenJDK documentationJava Language Specification
  5. 05

    Concurrency And Async

    Preserve the repository's concurrency model.

    Use blocking code only where the framework and runtime expect it.Use CompletableFuture, virtual threads, reactive types, or framework async APIs only when the existing project already uses them or the task requires that model.Do not introduce a second async abstraction for one small change.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars6SourceRepository attention, not individual Skill quality
Compatibility1 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
gaelic-ghost/socket
Skill path
plugins/server-side-jvm/skills/build-java-service/SKILL.md
Commit
1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Build Java Service

Purpose

Implement Java backend behavior without treating Java as the only JVM path.

The practical decision is how to fit the change into an existing Java service, keep domain behavior clear, choose framework boundaries deliberately, and prove the result with focused build and test commands.

When To Use

  • Use this skill when the repository is Java-first and the task changes backend behavior.
  • Use this skill when choose-service-shape routes implementation to Java.
  • Use this skill for Java service code, Java shared JVM libraries, Java API handlers, Java persistence adapters, and Java tests.
  • Use Android guidance instead when the task is Android app/platform Java.

Source Check

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:

Use framework documentation for framework-specific behavior. Translate documentation rules into concrete code, test, or validation decisions.

Implementation Workflow

  1. Inspect the existing Java shape:
    • package names
    • framework entry points
    • controller, route, handler, service, repository, and domain boundaries
    • records, classes, interfaces, enums, sealed types, and exceptions
    • nullability annotations or conventions
    • test framework and fixture style
  2. Keep domain behavior separate from transport:
    • put routing, request parsing, and response formatting at the edge
    • keep pure transformations and validation in small Java types or methods
    • keep persistence adapters behind explicit interfaces only when there are real alternate callers or tests
  3. Model data intentionally:
    • use records for immutable data carriers when the project supports them
    • use sealed types when a closed hierarchy improves exhaustiveness or clarity
    • use enums for small stable sets
    • use Optional for return values where absence is expected, not for every field or parameter
  4. Handle errors clearly:
    • distinguish validation, not-found, conflict, dependency, and unexpected failures
    • keep operator-facing messages descriptive and concrete
    • include useful context without leaking secrets or personal data
  5. Add focused tests:
    • unit-test domain behavior without starting the full service when practical
    • add handler or integration tests when routing, serialization, auth, persistence, or framework behavior is the change
    • preserve existing JUnit, AssertJ, Mockito, Testcontainers, or framework-specific patterns

Concurrency And Async

Preserve the repository's concurrency model.

  • Use blocking code only where the framework and runtime expect it.
  • Use CompletableFuture, virtual threads, reactive types, or framework async APIs only when the existing project already uses them or the task requires that model.
  • Do not introduce a second async abstraction for one small change.
  • Keep timeouts, cancellation, and resource cleanup explicit around external calls.

Validation

Use server-side-jvm:build-tooling-workflow to choose exact commands.

Common validation shapes:

  • Gradle Java module: ./gradlew :module:test
  • Maven Java module: mvn -pl module -am test
  • SBT mixed JVM module: sbt module/test

Run broader validation before commit, push, PR, release, or cross-module behavior changes.

Output Shape

Return:

  1. Changed behavior: the Java service behavior or API changed.
  2. Code boundary: handler, service, domain, persistence, config, or test.
  3. Data model: records, classes, sealed types, enums, optionals, or existing convention.
  4. Error behavior: validation, not-found, conflict, dependency, or unexpected errors.
  5. Validation: exact build and test commands and results.

Guardrails

  • Do not convert Scala or Clojure code to Java unless the user asks.
  • Do not add dependency injection, interfaces, factories, or managers unless they remove real duplication or clarify a real boundary.
  • Do not hide build, test, or runtime failures behind vague error summaries.
  • Do not add local jars or machine-local dependency paths.
  • Do not let Android app/platform concerns leak into backend Java modules.

Frequently asked questions

What to verify before installation and use

What does the build-java-service source document cover?

Implement and maintain idiomatic Java backend services, including package structure, records, sealed types, nullability, optionals, exceptions, concurrency, dependency boundaries, API and persistence seams, tests, and human-friendly diagnostics.

How do I install build-java-service?

The source record exposes this install command: npx skills add https://github.com/gaelic-ghost/socket --skill "plugins/server-side-jvm/skills/build-java-service". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: codex.

Alternatives

Compare before choosing