A Java-based agent framework with tool execution, session management, and MCP (Model Context Protocol) integration. Supports multiple LLM providers (Anthropic, OpenAI) and external MCP servers.
Two tools with explicit schemas and descriptions. bash tool has clear, actionable description (71 chars) and well-structured input schema with two parameters (command: required string, run_in_background: optional boolean). ask_user_question has comprehensive description (287 chars) and detailed nested schema for questions array with proper constraints (1-4 items, 2-4 options per question). However, both tools lack documented output schemas, critical for LLM planning. Parameter descriptions are present but minimal (e.g., 'The shell command to run' could specify format/constraints). No error handling guidance visible. Risk annotations (DESTRUCTIVE, READ_ONLY) are present but not formalized as tool annotations in the MCP sense.
Ask the human user 1-4 multiple-choice questions and get their answers. Use this when you need clarification on decisions the user must make (library choice, approach, feature scope, etc.). Blocks until user answers. **Do not add an 'Other' option** — the UI automatically appends one with a text box so the user can type a custom value. When the user picks it, you'll receive the answer as 'Other: <user text>'.
Run a shell command in the current working directory.
No output schemas documented for either tool. LLMs cannot plan downstream actions or extract return values without knowing what fields to expect.
bash tool accepts arbitrary shell commands with no input validation, sanitization, or injection guards visible. Destructive operations (rm -rf /) are not gated by confirmation or dry-run.
Parameter descriptions lack format/constraint details. 'The shell command to run' does not specify allowed commands, timeout, working directory behavior, or error handling.
ask_user_question description states 'Do not add an Other option' but does not explain why or what happens if user selects it. Guidance is incomplete.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
No error handling guidance. What happens if bash command times out, fails with non-zero exit, or is killed? What should the LLM do next?