Three tools with complete schemas and descriptions, but significant gaps in error handling, output documentation, and parameter guidance. list_bonuses has verbose description with embedded instructions (anti-pattern). create_bonus lacks clarity on format expectations and side effects. No documented output schemas for any tool. Error handling present but generic, does not guide LLM recovery. Parameters mostly well-typed but missing some constraints and dependency documentation.
Create a new recognition bonus for an employee
Retrieve details of a specific bonus by its ID
List bonuses with optional filtering by date range, users, or hashtags. IMPORTANT: For team-specific analysis, use 'user_email' for each team member individually instead of global searches with 'limit' to ensure complete team coverage.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., bonus_id for chaining). Violates pattern:tool requirement.
list_bonuses description embeds procedural instructions ('use user_email for each team member individually') instead of declaring what the tool does. This is prompt-injection anti-pattern, instructions belong in agent planning, not tool descriptions.
create_bonus 'reason' parameter lacks format guidance. Description says 'e.g., +10 @john.doe for #teamwork' but does not specify whether this is required format, whether points are mandatory, or how the API parses it. LLMs will guess.
Error handling returns generic TextContent with category labels (Configuration Error, Authentication Error) but does not guide LLM on recovery. Missing pattern:recovery-guide, should suggest next steps like 'check BONUSLY_API_TOKEN' or 'call list_bonuses to verify access'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No pagination guidance in list_bonuses despite accepting 'limit' parameter. No mention of total count, next_cursor, or how to fetch remaining results. Violates pattern:paginated-result.