Self-healing optimization monitor for Antigravity IDE. Exposes MCP tools so the AI agent running inside Antigravity can monitor and fix its own IDE's optimization state.
OTTO exposes 4 tools with minimal schema definition and sparse descriptions. All tools lack input parameter descriptions entirely (critical violation). Tool descriptions are present but generic (10-30 chars). No input schemas are visible in the source code, parameters are defined as empty objects {}. No output schemas documented. Error handling is absent. Tools combine multiple concerns (e.g., otto_fix_regressions does detection AND fixing). No parameter validation, no recovery guidance, no idempotency markers.
Auto-fix detected regressions
Return current baseline (read-only)
Run all health checks (read-only)
Snapshot current state as new baseline
All tools have empty input schemas (Input: {}). No parameter types, constraints, or descriptions visible. Violates pattern:constrained-input and pattern:tool-description.
Tool descriptions are under 20 characters (e.g., 'Run all health checks (read-only)' is 34 chars but lacks WHEN to use, WHAT it returns, and prerequisites). Descriptions must be 50-200 chars and answer: what, when, why, what does it return?
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. otto_health_check returns a list of check results but structure is undocumented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | <=2025-11-25 | v2 |
otto_fix_regressions combines detection and fixing in one tool. Should split into separate tools (detect_regressions, fix_regressions) so agent can compose them independently. Violates pattern:tool (single responsibility).
No error handling or recovery guidance. If a health check fails or baseline update fails, LLM receives no actionable next step. Violates pattern:recovery-guide.