Workflow harness for optimizing Claude Code sessions with session continuity, feature management, automated startup rituals, git safety hooks, E2E testing with Playwright, lazy context loading, exploration caching, smart file filtering, and output compression
Claude-harness provides 9 browser automation tools with basic schemas and descriptions. All tools have input schemas with type definitions and parameter descriptions, meeting minimum requirements. However, descriptions are generic (avg ~40 chars, well below the 194-char baseline for A+ tools), lack actionable context about when to use each tool, and omit error recovery guidance. No output schemas are documented. Tools lack composition hints (e.g., navigate should mention it returns a URL for subsequent clicks). Error handling is minimal, tools return generic error dicts without recovery guidance. Naming is clear (verb_noun pattern) but descriptions fail to distinguish similar tools (click vs type both manipulate elements but lack differentiation). No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in the spec.
Click an element.
Fill an input field.
Get attribute value of an element.
Get text content of an element.
Launch a browser instance.
Navigate to a URL.
Take a screenshot.
Type text into an element (simulates real typing).
Wait for an element to appear in the DOM.
Descriptions are too brief (avg 30 chars vs 194-char baseline). Missing WHEN to use each tool, prerequisites, and error recovery guidance. E.g., 'Click an element' does not explain when to use click vs type, or what happens if selector not found.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., navigate returns {status, url, title, response_status} but this is not formally declared, forcing LLMs to infer structure.
Error handling returns generic dicts without recovery guidance. E.g., {error: 'Browser not launched'} does not tell LLM to call launch_browser first. Missing error classification (retryable vs user-fixable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications. launch_browser, click, fill, type are WRITE; navigate, screenshot, get_text, get_attribute, wait_for_selector are READ_ONLY. Annotations enable safer agent planning.
No composition hints. Tools lack cross-references (e.g., navigate should mention it returns a URL; click should mention it requires a selector from screenshot or get_attribute). Forces LLMs to discover tool chains via trial-and-error.