Multi-phase AI employee system with orchestration, sentinels, and skills for email, WhatsApp, invoice processing, and Odoo integration
Single tool (send_email) with adequate schema and description, but significant gaps in parameter documentation and error handling guidance. Tool description is 82 chars (within baseline 34-392), but lacks WHEN to use it and prerequisites. Parameters 'to', 'subject', 'body' have descriptions, but 'thread_id' is marked optional without explaining the consequence of omission. No output schema documented, LLM cannot predict response structure. Error handling returns status/error dict but provides no recovery guidance. No tool annotations (destructiveHint, idempotentHint). Missing composition context: no mention of authentication setup, credential management, or rate limits.
Send an email reply on behalf of the business owner via Gmail.
Output schema not documented. LLM cannot predict response structure (status/message_id vs status/error). Baseline: 100% of A+ tools document return types.
No error recovery guidance. Returns {status: failed, error: str} but does not tell LLM what to do next (retry? ask user? check credentials?). Baseline: pattern:recovery-guide requires actionable error messages.
Missing tool annotations. No destructiveHint (this tool sends email, irreversible), no idempotentHint (retrying with same params may send duplicate). Agents cannot reason about retry safety.
Description lacks WHEN to use and prerequisites. Does not mention Gmail API setup, OAuth flow, or credential requirements. LLM cannot determine if preconditions are met.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
thread_id parameter marked optional but consequence unexplained. Does omitting it create a new thread or fail silently? Baseline: undocumented dependencies cause silent misuse.