Local-first AI gateway and agent hub — run Slack tasks through Codex, Claude, or Antigravity with a web observation deck and MCP sub-agent support
Six tools with complete JSON schemas and parameter descriptions, but significant quality gaps. Tool names follow verb_noun convention (run_subagent, get_task_status, cancel_subagent_run, get_task_result, wait_for_authorization, list_agent_models). Descriptions are present but generic (10-60 chars), lacking WHEN/WHY context and recovery guidance. Parameters have types and descriptions, but many lack constraints (enums, ranges, patterns). No output schemas documented. Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Security concerns: authorization_request_id and client_id exposed as parameters; no mention of secret injection or permission gates.
Cancel a running subagent task
Get the result of a completed task
Get the status of a running or completed task
List available models for a given agent
Run a subagent with a prompt and return the result or status
Long-poll one workspace authorization request until the user decides
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (run_id, status, result structure). Violates pattern:tool and pattern:response-shaper.
Descriptions are too short (10-60 chars) and lack WHEN/WHY context. 'Run a subagent with a prompt and return the result or status' does not explain when to use this vs alternatives, what 'result or status' means, or what happens on failure. Violates pattern:tool-description baseline (194 chars avg).
No error handling guidance. Tools do not indicate which errors are retryable, user-fixable, or fatal. No recovery paths (e.g., 'If authorization times out, call wait_for_authorization again'). Violates pattern:recovery-guide and pattern:error-classification.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Parameters lack constraints. 'agent' accepts 'auto, codex, claude, antigravity' but is not declared as an enum. 'profile' and 'mode' have no enum constraints. 'timeout_sec' has no min/max bounds. Violates pattern:constrained-input.
Security: authorization_request_id and client_id exposed as tool parameters. If these are sensitive identifiers, they will be logged in agent traces. Violates pattern:secret-injection. No permission gates documented for destructive operations (cancel_subagent_run).