Single tool 'lineagemap_scan' has a basic description (58 chars) but critically lacks parameter descriptions. The input schema defines 'target' as a string with a description, but the tool description itself is vague about what 'column-level lineage' means, when to use it, or what the JSON output structure contains. No output schema is documented. The tool name uses a verb+noun pattern (good), but the description does not explain prerequisites, expected file formats, or error conditions. No error handling guidance is provided.
Column-level lineage extracted from SQL and dbt. Returns JSON findings.
Parameter 'target' lacks description in tool definition. The schema shows type:string but does not explain what paths are valid (file, directory, glob?), whether relative or absolute, or what happens if the path does not exist.
No output schema documented. Tool returns 'JSON findings' but LLM cannot know the structure (fields, types, nesting). This violates the requirement that tools document return types so agents can plan downstream calls.
Tool description (58 chars) is too vague. 'Column-level lineage extracted from SQL and dbt' does not explain WHEN to call it, WHAT it scans for, or WHAT the findings represent. Baseline descriptions are 194 chars; this is 30% of that.
No error handling guidance. If the target path is invalid, does not exist, or contains no SQL files, what does the tool return? How should the LLM recover?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Tool name 'lineagemap_scan' is domain-specific jargon. LLMs may not infer that this scans for SQL/dbt lineage without reading the description. Consider 'scan_sql_lineage' or 'analyze_column_lineage' for clarity.