Where specs become law. A self-contained MCP suite that turns any repo into a spec-driven, agent-ready project: its own constitution (foundation), its own local code graph (Compass), its own spec-driven workflow (Lawbook), and opt-in skill packs (Tools). No external CLIs, no LLM to install.
speclaw provides 8 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (compass_explore, lawbook_change, speclaw_setup). Descriptions range from adequate (compass_explore: 95 chars) to verbose (lawbook_change: 95 chars). All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameters like 'action' enums are well-constrained, but complex tools like lawbook_change (14 params) lack clear dependency documentation. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels (WRITE vs READ_ONLY). Composition is reasonable, tools are single-purpose, but chaining IDs are not guaranteed in responses.
Analyze change context for a diff, including affected symbols and test impact
Explore a node's source, callers, callees, and blast radius in the code graph
Hybrid search (BM25+vector+name) across the code graph with concept weighting
Build, refresh, or monitor the local code graph index
Manage spec-driven workflow: init, list, validate, sync, archive changes, and analyze coverage/drift
Rank bug suspects from the code graph using symptom or stack trace
Evaluate an action against the project's declared laws and rules
No output schemas documented. LLMs cannot predict return structure, forcing them to guess what fields are available for downstream tool calls. This breaks tool chaining and wastes tokens on discovery.
lawbook_change has 14 parameters with complex interdependencies (e.g., 'mode' only valid for 'level' action, 'date' only for 'archive'). Dependencies are not documented in parameter descriptions, forcing LLMs to guess valid combinations.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk levels. compass_index (WRITE), lawbook_change (WRITE), speclaw_setup (WRITE) should be marked destructiveHint=true to warn agents of side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Initialize project, configure agents, manage skill packs, and list available packs
Error handling is not visible in tool definitions. No recovery guidance (e.g., 'If project not found, call speclaw_setup init first'). Agents cannot self-correct on failures.
speclaw_setup 'init' action returns instructions and metadata instead of executing initialization. This breaks the expected tool contract, agents expect tools to perform actions, not return guidance. Consider splitting into separate discovery and execution tools.