ring/platforms/opencode/ring-config.schema.json
Gandalf f85aa61440
feat: add OpenCode platform integration (consolidate ring-for-opencode)
Move OpenCode runtime plugin and installer into Ring monorepo under platforms/opencode/.
The installer reads skills, agents, and commands directly from the Ring monorepo's
canonical directories (default/, dev-team/, pm-team/, etc.) — zero asset duplication.

What's included:
- installer.sh: reads from Ring dirs, applies frontmatter/tool transforms, installs to ~/.config/opencode/
- plugin/: TypeScript runtime (RingUnifiedPlugin) with hooks, lifecycle, loaders
- src/: CLI (doctor, config-manager)
- prompts/: session-start and context-injection templates
- standards/: coding standards (from dev-team/docs/)
- ring.jsonc: default config with full 86-skill/35-agent/33-command inventory

What's NOT included (intentionally):
- assets/ directory: eliminated, content comes from Ring monorepo
- scripts/codereview/: eliminated, replaced by mithril
- using-ring-opencode skill: uses canonical using-ring instead

Transforms applied by installer:
- Agent: type→mode, strip version/changelog/output_schema/input_schema
- Skill: keep name+description frontmatter, body unchanged
- Command: strip argument-hint (unsupported by OpenCode)
- All: normalize tool names (Bash→bash, Read→read, etc.)
- All: strip Model Requirement sections from agents

Replaces: LerianStudio/ring-for-opencode repository
Generated-by: Gandalf
AI-Model: claude-opus-4
2026-03-07 22:46:47 -03:00

140 lines
No EOL
3.3 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/LerianStudio/ring-for-opencode/main/assets/ring-config.schema.json",
"title": "Ring Configuration",
"description": "Configuration schema for Ring",
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"disabled_hooks": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"session-start",
"context-injection"
]
}
},
"disabled_agents": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"code-reviewer",
"security-reviewer",
"business-logic-reviewer",
"test-reviewer",
"nil-safety-reviewer",
"codebase-explorer",
"write-plan",
"backend-engineer-golang",
"backend-engineer-typescript",
"frontend-engineer",
"frontend-designer",
"devops-engineer",
"sre",
"qa-analyst"
]
}
},
"disabled_skills": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"using-ring-opencode",
"test-driven-development",
"requesting-code-review",
"writing-plans",
"executing-plans",
"brainstorming",
"linting-codebase",
"using-git-worktrees",
"exploring-codebase",
"handoff-tracking",
"interviewing-user",
"receiving-code-review",
"using-dev-team",
"writing-skills",
"dev-cycle",
"dev-devops",
"dev-feedback-loop",
"dev-implementation",
"dev-refactor",
"dev-sre",
"dev-testing",
"dev-validation",
"visual-explainer"
]
}
},
"disabled_commands": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"brainstorm",
"codereview",
"commit",
"create-handoff",
"dev-cancel",
"dev-cycle",
"dev-refactor",
"dev-report",
"dev-status",
"execute-plan",
"explore-codebase",
"lint",
"md-to-html",
"resume-handoff",
"worktree",
"write-plan"
]
}
},
"experimental": {
"default": {
"preemptiveCompaction": false,
"compactionThreshold": 0.8,
"aggressiveTruncation": false
},
"type": "object",
"properties": {
"preemptiveCompaction": {
"default": false,
"type": "boolean"
},
"compactionThreshold": {
"default": 0.8,
"type": "number",
"minimum": 0.5,
"maximum": 0.95
},
"aggressiveTruncation": {
"default": false,
"type": "boolean"
}
}
},
"hooks": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}
}