Symora provides 8 well-named, read-only code intelligence tools with consistent verb-noun naming (get_, search_, list_, find_, analyze_). All tools have descriptions (avg ~80 chars) and documented input schemas with type definitions. However, output schemas are not documented in the visible code, parameter descriptions are minimal (often single phrases), and error handling guidance is absent. No tool annotations (readOnlyHint, etc.) despite all being read-only. Schemas are present but sparse, most parameters lack detailed constraints, ranges, or format guidance. This is solid foundational work but lacks the LLM-optimization depth of A-grade tools.
Analyze dependencies and imports for a file or symbol
Find all references to a symbol throughout the codebase
Get the content of a specific file in the project
Get a high-level overview of the project structure, including root files, directories, and language distribution
Get detailed information about a specific symbol including its definition, type, and location
List files in a directory with optional filtering by language or pattern
Search for text content across files in the project
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does search_symbols return file_path, line_number, symbol_type?). Breaks tool chaining.
Parameter descriptions are minimal (single phrases like 'Symbol name or search pattern'). Missing format guidance, constraints, and LLM-actionable context. E.g., search_symbols.limit has no min/max; get_file_content.start_line has no 1-indexed clarification in schema.
No tool annotations despite all 8 tools being read-only. Missing readOnlyHint in tool definitions. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
Search for symbols (functions, classes, variables, etc.) by name or pattern across the codebase
No error handling guidance. Tools return errors but do not guide LLM recovery (e.g., 'Symbol not found. Try search_symbols() with a partial name.' or 'File not found. Available files: ...'). Breaks agent self-correction.
Pagination not documented for list_files and search_* tools. No mention of limit enforcement, result caps, or next_cursor/offset patterns. Large result sets risk context window exhaustion.