Source profileQuality 94/100

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

build-scala-service

Implement and maintain idiomatic Scala backend services, including immutable data modeling, algebraic data types, options/eithers, effect or future-based async boundaries, framework routing, module design, tests, and functional service structure.

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 Scala backend services, including immutable data modeling, algebraic data types, options/eithers, effect or future-based async boundaries, framework routing, module design, tests, and functional service structure.

Best for

  • Use this skill when the repository is Scala-first and the task changes backend behavior.
  • Use this skill when the user asks for functional JVM backend work and repo context does not point elsewhere.
  • Use this skill when choose-service-shape routes implementation to Scala.

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-scala-service"
Safe inspection promptEditorial

Inspect the Agent Skill "build-scala-service" from https://github.com/gaelic-ghost/socket/blob/1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d/plugins/server-side-jvm/skills/build-scala-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 Scala shape: - Scala version - SBT, Gradle, or Maven project layout - package and module names - framework entry points - effect model, future model, or synchronous style - test framework - formatting and lint expectations 2. Model data functionally: - pr…

    Inspect the existing Scala shape:Scala versionSBT, Gradle, or Maven project layout
  2. 02

    Purpose

    Implement Scala backend behavior with Scala as a first-class JVM path.

    Implement Scala backend behavior with Scala as a first-class JVM path.The practical decision is how to use immutable data, explicit effects or futures, clear module boundaries, and focused tests without translating Java service patterns into Scala syntax.
  3. 03

    When To Use

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

    Use this skill when the repository is Scala-first and the task changes backend behavior.Use this skill when the user asks for functional JVM backend work and repo context does not point elsewhere.Use this skill when choose-service-shape routes implementation to Scala.
  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:

    Scala documentationScala 3 BookSBT Reference Manual
  5. 05

    Framework Boundaries

    Preserve the existing framework unless the user asks for a framework decision.

    Keep http4s, ZIO HTTP, Akka/Pekko, Play, Spring, or framework-specific code at the service edge.Keep domain and validation code framework-light when it will be reused or tested independently.Do not make one framework's module structure the default for another framework.

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 score94/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-scala-service/SKILL.md
Commit
1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Build Scala Service

Purpose

Implement Scala backend behavior with Scala as a first-class JVM path.

The practical decision is how to use immutable data, explicit effects or futures, clear module boundaries, and focused tests without translating Java service patterns into Scala syntax.

When To Use

  • Use this skill when the repository is Scala-first and the task changes backend behavior.
  • Use this skill when the user asks for functional JVM backend work and repo context does not point elsewhere.
  • Use this skill when choose-service-shape routes implementation to Scala.
  • Use Java guidance instead for Java-dominant backend modules, and Android guidance for Android app/platform work.

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 Scala shape:
    • Scala version
    • SBT, Gradle, or Maven project layout
    • package and module names
    • framework entry points
    • effect model, future model, or synchronous style
    • test framework
    • formatting and lint expectations
  2. Model data functionally:
    • prefer immutable case classes for product data
    • use sealed traits or enums for closed alternatives
    • use Option for expected absence
    • use Either, validated values, or the repo's effect error channel for recoverable domain errors
    • avoid null unless interoperating with Java or a framework API that requires it
  3. Keep behavior composable:
    • write small pure functions for domain transformations where practical
    • keep routing, request decoding, and response encoding at the edge
    • pass dependencies explicitly through the repository's existing pattern
    • avoid abstracting with typeclasses unless the abstraction has more than one real use or matches local style
  4. Preserve the async/effect model:
    • use Future if the project is Future-based
    • use the repository's established effect system when one exists
    • do not introduce Cats Effect, ZIO, Akka/Pekko, or another runtime for one feature
    • keep resource acquisition, cancellation, retries, and timeouts explicit around external dependencies
  5. Add focused tests:
    • test pure domain behavior directly
    • add route or integration tests when serialization, auth, persistence, or framework behavior changed
    • preserve ScalaTest, MUnit, Weaver, or repository-selected style

Framework Boundaries

Preserve the existing framework unless the user asks for a framework decision.

  • Keep http4s, ZIO HTTP, Akka/Pekko, Play, Spring, or framework-specific code at the service edge.
  • Keep domain and validation code framework-light when it will be reused or tested independently.
  • Do not make one framework's module structure the default for another framework.

Validation

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

Common validation shapes:

  • SBT module: sbt module/test
  • SBT full check: sbt test
  • Gradle Scala module: ./gradlew :module:test
  • Maven Scala module: mvn -pl module -am test

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

Output Shape

Return:

  1. Changed behavior: the Scala service behavior or API changed.
  2. Functional boundary: pure domain, effectful service, route edge, persistence adapter, config, or test.
  3. Data model: case classes, sealed traits/enums, options, eithers, validated values, or existing convention.
  4. Effect model: synchronous, Future, Cats Effect, ZIO, Akka/Pekko, or existing runtime.
  5. Validation: exact build and test commands and results.

Guardrails

  • Do not treat Scala as Java with different syntax.
  • Do not introduce an effect system, framework, or typeclass abstraction without a real project reason.
  • Do not use null or exceptions for ordinary domain flow unless local conventions require it.
  • Do not convert Java modules to Scala unless the user asks.
  • Do not make Android app/platform concerns part of this skill.

Frequently asked questions

What to verify before installation and use

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

Implement and maintain idiomatic Scala backend services, including immutable data modeling, algebraic data types, options/eithers, effect or future-based async boundaries, framework routing, module design, tests, and functional service structure.

How do I install build-scala-service?

The source record exposes this install command: npx skills add https://github.com/gaelic-ghost/socket --skill "plugins/server-side-jvm/skills/build-scala-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