← ClaudeAtlas

scalalisted

Enforces required tool order for Scala/Java projects. Compile/test: use the `bloop` CLI directly (bloop compile, bloop test) — never `sbt compile`/`sbt test`. Search/navigate: scalex first, then ast-grep, then a semantic/LSP-aware tool if one is available, then grep/ripgrep as last resort — this order is unconditional, even for single-file lookups. Trigger on: "compile this", "run the tests", "bloop compile", "sbt test", "build the project", "find where X is defined", "who implements this trait", "find usages of", "search this Scala codebase", or any Scala/Java compile, test, or code-search request.
tkolleh/skills · ★ 1 · Data & Documents · score 78
Install: claude install-skill tkolleh/skills
## What this skill enforces Two hard rules for working in Scala/Java projects, both aimed at the same problem: generic, language-agnostic tool defaults (`sbt compile`, `grep`) are slow or semantically blind compared to Scala-aware tools that already exist in this environment. Following the generic default "because it's obvious" silently produces slower feedback loops or missed call sites — this skill exists so that doesn't happen by default. 1. **Compilation and testing MUST go through the `bloop` CLI directly.** 2. **Code search/navigation MUST follow this fallback order: scalex → ast-grep → semantic/LSP tool (if available) → grep.** This order is unconditional — it applies even when you already know which file to look in. This skill is agent-agnostic: it names capabilities (a Scala symbol-intelligence CLI, a structural pattern-matching CLI, an optional semantic/LSP layer) rather than assuming one specific host's plugin or MCP ecosystem. Use whichever concrete tool your environment provides for each role — see the invocation notes under each tool below for how that resolves in Claude Code specifically. ## Compile and test: bloop only Use `bloop compile <project>` and `bloop test <project>` directly. Do **not** use `sbt compile` / `sbt test` for this purpose, and do not rely on Metals to trigger a build implicitly. **Why:** Bloop runs a persistent build server with warm incremental-compilation state. `sbt` reloads its JVM and rebuilds its build graph on every invo