Add OpenCode runtime compatibility
Context
OpenCode (https://github.com/anomalyco/opencode) is a fast-growing AI coding agent that natively discovers skill files from .claude/skills/ and ~/.config/opencode/skills/. Its skill frontmatter schema is:
name (required)
description (required)
license (optional)
compatibility (optional) — recommended for discovery optimization
metadata (optional, string-to-string map) — arbitrary key-value for custom fields
(all other fields are ignored)
This repo's skills already work in OpenCode when placed in .claude/skills/ (OpenCode discovers that location). The skills' deliberate portability (no $ARGUMENTS, plain ## Input sections, multi-runtime intent) makes them an excellent fit.
Proposed scope
- Add
compatibility: opencode to all 55 SKILL.md frontmatter — inert field, signals OpenCode discovery.
- Nest rich fields (
intent, type, theme, best_for, scenarios, estimated_time) under metadata: — aligns with OpenCode's schema; preserves all semantics; OpenCode agents can still read them even though the skill tool only indexes name and description.
- Keep
argument-hint as top-level (Claude Code autocomplete relies on it; OpenCode ignores it harmlessly).
- Add ~3 lines to README: copy skills to
~/.config/opencode/skills/ or .opencode/skills/.
- Update
scripts/check-skill-metadata.py to recognize compatibility and metadata as valid fields.
Why this fits the repo's philosophy
This repo explicitly values portability across runtimes (the CONTRIBUTING.md rejects $ARGUMENTS for this reason). Adding OpenCode as an explicit runtime extends that portability promise without introducing runtime-specific syntax.
Non-goals
- No OpenCode-specific invocation syntax (no
!command, no runtime macros)
- No changes to skill body content
- No Claude Code marketplace changes
Ready to PR if maintainer is open to it.
Add OpenCode runtime compatibility
Context
OpenCode (https://github.com/anomalyco/opencode) is a fast-growing AI coding agent that natively discovers skill files from
.claude/skills/and~/.config/opencode/skills/. Its skill frontmatter schema is:name(required)description(required)license(optional)compatibility(optional) — recommended for discovery optimizationmetadata(optional, string-to-string map) — arbitrary key-value for custom fields(all other fields are ignored)
This repo's skills already work in OpenCode when placed in
.claude/skills/(OpenCode discovers that location). The skills' deliberate portability (no $ARGUMENTS, plain ## Input sections, multi-runtime intent) makes them an excellent fit.Proposed scope
compatibility: opencodeto all 55 SKILL.md frontmatter — inert field, signals OpenCode discovery.intent,type,theme,best_for,scenarios,estimated_time) undermetadata:— aligns with OpenCode's schema; preserves all semantics; OpenCode agents can still read them even though theskilltool only indexesnameanddescription.argument-hintas top-level (Claude Code autocomplete relies on it; OpenCode ignores it harmlessly).~/.config/opencode/skills/or.opencode/skills/.scripts/check-skill-metadata.pyto recognizecompatibilityandmetadataas valid fields.Why this fits the repo's philosophy
This repo explicitly values portability across runtimes (the CONTRIBUTING.md rejects $ARGUMENTS for this reason). Adding OpenCode as an explicit runtime extends that portability promise without introducing runtime-specific syntax.
Non-goals
!command, no runtime macros)Ready to PR if maintainer is open to it.