nesift exposes 8 tools with complete input schemas and descriptions. Naming follows verb_noun convention (score_snippets, add_page, query, answer, list_pages, clear, search). Descriptions are present and contextual (avg ~120 chars), exceeding the 10-char minimum but below the 194-char production baseline. All tools have typed parameters with defaults. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is absent from descriptions. No tool annotations (readOnlyHint, destructiveHint) despite clear risk profiles (add_page=WRITE, clear=DESTRUCTIVE). Parameter descriptions lack format constraints (e.g., 'url' has no validation guidance; 'top_k' lacks range bounds). The 'lang' parameter description is minimal ('Use multilingual model'). No recovery guidance in tool descriptions.
Ingest multiple URLs in parallel.
Fetch a URL, extract clean text, chunk by heading, and index it into the active session. Returns title + chunk count + triage summary.
Synthesize an extractive answer with [N] citations.
Drop all indexed pages from the active session.
Show indexed URLs with title, chunk count, and triage summary.
Hybrid BM25 + embedding semantic search over indexed pages. Use --budget to fit results within a token budget.
Rank text snippets by semantic relevance to a query, without fetching any pages. Use this BEFORE downloading search results to skip irrelevant pages and save tokens.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining or data extraction.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools have clear risk profiles (add_page=WRITE, clear=DESTRUCTIVE, query=READ_ONLY) but LLMs cannot infer safety from names alone.
Parameter descriptions lack format constraints and ranges. 'url' has no validation guidance; 'top_k' lacks bounds (0 - N?); 'concurrency' unbounded (could cause resource exhaustion).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
One-shot SearXNG bridge: search → score → fetch top results → ingest → answer.
No error handling guidance in tool descriptions. LLMs cannot know what to do if a URL fetch fails, embedding model is unavailable, or SearXNG instance is unreachable.
add_batch description is minimal ('Ingest multiple URLs in parallel'). Does not explain when to use vs add_page, what concurrency means, or expected latency.