Graft provides 5 well-named, read-only tools with clear descriptions (avg 85 chars) and structured input schemas. All tools follow verb_noun naming (graft_map, graft_context, graft_search, graft_impact, graft_summary). Schemas include type definitions and descriptions for all parameters. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (path validation only, no recovery guidance). No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions lack format/constraint details (e.g., 'query' maxLength=500 not mentioned in description text). Missing pagination guidance for potentially large result sets.
Dependencies and definitions for a specific file.
Files affected by changing a given file.
Ranked tree map of the codebase by structural importance.
Find definitions by name or kind.
Project statistics, key files, and tech stack.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Breaks downstream tool chaining and forces LLMs to guess at field names.
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only and safe to retry, but LLMs cannot infer this without explicit hints.
Parameter descriptions lack constraint details. 'query' has maxLength=500 in schema but description does not mention this limit. LLMs cannot read JSON Schema, they rely on description text.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. Path validation returns 'path is outside project root' but does not suggest next steps (e.g., 'Use relative paths from project root').
graft_summary has empty input schema (no parameters). Description does not explain what statistics/files/tech stack are returned or how to interpret them.