mirror of
https://github.com/affaan-m/ECC.git
synced 2026-10-15 20:55:28 +02:00
GitHub Copilot CLI discovers SKILL.md skills from .github/skills/ and custom agents from .github/agents/, so ECC's catalog can be installed there without a conversion step. This adds a managed-project install target that places both. Scope is deliberately limited to agents and skills. ECC hooks are written against Claude Code's event model, and commands rely on slash-command argument substitution Copilot does not provide, so neither is installed. Agent frontmatter goes through an allowlist transform rather than a passthrough: Copilot resolves the session model from user configuration, so a Claude model id makes it warn and fall back on every invocation; Claude tool names are not Copilot tool names, and Copilot governs tool access per session via --allow-tool/--deny-tool. Unknown keys added to ECC agents later therefore cannot leak into the Copilot copy. Target selection stays permissive in supportsModule so dependency-anchor modules still resolve; planOperations is what narrows the install, matching the convention used by the other adapters. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
118 lines
2.5 KiB
JSON
118 lines
2.5 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "ECC Install Modules",
|
|
"type": "object",
|
|
"properties": {
|
|
"version": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"modules": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"rules",
|
|
"agents",
|
|
"commands",
|
|
"hooks",
|
|
"platform",
|
|
"orchestration",
|
|
"skills",
|
|
"docs"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"paths": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"targets": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"claude",
|
|
"claude-project",
|
|
"cursor",
|
|
"antigravity",
|
|
"codex",
|
|
"copilot",
|
|
"gemini",
|
|
"opencode",
|
|
"codebuddy",
|
|
"joycode",
|
|
"qwen",
|
|
"zed",
|
|
"hermes",
|
|
"openclaw",
|
|
"kimi",
|
|
"adal"
|
|
]
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9-]+$"
|
|
}
|
|
},
|
|
"defaultInstall": {
|
|
"type": "boolean"
|
|
},
|
|
"cost": {
|
|
"type": "string",
|
|
"enum": [
|
|
"light",
|
|
"medium",
|
|
"heavy"
|
|
]
|
|
},
|
|
"stability": {
|
|
"type": "string",
|
|
"enum": [
|
|
"experimental",
|
|
"beta",
|
|
"stable"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"description",
|
|
"paths",
|
|
"targets",
|
|
"dependencies",
|
|
"defaultInstall",
|
|
"cost",
|
|
"stability"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"version",
|
|
"modules"
|
|
],
|
|
"additionalProperties": false
|
|
}
|