A local agent reporting and archival system that collects routine outputs from AI agents and stores them with attachments, comments, and search capabilities
Single tool 'publish' has a well-structured input schema with all parameters typed and described. Tool description is comprehensive (200+ chars) and explains the action, side effects, and validation. However, output schema is not documented in the visible code, the response structure is inferred from implementation details (id, duplicate fields) but not formally declared. Error handling is present (HttpError with status codes) but lacks recovery guidance for LLMs. The tool follows verb_noun naming and accepts natural identifiers (routine, run_id). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite this being a destructive write operation.
Publish a report with title, routine, markdown content, run ID, optional published_at timestamp, and base64-encoded attachments. Validates input schema, checks for duplicates by run ID, stores attachments to object storage, records report metadata in database, and sends notifications.
Output schema not documented. Response structure (id, duplicate, etc.) is inferred from code but not formally declared in tool definition. LLMs cannot plan downstream operations without knowing return fields.
Destructive write operation lacks tool annotations. 'publish' modifies state (writes to DB, uploads files, sends notifications) but has no destructiveHint or idempotentHint annotation. LLMs cannot distinguish safe retries from risky re-executions.
Error responses lack recovery guidance. HttpError(409, 'This run ID already has different content...') tells the agent a conflict occurred but not what to do next (e.g., 'Use a new run_id or call get_report to inspect the existing one').
Attachments parameter lacks validation constraints in description. Base64 decoding, size limits (2MB per file, 5MB total), and MIME type validation occur in code but are not documented in the parameter description for LLM visibility.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
No pagination or result limiting documented. While this single-item tool does not return lists, the pattern of accepting arrays (attachments) without batch limits or chunking guidance could lead to oversized payloads.