Scala has a well-known problem: it can be written in many styles, from Java-with-semicolons to pure functional with category theory abstractions. AI assistants without explicit guidance default to the most common patterns in their training data — which is often Java-style Scala from older codebases.
The result: mutable variables, null checks, raw Future.map chains without proper error handling, and classes where case classes belong.
A CLAUDE.md file tells the AI which Scala you're writing. Here are the 13 rules that matter most.
Rule 1: Scala version and style target
Scala version: 3.x (Scala 3 syntax — no Scala 2 `implicit` keyword, use `given` / `using` ). Style: functional-first. Immutable by default. Effects tracked explicitly. Framework: [Akka / ZIO / Cats Effect / Play — specify yours] Build: sbt with explicit dependency versions pinned in build.sbt.
Enter fullscreen mode
Exit fullscreen mode
Scala 3 changed the syntax for implicits, extension methods, and type classes significantly.…