Both tools have minimal, instruction-focused descriptions that fail to document what the tools actually do, when to use them, or what they return. Schemas are present but parameters lack descriptions. Tool names are action verbs but lack clarity about their role in the system. The server is designed as a terminal UI bridge, not a general-purpose tool suite, which limits applicability. No error handling guidance, no output schema documentation, and descriptions read like user instructions rather than LLM-optimized docstrings.
Send a short notification to the user's terminal status bar.
Send your full response to the user's terminal. The user is in a terminal-only session. Put your COMPLETE answer here. DO NOT write anything in your chat reply — leave it completely empty. No iMessage, no SMS, no Telegram. This tool is the ONLY way to respond.
Descriptions are instruction-focused, not LLM-optimized. Both tools describe what the USER should do ('Put your COMPLETE answer here') rather than what the TOOL does and when to call it. Descriptions under 20 chars of actual tool documentation.
Parameter 'text' and 'message' lack descriptions. LLMs cannot infer whether these accept plain text, markdown, ANSI codes, or have length limits.
No output schema documented. Tools return generic success messages ('Delivered to terminal', 'Notification sent') but LLMs have no way to know what fields to expect or how to chain these tools with others.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
No error handling guidance. If reply_to_terminal fails (e.g., terminal disconnected), the tool returns a generic error with no recovery path. Per pattern:recovery-guide, errors must tell the LLM what to do next.
Tool composition is unclear. Both tools emit events to a shared EventEmitter but the relationship between them and how an LLM should sequence them is undocumented. No guidance on when to use reply_to_terminal vs notify_terminal.