Presents options to the user as tappable inline buttons in Telegram. Allows Claude to ask users for input via interactive buttons.
Single tool 'ask_user' has a complete input schema with proper types and constraints (minItems: 2, maxItems: 10). Description is clear and action-oriented (194 chars), explaining the Telegram button flow and critical instruction to STOP after calling. However, output schema is not documented, the response is hardcoded text with no structured return type specification. Parameter descriptions are adequate but lack format guidance. No error handling guidance for edge cases (e.g., file read failures, missing context). Security is reasonable (file-based IPC, directory permissions 0o700) but not formally documented in tool metadata.
Present options to the user as tappable inline buttons in Telegram. IMPORTANT: After calling this tool, STOP and wait. Do NOT add any text after calling this tool - the user will tap a button and their choice becomes their next message. Just call the tool and end your turn.
Output schema not documented. Tool returns hardcoded text response; LLM cannot infer structure or plan downstream actions. Per pattern:tool, all tools must document return types.
No error handling guidance. Tool silently falls back to shared context file if per-user file missing; LLM receives no indication of degradation. Per pattern:recovery-guide, errors must guide next steps.
Parameter descriptions lack format constraints. 'question' and 'options' lack guidance on length limits, character restrictions, or encoding.
Security model not exposed in tool metadata. File-based IPC, directory permissions, and context file lookup are implementation details; tool definition does not declare permissions or audit requirements per pattern:scope-declaration.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
No idempotency guarantee documented. Tool generates random UUIDs for each call; unclear if repeated calls with same question/options are safe or produce duplicate button prompts. Per pattern:idempotent-operation, state idempotency contract.