mirror of
https://github.com/affaan-m/ECC.git
synced 2026-10-26 18:35:05 +00:00
merge: preserve tested Copilot install sources 2960 and 2963
This commit is contained in:
15 files changed
+580
-28
No files matched your search
@@ -408,8 +408,9 @@ cd ECC
|
||||
| Kimi Code CLI | `./install.sh --profile minimal --target kimi` | Project-local `.kimi-code/` install · [Get Kimi Code](https://www.kimi.ai/code?aff=ecc) |
|
||||
| CodeBuddy | `./install.sh --profile minimal --target codebuddy` | Project-local `.codebuddy/` install |
|
||||
| JoyCode | `./install.sh --profile minimal --target joycode` | Project-local `.joycode/` install |
|
||||
| GitHub Copilot | `./install.sh --profile full --target copilot` | Installs skills to `.github/skills/` and agents to `.github/agents/` for Copilot CLI |
|
||||
|
||||
GitHub Copilot support is already included in this repository. `.github/copilot-instructions.md` provides the instruction layer, `.github/prompts/` contains the reusable `/plan`, `/tdd`, `/security-review`, `/build-fix`, and `/refactor` prompts, and `.vscode/settings.json` enables `chat.promptFiles`.
|
||||
GitHub Copilot support is already included in this repository. `.github/copilot-instructions.md` provides the instruction layer, `.github/prompts/` contains the reusable `/plan`, `/tdd`, `/security-review`, `/build-fix`, and `/refactor` prompts, and `.vscode/settings.json` enables `chat.promptFiles`. GitHub Copilot CLI additionally discovers the `.agents/skills/` subset from a plain clone with no setup; see [Platform Support](#platform-support) for the full catalog and agents.
|
||||
|
||||
For a harness without a native ECC target, use the [manual adaptation guide](docs/MANUAL-ADAPTATION-GUIDE.md). It explains how to carry a small set of ECC skills and workflow instructions into chat-style tools without pretending hooks or native skill discovery are available.
|
||||
|
||||
@@ -1291,7 +1292,8 @@ Treat `stable`, `beta`, `experimental`, and `instruction-only` below as capabili
|
||||
| Codex | Supported native plugin | Codex marketplace plugin or repo config | Native hooks require an explicit trust decision and do not use Claude's hook profiles. The legacy sync is compatibility-only. |
|
||||
| Cursor | Beta project adapter | Selective installer into `.cursor/` | Agent discovery varies by Cursor build, and ECC's installer paths do not yet expose identical hook sets ([#2419](https://github.com/affaan-m/ECC/issues/2419)). |
|
||||
| OpenCode | Beta built plugin | Build plugin, then selective installer | ECC ships a subset of the catalog; connect a provider and select a model in OpenCode ([#2617](https://github.com/affaan-m/ECC/issues/2617)). |
|
||||
| GitHub Copilot | Instruction-only | Checked-in instructions and prompt files | No ECC hooks, runtime agents, delegation, or native skill discovery. |
|
||||
| GitHub Copilot Chat | Instruction-only | Checked-in instructions and prompt files | ECC hooks are not adapted. |
|
||||
| GitHub Copilot CLI | Beta project adapter | `--target copilot` places skills and adapted agents in `.github/` | ECC hooks, rules, and command shims are not installed by this target. |
|
||||
| Gemini, Zed, Antigravity, Qwen, Hermes, OpenClaw, Kimi, CodeBuddy, JoyCode | Experimental/minimal adapters | Harness-specific selective target | File placement and instruction portability are tested; full Claude feature parity is not claimed. |
|
||||
|
||||
<details>
|
||||
@@ -1400,16 +1402,16 @@ See [affaan-m/ECC#2065](https://github.com/affaan-m/ECC/issues/2065).
|
||||
| Capability | Claude Code | Codex | Cursor | OpenCode | GitHub Copilot |
|
||||
|---|---|---|---|---|---|
|
||||
| Instructions | Native | Native `AGENTS.md` | Project rules | Plugin instructions | Native instruction file |
|
||||
| Skills | Native installed set | Native plugin set | Build-dependent/project set | Built subset | Prompt/instruction references only |
|
||||
| Agents/delegation | Native agents | Codex multi-agent roles; Claude agent files are not installed as roles | Build-dependent project agents | Plugin agents | Not supported |
|
||||
| ECC hooks | Native plugin hooks | Native reviewed subset with explicit trust | Cursor hook adapter; install-path differences remain | Plugin events | Not supported |
|
||||
| Skills | Native installed set | Native plugin set | Build-dependent/project set | Built subset | Native discovery (Copilot CLI) from `.github/skills/`, `.agents/skills/`, `.claude/skills/` |
|
||||
| Agents/delegation | Native agents | Codex multi-agent roles; Claude agent files are not installed as roles | Build-dependent project agents | Plugin agents | Copilot CLI custom agents via `.github/agents/` and `--agent` |
|
||||
| ECC hooks | Native plugin hooks | Native reviewed subset with explicit trust | Cursor hook adapter; install-path differences remain | Plugin events | Not ported; Copilot CLI has its own plugin hook system |
|
||||
| MCP configuration | Available, explicit activation | Native plugin manifest; legacy sync can merge TOML | Explicit project/user config | Provider/plugin config | Not supplied by ECC |
|
||||
| Parity with Claude Code | Primary reference | Partial | Partial | Partial | Not a parity target |
|
||||
| Parity with Claude Code | Primary reference | Partial | Partial | Partial | Partial |
|
||||
|
||||
**Key architectural decisions:**
|
||||
- **AGENTS.md** at root is the universal cross-tool file (read by Claude Code, Cursor, Codex, and OpenCode; GitHub Copilot uses `.github/copilot-instructions.md` instead)
|
||||
- **DRY adapter pattern** lets Cursor reuse Claude Code's hook scripts without duplication
|
||||
- **Skills format** (SKILL.md with YAML frontmatter) works across Claude Code, Codex, and OpenCode
|
||||
- **Skills format** (SKILL.md with YAML frontmatter) works across Claude Code, Codex, OpenCode, and GitHub Copilot CLI
|
||||
- Codex's narrower native hook set is supplemented by `AGENTS.md`, optional `model_instructions_file` overrides, and sandbox permissions
|
||||
|
||||
<details>
|
||||
@@ -1653,7 +1655,7 @@ For the full ECC OpenCode setup, either:
|
||||
<details>
|
||||
<summary><strong>GitHub Copilot support in depth</strong></summary>
|
||||
|
||||
ECC provides **GitHub Copilot support** for VS Code via Copilot Chat's native instruction and prompt file system. No extra tooling required.
|
||||
ECC supports **GitHub Copilot** on two surfaces: Copilot Chat in VS Code, via its native instruction and prompt file system, and **GitHub Copilot CLI**, which discovers the shared skills already present in this repository. The optional `copilot` install target places canonical skills and adapted agents in the CLI's native project directories.
|
||||
|
||||
#### What's included for GitHub Copilot
|
||||
|
||||
@@ -1674,6 +1676,99 @@ To use the workflow prompts in Copilot Chat:
|
||||
2. Click the **paperclip / attach** icon and select **Prompt...**, or type `/` and choose a prompt.
|
||||
3. Select the prompt (e.g. `plan`, `tdd`, `security-review`).
|
||||
|
||||
#### Copilot CLI: skills and agents
|
||||
|
||||
GitHub Copilot CLI discovers `SKILL.md` skills from `.github/skills/`,
|
||||
`.agents/skills/`, `.claude/skills/`, `~/.copilot/skills/`, and
|
||||
`~/.agents/skills/`, and custom agents from `.github/agents/`. ECC's skill and
|
||||
skill frontmatter is compatible. The managed `copilot` target adapts agent
|
||||
frontmatter to `name` and `description`, removing Claude-specific model and
|
||||
tool keys. Raw manual agent copies can retain unsupported metadata.
|
||||
|
||||
Because ECC ships a skill subset in `.agents/skills/`, a plain clone of this
|
||||
repository is picked up by Copilot CLI with no configuration at all:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/affaan-m/ECC.git && cd ECC
|
||||
copilot skill list
|
||||
# The inventory depends on the checkout and CLI version.
|
||||
```
|
||||
|
||||
In the contributor's September 2026 checkout, Copilot CLI 1.0.83 reported all 42 under `Project skills` with `source:
|
||||
"project"` and `enabled: true`. The three from `.claude/commands/` are Claude
|
||||
command files that Copilot surfaces as skills; they are reported with `path`
|
||||
set to the `.claude/commands` directory rather than to a per-skill subdirectory.
|
||||
|
||||
To check this with a temporary npm-distributed CLI, run the pinned build
|
||||
against a throwaway clone:
|
||||
|
||||
```bash
|
||||
git clone --depth 1 https://github.com/affaan-m/ECC.git && cd ECC
|
||||
npx -y @github/copilot@1.0.82 skill list --json | jq '[.[] | select(.source=="project")] | length'
|
||||
# Count the current inventory rather than assuming a fixed total.
|
||||
```
|
||||
|
||||
That checkout's 39 + 3 split was reported by 1.0.82 from npm and by 1.0.83 installed
|
||||
locally, so the behaviour is not specific to one build or install method.
|
||||
|
||||
To expose the full catalog, place `skills/` where Copilot CLI looks:
|
||||
|
||||
```bash
|
||||
mkdir -p .github/skills
|
||||
cp -r skills/. .github/skills/
|
||||
copilot skill list --json > copilot-skills.json
|
||||
jq '[.[] | select(.path | contains(".github/skills"))] | length' copilot-skills.json
|
||||
# Compare with the current canonical skill catalog.
|
||||
```
|
||||
|
||||
Filter on the path rather than on `source`: the CLI can also discover skills
|
||||
from other project locations and de-duplicates entries with the same skill
|
||||
name. Counts depend on the checkout and CLI version. The file redirection also
|
||||
avoids truncated large JSON output observed with Copilot CLI 1.0.82 on macOS.
|
||||
|
||||
Copilot registers a skill under the `name` in its `SKILL.md` frontmatter, not
|
||||
its directory name, so catalog folders whose names differ from their frontmatter
|
||||
(for example `scientific-db-pubmed-database`, which declares
|
||||
`name: pubmed-database`) still load — they are just listed under the frontmatter
|
||||
name.
|
||||
|
||||
Agents work the same way:
|
||||
|
||||
```bash
|
||||
./install.sh --profile full --target copilot
|
||||
copilot --agent architect -p "Review this module's boundaries"
|
||||
```
|
||||
|
||||
The contributor verified native discovery with Copilot CLI 1.0.83. Manually
|
||||
copied agent files that declare a Claude model
|
||||
name (`model: opus`, `model: sonnet`) emit a warning and fall back to the
|
||||
session's default model, so remove or remap `model:` if you want to pin one.
|
||||
|
||||
#### Installing with the `copilot` target
|
||||
|
||||
The steps above copy files by hand. The `copilot` install target does the same
|
||||
placement and additionally rewrites agent frontmatter so no warning is emitted:
|
||||
|
||||
```bash
|
||||
./install.sh --profile full --target copilot
|
||||
# Windows: ./install.ps1 --profile full --target copilot
|
||||
```
|
||||
|
||||
That writes skills to `.github/skills/`, agents to `.github/agents/`, and an
|
||||
install-state file to `.github/ecc-install-state.json`. Nothing is written
|
||||
outside `.github/`.
|
||||
|
||||
The `full` profile selects the modules declared for Copilot. It can place fewer
|
||||
skills than a manual copy of the entire canonical catalog because modules
|
||||
that require another host's runtime are excluded. List the resulting native
|
||||
inventory to see what this checkout installs; a count is not a capability grant.
|
||||
|
||||
Claude-only agent frontmatter (`model`, `tools`, `color`) is dropped during the
|
||||
copy: Copilot resolves the model from your own configuration, and it governs
|
||||
tool access per session through `--allow-tool`/`--deny-tool` rather than through
|
||||
agent frontmatter. ECC's rules, commands, and hooks are not installed by this
|
||||
target.
|
||||
|
||||
#### Feature coverage
|
||||
|
||||
| ECC Feature | Copilot equivalent |
|
||||
@@ -1686,12 +1781,24 @@ To use the workflow prompts in Copilot Chat:
|
||||
| Build error resolution | `build-fix` prompt |
|
||||
| Refactoring | `refactor` prompt |
|
||||
| Commit message format | Per-task instruction in `settings.json` |
|
||||
| Hooks / automation | Not supported (Copilot has no hook system) |
|
||||
| Agents / delegation | Not supported (Copilot has no subagent API) |
|
||||
| Skills | Native discovery in Copilot CLI (`.github/skills/`, `.agents/skills/`) |
|
||||
| Agents / delegation | Copilot CLI custom agents (`.github/agents/`, `--agent`) |
|
||||
| Hooks / automation | ECC's hooks are not ported (Copilot CLI has its own plugin hook system) |
|
||||
|
||||
#### Limitations
|
||||
|
||||
GitHub Copilot does not have a hook system or a subagent API, so ECC's hook automations (auto-format, TypeScript check, session persistence, dev-server guard) and agent delegation are unavailable. The instruction and prompt layer still brings the full ECC coding philosophy (standards, security, TDD, and workflow) into every Copilot Chat session.
|
||||
ECC's hook automations (auto-format, TypeScript check, session persistence,
|
||||
dev-server guard) are written against Claude Code's hook event model and are
|
||||
not ported to Copilot. Copilot CLI does expose a hook system through its plugin
|
||||
format, but ECC does not currently ship a Copilot plugin, so none of ECC's hooks
|
||||
run there.
|
||||
|
||||
ECC also does not install rules, commands, or hooks for Copilot. The `copilot`
|
||||
target installs skills and agents only. Skills that shell out to bundled
|
||||
scripts assume the same interpreters as on Claude Code. Copilot Chat in VS Code
|
||||
does not read `.github/skills/` or `.github/agents/`; those paths are Copilot
|
||||
CLI surfaces. The instruction and prompt layer is what carries ECC's coding
|
||||
philosophy into Copilot Chat sessions.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
Reference in new issue
Block a user