Rifflux provides 5 tools with complete input schemas and reasonable descriptions. All tools have verb-noun naming (search_, get_, index_, reindex) and clear parameter types. However, descriptions are terse (avg 80 chars vs baseline 194), lack WHEN/WHY context, and output schemas are not documented. The reindex tool accepts mutually exclusive parameters (path vs paths) without explicit documentation of the constraint. Error handling is minimal, no recovery guidance or actionable error messages visible in the code.
Get one indexed chunk by stable chunk ID, including metadata and content.
Get all indexed chunks and metadata for a specific absolute source file path.
Report current index counts and embedding backend/model configuration.
Index one path or multiple paths and optionally force a full rebuild.
Search indexed content using lexical, semantic, or hybrid retrieval modes.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., chunk_id from search results needed for get_chunk). Baseline: 100% of A+ tools document return types.
Descriptions lack WHEN/WHY context and are below baseline (avg 80 chars vs 194 baseline). E.g., 'Get one indexed chunk by stable chunk ID' does not explain when to call it vs search_rifflux, or what fields are returned.
reindex tool has mutually exclusive parameters (path vs paths) but does not document the constraint. LLMs may pass both, causing ambiguous behavior.
No error handling guidance visible. Code raises RuntimeError with hints (e.g., 'rebuild the DB'), but no structured error classification (retryable vs user-fixable vs fatal) for LLM recovery.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
search_rifflux accepts top_k (1-100, default 10) but no pagination or next_cursor for large result sets. Baseline: tools returning lists should support pagination.