Konteks CLI exposes 6 tools with complete input schemas and descriptions. Naming follows verb_noun convention (recall, search, save_*, forget, warm_up). Descriptions are concise (20-80 chars) but lack depth on WHEN to use each tool and what downstream actions they enable. Parameter descriptions are present but minimal, most lack format constraints, ranges, or dependency hints. Output schemas are not documented in the source. Error handling and recovery guidance are absent. Tool composition is sound (each does one thing), but parameter design could better match the chat data model (e.g., 'focus' as free-form strings vs. structured queries).
Delete, invalidate, or suppress stored memory that is wrong, stale, sensitive, or no longer useful.
Recall compact, task-relevant project context before answering or working.
Persist one compact session diary entry.
Persist one or more structured durable memories.
Search stored memory directly and return matching records with IDs, sources, scores, and excerpts.
Load the stable project-wide briefing for the current repo.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., what does konteks_recall return? IDs? scores? sources?). Breaks tool chaining.
Parameter descriptions lack actionable constraints. 'focus' is described as 'Short natural-language focus statements' but no guidance on format, length, or examples. 'limit' has no min/max bounds. 'mode' enum values (hard_delete, invalidate, soft_delete) lack explanation of consequences.
Tool descriptions are too brief (50-80 chars) and lack WHEN/WHY guidance. 'Recall compact, task-relevant project context' does not explain when to call recall vs. search, or what 'compact' means. Agents cannot disambiguate similar tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If konteks_forget fails (e.g., ID not found), the tool provides no actionable next step. If konteks_save_memories rejects a memory due to schema violation, no guidance on how to fix it.
konteks_forget has optional parameters (id, mode, query, reason) with unclear mutual exclusivity. Can you call it with both id and query? What happens if neither is provided? Undocumented dependencies cause silent misuse.