← ClaudeAtlas

scalalisted

Enforces required tool order for Scala/Java projects. Compile/test: use the sbt server directly (a warm, long-running `sbt` shell session, or sbt's own BSP interface with `defaultBspToBuildTool = true`) — never Bloop, in any form, as the CLI or as the BSP backend. 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", "sbt 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 · API & Backend · 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 (a cold `sbt` invocation per command, `grep`) are slow or semantically blind compared to Scala-aware tools and usage patterns 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 a warm sbt server, never Bloop — not the `bloop` CLI, and not Bloop acting as the BSP backend.** 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: sbt server, always — never Bloop in any form Use a long-running `sbt` shell session for `compile` and `test`. If your editor/agent integration drives BSP instead, it must talk to **sbt's own BSP server**, not Bloop's. Do **not** shell