Locus provides 6 well-structured tools with explicit schemas and descriptions. All tools have clear verb-noun naming (locate, refs, hover, diagnostics, status, rename) and documented input parameters with types. However, descriptions are terse (10-50 chars), lacking context on WHEN to use each tool or dependencies between them. Output schemas are not documented in the source. Error handling is basic (generic try-catch). The rename tool lacks confirmation/dry-run pattern despite being destructive. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Get diagnostics for a file or workspace
Get hover information for a symbol at a given location
Locate a symbol by name in the workspace
Find all references to a symbol at a given location
Rename a symbol and get a preview of all changes
Get the status of all language servers
Tool descriptions are under 50 characters and lack context. 'Locate a symbol by name in the workspace' does not explain WHEN to use locate vs refs vs hover, or what 'symbol' means (function, class, variable?). LLMs cannot disambiguate.
Output schemas are not documented. Tools return structured data (e.g., refs returns locations, hover returns type info) but the response format is not visible in the source. LLMs cannot plan downstream calls or extract fields reliably.
rename tool is destructive (WRITE risk) but lacks confirmation/dry-run pattern. No dry_run parameter or preview-only mode. Agents can accidentally rename symbols across a codebase without review.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The rename tool is marked WRITE in the spec but the tool definition itself carries no annotation. Clients cannot infer safety properties.
Error handling is generic. server.ts catches all errors and returns 'error: <message>' with isError=true. No recovery guidance, no categorization (retryable vs user-fixable vs fatal), no invalid-value details.