Substrate-general drift nose: surfaces meta-bugs where one contract/concept/value is expressed in N places that silently drift across code, prose, and config. Recall-first with persistent registry and calibration.
Both tools have reasonable names (verb_noun pattern) and descriptions (100-150 chars, within baseline 34-392 range). However, critical gaps undermine quality: input schemas are present but lack type information for several parameters (e.g., 'left', 'right' in calque_check are strings but no format/pattern constraints; 'seed_cmd' in calque_vocab_check is a string with no validation guidance). Parameter descriptions are minimal (10-30 chars) and fail to explain constraints, valid ranges, or dependencies. No output schemas are documented, LLMs cannot predict what these tools return or chain results to downstream calls. Error handling is absent from descriptions; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. The tools appear to be CLI wrappers (--strict, --bootstrap flags) rather than true MCP tools with structured I/O, suggesting tool definitions may be inferred rather than explicitly registered in the MCP framework.
Registry-aware gate: flag new/drifted suspects vs the registry (warn-only; --strict to exit 1)
Prose gate: flag compounds (freq ≥ min) not in the allow-list (.calque/vocab-allowlist.txt); --strict, --bootstrap, --seed-cmd, --exclude
No output schemas documented. LLMs cannot predict return structure, field names, or types. Breaks tool chaining and forces agents to guess at response format.
Parameter descriptions are too brief (<30 chars) and lack constraint details. 'Left boundary glob pattern' does not explain valid glob syntax, required format, or examples. Violates baseline of 72 chars average.
No error handling guidance in descriptions. Tools accept --strict flag but descriptions do not explain exit codes, error conditions, or recovery steps. LLMs cannot determine if errors are retryable.
Input schemas lack type constraints. 'min_score' is a number but no min/max bounds specified. 'seed_cmd' is a string but no format, length, or validation rules documented. Invites invalid LLM inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Tool definitions appear inferred from CLI flags rather than explicitly registered as MCP tools. No evidence of structured tool registration with full schemas in the MCP framework.