Add and ship OpenCode support for one Claude Code plugin at a time. Includes core migration to a reviewable `opencode-plugin/` adapter, maintainer-facing docs, and follow-up CI/versioning setup for package publishing or skill-copy drift checks.
92
92%
Does it follow best practices?
Impact
97%
1.25xAverage score across 2 eval scenarios
Passed
No known issues
Use this when designing tests or completion evidence.
By completion, provide evidence for:
.agents/ assets are readable or package-local copies exist when needed.SKILL.md parses as YAML frontmatter and includes name and description.mcp entries in opencode.jsonc / opencode.json when Claude MCP servers are present..opencode/ harness is intentional and documented.| Behavior | Test example |
|---|---|
| Input parsing | Given an OpenCode event payload, extract the same intent as the Claude hook. |
| Blocking/mutation | Validate the plugin blocks, throws, mutates, or allows exactly as intended. |
| State | State survives reload and rejects malformed files. |
| Path safety | Symlinks, path traversal, and missing files fail safely. |
| Fallback | Missing optional shared skill/script produces a documented fallback. |
| Non-regression | Existing Claude hook tests still pass unchanged. |
Useful package tests:
opencode-plugin/src/plugin.ts or opencode-plugin/plugin.js.opencode-plugin/package.json main and exports point to existing files.SKILL.md frontmatter and assert required name and description fields exist.opencode-plugin/skills/ contains copies, assert they match the declared shared source or document why they intentionally differ.For migrated MCP servers:
opencode.jsonc or opencode.json syntax for the chosen destination format.type.command as an array.url.env keys were renamed to OpenCode environment.mcp entries were resolved intentionally.If OpenCode is available and the user wants local dogfooding, create a small .opencode/plugins/<plugin>.ts shim and run OpenCode in the repo. Make clear this is a development harness, not the package distribution path.
Discovery checks for migrated surfaces:
| Surface | Check |
|---|---|
| Skills | Run opencode debug skill and confirm expected skills are listed. |
| Commands | Open the / palette and confirm expected commands are listed. |
| Agents | Open the @ picker and confirm expected agents are listed. |
| MCP | Run opencode mcp list and confirm expected servers are listed. |
| MCP auth | Run opencode mcp auth <name> for OAuth remote servers when needed. |
| Config | If skills do not appear, inspect OpenCode config/tool permissions and confirm the skill tool is enabled. |
| Wrappers | Confirm generated command/agent wrappers include frontmatter. |
Skills can be discoverable even when a UI view does not surface them. Prefer opencode debug skill for skill discovery evidence.
For experimental.* OpenCode APIs: