Universal Agentic AI Skill for BrowserOS browser automation and 40+ SaaS integrations via native shell CLI (browseros-cli) and MCP.
BrowserOS Skill exhibits significant definition quality gaps. Tool names lack action verbs (tabs, snapshot, read, run, observe are generic or incomplete). Descriptions are present but minimal (10-50 chars), below the 50-200 char LLM-optimized baseline. Input schemas are visible but lack depth: parameter descriptions are terse, no enums for constrained inputs, no output schemas documented. The 'run' tool accepts arbitrary JavaScript code with no validation guidance or security warnings. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear READ/WRITE distinctions. Composition is weak: 'run' duplicates functionality of other tools and accepts unbounded code input.
Observe page state with snapshot and diff capabilities
Extract content from a page in specified format
Execute in-memory multi-step SDK code for browser automation
Capture accessibility tree snapshot of a page
Manage browser tabs: create new tabs, list open tabs, close tabs
Tool names lack action verbs. 'tabs', 'snapshot', 'read', 'observe', 'run' are generic or incomplete. LLMs cannot infer intent from names alone. Should be: 'manage_tabs', 'capture_snapshot', 'extract_content', 'execute_code', 'observe_page'.
Descriptions are too short (10-50 chars, below 50-200 char baseline). 'Manage browser tabs' and 'Capture accessibility tree snapshot' lack context for when/why to use each tool vs alternatives. No dependency hints or prerequisites stated.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., 'tabs' list action returns what structure? Does it include page IDs needed by snapshot/read?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
'run' tool accepts arbitrary JavaScript code with no validation, sandboxing guidance, or security warnings. Exposes code injection risk. No description of what SDK APIs are available or constraints on execution.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear READ/WRITE risk labels. LLMs cannot distinguish safe vs destructive operations without explicit hints.