Files
NowChessSystems/CLAUDE.md
T
Janis d675966436
Build & Test (NowChessSystems) TeamCity build finished
refactor: replace return/var in castlingTargets with functional style (#4)
Reviewed-on: #4
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2026-03-25 08:48:49 +01:00

2.1 KiB

CLAUDE.md — NowChessSystems

Stack

Scala 3.5.x · Quarkus + quarkus-scala3 · Hibernate/Jakarta · Lanterna TUI · K8s + ArgoCD + Kargo · Frontend TBD (Vite/React/Angular/Vue)

Structure

build.gradle.kts / settings.gradle.kts   # root; include(":modules:<svc>") per service
modules/<svc>/build.gradle.kts + src/
docs/adr/  docs/api/  docs/unresolved.md

Versions in root extra["VERSIONS"]; modules read via rootProject.extra["VERSIONS"] as Map<String,String>.

Commands

./gradlew build
./gradlew :modules:<svc>:build|test
./gradlew :modules:<svc>:test --tests "de.nowchess.<svc>.<Class>"

Workflow

  1. Plan — restate requirement, list files, flag risks. Proceed unless genuine ambiguity.
  2. Tests first — cover only new behaviour.
  3. Implement — no scope creep.
  4. Verify — check each requirement; confirm green build.

Scala/Quarkus Rules

  • given/using only (no implicit); Option/Either/Try (no null/.get)
  • jakarta.* only; reactive I/O (Uni/Multi), no blocking on event loop
  • Always exclude org.scala-lang:scala-library from Quarkus BOM
  • Unit tests: extends AnyFunSuite with Matchers — no @Test, no : Unit
  • Integration tests: @QuarkusTest + JUnit 5 — @Test methods need explicit : Unit

Coverage

Line ≥ 95% · Branch ≥ 90% · Method ≥ 90% (document exceptions) Check: jacoco-reporter/scoverage_coverage_gaps.py modules/{svc}/build/reports/scoverageTest/scoverage.xml ⚠️ Use scoverageTest/, NOT scoverage/.

Bug Fixing

Fix failures immediately without asking. After 3 failed attempts → log in docs/unresolved.md + surface summary.

Agents (new service)

Sequential: architect → scala-implementer → test-writer → gradle-builder → code-reviewer (review only, no self-fix) Parallel: only when services are fully independent (no shared contracts/state).

Unresolved (docs/unresolved.md)

Append only, never delete:

## [YYYY-MM-DD] <title>
**Requirement/Bug:** **Root Cause:** **Attempted Fixes:** **Next Step:**

Done Checklist

  • Plan written · files created/modified · tests green · requirements verified · unresolved logged