Terminal ASCII avatar companion for Claude Code with TTS, state machine, and MCP server integration
Four tools with minimal descriptions (10-20 chars each) and empty input schemas for 3 of 4 tools. No parameter descriptions, no output schemas documented, no error handling guidance. Naming is verb-based but descriptions lack context for LLM selection. avatar_speak has a single required parameter with description, but others expose no parameters at all. No indication of idempotency, side effects, or recovery paths. Fails baseline: 94% of A+ tools have docstrings; 100% have param descriptions.
Return the avatar to idle state
Signal the avatar to enter listening state
Make the avatar speak text aloud with TTS and mouth animation
Signal the avatar to enter thinking state
Three of four tools have empty input schemas (no properties declared).
All tool descriptions are 10 - 20 characters ('Signal the avatar to enter thinking state' is 44 chars, but others are shorter). Baseline for A+ tools is 194 chars average. Descriptions lack WHEN to use, WHAT happens, and prerequisites.
No output schemas documented. LLMs cannot plan downstream calls or extract data. Baseline: 100% of A+ tools have documented return types.
No error handling guidance. If avatar_speak fails (TTS unavailable, socket error), LLM receives only 'Unknown tool' or generic error. No recovery hints, no categorization (retryable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY in metadata but not in schema. Unclear if avatar_speak is idempotent (calling twice with same text, does it speak twice or once?).