Skip to content

feat: add support for OpenCode #127

Description

@ryzizub

Description

OpenCode (https://opencode.ai). Tier-2 / wave-1 target under epic #51, alongside Codex (#46) and Gemini CLI (#125).

OpenCode is a "universal" agent: it reads .agents/skills/ directly (also .opencode/skills, ~/.config/opencode/skills, and .claude/skills), so once the repo is published to the open standard (#50), skills land in OpenCode for free.

Scope

  • Skills — verified to load from .agents/skills/ and to degrade where a referenced MCP tool is absent (Phase 0 feat: Phase 0 portability prep for open-standard support #126).
  • MCP — wire dart and very-good-cli servers via opencode.json.
  • Hooks — port the enforcement layer (auto analyze/format, CLI gating). NOTE: OpenCode uses a JS/TS plugin API, not the Claude JSON-over-stdin shell-hook contract, so this is a rewrite as an OpenCode plugin — more effort than Codex/Gemini. Scope carefully; the enforcement intent can also fall back to advisory skill instructions if the plugin work is deferred.
  • Subagent — OpenCode supports markdown subagents (mode: subagent, invoked via @mention). Port flutter-reviewer as an OpenCode agent.
  • AGENTS.md — OpenCode reads AGENTS.md natively (see feat: support AGENTS standard #49).
  • CI — loader job that installs the skills and asserts they load in OpenCode.

Docs: https://opencode.ai/docs/agents/ , https://open-code.ai/en/docs/skills

Requirements

  • Skills load in OpenCode via .agents/skills/
  • dart + very-good-cli MCP wired via opencode.json
  • Enforcement hooks ported as OpenCode plugin (or advisory fallback documented)
  • flutter-reviewer ported as an OpenCode subagent
  • OpenCode loader CI job added
  • All CI/CD checks are passing.
  • There is no drop in the test coverage percentage.

Additional Context

Part of epic #51. Tier 2 / wave 1 alongside Codex (#46) and Gemini CLI (#125).

Metadata

Metadata

Assignees

Labels

featureA new feature or requestp1High-priority issues at the top of the work list

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions