Append-only, SQLite-WAL-backed event log for cross-agent context/memory sharing between parallel research agents.
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and error guidance. Tool names follow verb_noun convention (append_delta, pull_deltas, list_tasks). Descriptions are present (avg 120 chars) but lack actionable context for LLM selection. Parameters have types but most lack descriptions (only task_id, agent_id, content, kind have brief descriptions). No output schema documentation. Error handling returns raw error strings without recovery guidance. append_delta returns dict with 'error' or 'cursor' but structure is undocumented. pull_deltas and list_tasks return lists but field structure is inferred from code, not declared in schema.
Append a delta (a finding/result/tool-output) to the event log for a task. Raises on missing task_id/agent_id/content.
List every task_id currently in the event log, with its delta count.
Pull every delta for a task with id > since_cursor, oldest first. A cursor past the latest delta returns an empty list.
Output schemas not documented. append_delta returns {error|cursor}, pull_deltas returns list of delta objects, list_tasks returns list of {task_id, delta_count}. LLMs cannot plan downstream calls without knowing response structure.
Error handling lacks recovery guidance. append_delta catches InvalidDeltaError and returns {error: str(exc)}, but LLM receives raw exception message with no hint on what to do next (e.g., 'missing task_id, provide a non-empty string').
Parameter descriptions incomplete. 'kind' parameter has description but lacks enum constraint in schema (should be enum: [note, result, tool_output]). 'since_cursor' lacks description of what 'cursor' means or how it relates to delta IDs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Tool descriptions lack context for LLM selection. 'Pull every delta for a task with id > since_cursor' is terse and does not explain when to call this vs list_tasks, or what a 'delta' represents in the domain.
No pagination or result limits documented. pull_deltas returns all deltas since cursor with no limit parameter. If a task has 10k deltas, response could exhaust context window. No mention of max results or pagination strategy.