Browser automation daemon - WebSocket and IPC server for controlling browsers via CLI and browser extensions
Critical failures across naming, descriptions, and schemas. 30 tools listed but many lack visible schema definitions in source code. Duplicate tool names (snapshot, click, type, scroll appear 2-3 times each) violate single-responsibility principle. Descriptions are minimal (10-50 chars) and lack LLM-optimized guidance on WHEN to use each tool or what it returns. No parameter descriptions visible for most tools (e.g., 'drag' and 'mouse' have empty input schemas). No output schemas documented. Error handling and recovery guidance absent. Tool definitions appear scattered across multiple files (cli/src/commands/mod.rs, extension/src/content/index.ts, daemon/src/ws-server.ts) with no unified registration visible in source.
Navigate back in browser history
Check a checkbox element by reference
Click on an element identified by reference
Click on an element by reference
Double-click on an element by reference
Drag an element
Fill an input element with text
Find elements on the page
Duplicate tool names (snapshot, click, type, scroll appear 2-3 times). LLMs cannot disambiguate between versions and will select unpredictably. Violates single-responsibility principle.
Empty input schemas for 'drag', 'find', 'mouse' (Input: {}). Cannot validate parameters or guide LLM on what to pass.
Descriptions are minimal (10-50 chars) and lack LLM-optimized guidance. No explanation of WHEN to use each tool, what it returns, or dependencies. Rubric baseline: avg 194 chars, 50-200 for A+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Focus on an element by reference
Navigate forward in browser history
Get a property value from the page
Hover over an element by reference
Check if an element matches a condition
Perform mouse operations
Navigate to a URL in the current tab
Press a keyboard key
Scroll the page in a direction
Scroll the page in a specified direction
Scroll an element into view
Select an option in a select element
Take a snapshot of the current page with optional timeout
Take a snapshot of the current page
Close the current tab
List all open tabs
Open a new tab with optional URL
Switch to a specific tab by ID
Type text into an element with optional delay
Type text into an element
Uncheck a checkbox element by reference
Wait for a condition or timeout
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does 'find' return? element IDs? coordinates? HTML?). Rubric: 100% of A+ tools have documented return types.
Generic parameter names without type suffixes ('ref', 'what', 'key'). 'ref' could be ID, selector, or index. 'what' is ambiguous. Rubric: suffix with type (ref_id, ref_selector) or provide separate params.