Local-first multi-capability AI operator with proof-backed execution
Servus AI exposes 18 tools with mixed quality. Most tools have descriptions (15/18), but many descriptions are vague or task-specific rather than LLM-optimized. Input schemas are present for all tools but vary in completeness, many lack parameter type definitions or constraints. Tool naming is inconsistent: some follow verb_noun (web_search, MemoryRead), others use PascalCase (ReadToolResult, ScratchpadList) which reduces discoverability. Critical gaps: no output schemas documented, no error handling guidance, no parameter validation rules stated. The coding-intent and TodoWrite tools have complex nested structures but lack clarity on when to use them vs alternatives. Web tools (web_search, web_extract, web_multi_fetch) are well-named but descriptions lack usage guidance. Overall, definitions support basic functionality but fall short of LLM-optimized patterns.
Exit plan mode and begin implementation.
Read durable Servus project memory for this repository. Use when a task depends on established project conventions, commands, architecture notes, or prior verified facts.
Write one durable Servus project memory fact. Use only for high-signal facts that are likely useful in future tasks: project commands, architecture conventions, important files, verified workflows, or stable constraints. Never store secrets, credentials, transient errors, one-off todos, or vague summaries.
Read a large Servus tool-result artifact created when tool output was truncated. Only session-owned coding tool-result artifacts can be read. Use the artifact path shown in the previous tool output.
List files in the session scratchpad directory.
Read a file from the session scratchpad.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Inconsistent tool naming: PascalCase (ReadToolResult, ScratchpadList, MemoryRead) mixed with snake_case (web_search, coding_state). LLMs struggle to parse intent from inconsistent conventions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Write or append to a file in the session scratchpad.
Send a continuation message to an active helper task.
Delegate a task to a helper subagent (explore, plan, review, verification, or custom).
Stop an active helper task.
Update the current coding todos.
Search available Servus tools by capability or behavior.
Record the intent for a coding task with structured analysis.
Signal that an implementation plan is ready.
Show the current Servus coding session state. Use this after compaction, helper returns, validation failures, or long tool runs to avoid stale assumptions.
Extract structured data from a web page. Supports: 'summary' (key info), 'links' (all URLs), 'headings' (page structure), 'tables' (tabular data), or 'all' (everything).
Fetch multiple URLs in parallel. Returns the text content of each. Max 5 URLs at a time.
Search the web for information. Returns titles, URLs, and snippets. Uses DuckDuckGo HTML search — no API key needed. Good for: finding relevant pages, getting an overview of a topic, discovering URLs to fetch.
ScratchpadList, ToolSearch, TodoWrite have descriptions under 50 chars or lack actionable context. LLMs cannot determine when to call these vs alternatives.
No error handling guidance. Tools like Task, SendMessage, TaskStop do not document failure modes, retryability, or recovery steps.
Parameter constraints missing. web_search accepts numResults but no min/max stated; Task accepts subagent_type enum but no guidance on custom agent resolution.