Privacy-first local RAG over personal data — encrypted, audit-logged
Cognis Recall exposes 4 tools with basic schemas and descriptions, but critical gaps undermine production readiness. Tool names lack action verbs (scan, relevant, add, audit are weak; should be scan_codebase, retrieve_documents, add_document, verify_audit_log). Descriptions are present but generic (10-80 chars, below the 50-200 char LLM-optimized baseline). Parameter descriptions exist but lack constraints, format guidance, and dependency hints. The 'passphrase' parameter appears in 3 tools as plaintext input, a critical security violation. Output schemas are not documented anywhere in the source. Error handling is absent, no recovery guidance, no categorization, no actionable messages. Tool composition is weak: 'relevant' and 'add' both require vault_path + passphrase, forcing repeated credential passing. No pagination, no batch operations, no idempotency markers.
Add a document to the encrypted vault
Show and verify the tamper-evident audit log
Retrieve the most relevant documents for a query from the encrypted vault
Privacy-first local RAG over personal data — encrypted, audit-logged
Passphrase exposed as plaintext tool parameter in 'relevant' and 'add' tools. Credentials must never appear in tool parameters, they are logged in traces and prompt history. Use server-side secret injection via environment variables or vault.
Tool names lack action verbs. 'scan', 'relevant', 'add', 'audit' are weak and ambiguous. Should be 'scan_codebase', 'retrieve_documents', 'add_document', 'verify_audit_log' to help LLMs infer intent from the name alone.
Output schemas are not documented. LLMs cannot plan downstream calls or extract the right data without knowing what fields to expect. Document the structure returned by each tool (e.g., scan returns {findings: [{id, sev, where}], score}).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
Parameter descriptions lack constraints and format guidance. 'vault_path' has no guidance on file format or location. 'query_text' has no length limits. 'k' has a default (5) but no min/max bounds. Add explicit constraints: 'vault_path: path to encrypted .vault file', 'k: number of results (1-100, default 5)'.
No error handling or recovery guidance. If scan fails on a permission error or add fails because the vault is locked, the LLM has no actionable next step. Add error categorization (retryable vs user-fixable) and recovery hints.