scalalisted
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