mirror of
https://github.com/LerianStudio/ring
synced 2026-04-21 13:37:27 +00:00
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
140 lines
No EOL
3.3 KiB
JSON
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": {}
|
|
}
|
|
}
|
|
}
|
|
} |