Delegate a self-contained task to opencode as a one-shot subagent, from any coding agent that can run a shell command.
Single tool 'consult_opencode' has a clear, well-written description (186 chars) and properly typed input schema with Zod validation. Parameters are described and optional model defaults to a sensible value. However, the tool lacks output schema documentation, the response structure (text, cost fields) is not formally declared in the tool definition. Error handling returns structured responses with isError flag, but lacks recovery guidance. Tool annotations are present (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) which is good. The single-tool scope limits overall impact.
Delegate a self-contained task to opencode as an independent subagent. Defaults to opencode's own free-tier models (no API key needed). Use this to offload isolated work - research lookups, boilerplate, a second opinion - instead of spending your own turn on it.
Output schema not documented. Tool returns {content, structuredContent, isError} but this structure is not declared in the tool definition. LLMs cannot plan downstream operations without knowing what fields to expect.
Error messages lack recovery guidance. When the subagent fails, the response is 'opencode subagent (model) failed: <message>' with no suggestion for what the LLM should do next (retry, try a different model, ask user for clarification).
Tool name 'consult_opencode' does not follow verb_noun convention. 'consult' is somewhat ambiguous, 'delegate_to_opencode' or 'run_opencode_task' would be clearer about the action.
No timeout or rate-limit documentation. The tool spawns an external process with a 300s default timeout, but this constraint is not exposed in the tool description or parameter documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2025-06-18+ | v2 |
Model parameter description includes example values ('opencode/big-pickle', 'anthropic/claude-haiku-4-5'). LLMs may reuse these literally instead of adapting to actual available models.