diff --git a/agent-pack/CAPABILITY_MATRIX.md b/agent-pack/CAPABILITY_MATRIX.md index 6c714ca..4417906 100644 --- a/agent-pack/CAPABILITY_MATRIX.md +++ b/agent-pack/CAPABILITY_MATRIX.md @@ -12,15 +12,15 @@ ## Matrix -| Capability | OpenCode | Codex CLI | Goose CLI/Desktop | Claude Code/Desktop Code | Copilot CLI | +| Capability | OpenCode | Codex CLI | Goose CLI/Desktop | Claude Code/Desktop Code | Copilot CLI / VS Code | |---|---|---|---|---|---| | **Agents / roles** | SUPPORTED — `builder` (generic implementation), `arch-data-engineer` (specialist, scoped permissions), `reviewer` (read-only, restricted permissions), `planner` (read-only planning and routing), `mechanical` (deterministic low-judgment operations) | NOT YET ASSESSED — outside this NeuralEngine-only slice | NOT YET ASSESSED — custom agents are outside this bounded slice | NOT YET ASSESSED — custom agents are outside this bounded slice | NOT YET ASSESSED — custom agents are outside this bounded slice | -| **Skills / contracts** | SUPPORTED — 5 skills: neuralengine, repository-review, python-project-validation, arch-linux-diagnostics, verification | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | -| **Global instructions** | SUPPORTED — `neuralengine-usage.md` loaded via `opencode.json` instructions array | SUPPORTED WITH LIMITATIONS — short `AGENTS.md` pointer; Codex CLI runtime discovery not exercised here | SUPPORTED WITH LIMITATIONS — short `AGENTS.md` pointer; Desktop launcher discovery remains environment-dependent | SUPPORTED WITH LIMITATIONS — native `CLAUDE.md` pointer; Desktop Code shares project configuration | SUPPORTED WITH LIMITATIONS — CLI instruction locations are documented; no extra pointer is required by the skill mechanism | -| **Permissions** | SUPPORTED — Agent-level permission blocks with allow/deny/ask for edit, bash, task, tools. Reviewer enforces read-only. | SUPPORTED WITH LIMITATIONS — Codex host sandbox/approval controls remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — Goose host permission/approval controls remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — Claude host permission modes remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — read-only tools are automatic; modifying tools require host approval; no adapter write authority | -| **Shell execution** | SUPPORTED — Scoped bash allowlist for `arch-data-engineer` (read-only diagnostics and validation; commit, push, destructive Git/filesystem/partitioning commands, and Ruff auto-fix denied). Restricted allowlist for `reviewer`. | SUPPORTED WITH LIMITATIONS — `neural` commands are ordinary host shell commands; executable/PATH/runtime behavior not verified | SUPPORTED WITH LIMITATIONS — Developer shell tools are documented; executable/PATH/runtime behavior is target-environment dependent | SUPPORTED WITH LIMITATIONS — CLI shell execution is available; Desktop/local environment and `neural` availability remain target-dependent | SUPPORTED WITH LIMITATIONS — CLI shell execution is documented; target `neural` availability not locally verified | -| **Repository instructions** | SUPPORTED — `AGENTS.md`, `CODEX.md`, `VISION.md`, `CONTEXT.md`, `pyproject.toml` awareness built into agent rules | SUPPORTED WITH LIMITATIONS — Codex CLI native `AGENTS.md` pointer for substantive/consequential work | SUPPORTED WITH LIMITATIONS — Goose project context files are documented; exact Desktop conflict precedence remains unverified | SUPPORTED WITH LIMITATIONS — `CLAUDE.md` is native; `AGENTS.md` requires an explicit import/reference | SUPPORTED WITH LIMITATIONS — `AGENTS.md` and `.github/copilot-instructions.md` are documented CLI instruction locations; combined precedence is not a total order | -| **NeuralEngine CLI** | SUPPORTED — `neural status` and `neural search` available and used in all reviews | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; target installation not verified | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; target installation and Desktop command availability not verified | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; Desktop Code runtime availability not locally verified | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; target installation not locally verified | +| **Skills / contracts** | SUPPORTED — 5 skills: neuralengine, repository-review, python-project-validation, arch-linux-diagnostics, verification | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — NeuralEngine contract projection only; other contracts remain unmapped | SUPPORTED WITH LIMITATIONS — shared NeuralEngine project skill reused by CLI and VS Code; other contracts remain unmapped | +| **Global instructions** | SUPPORTED — `neuralengine-usage.md` loaded via `opencode.json` instructions array | SUPPORTED WITH LIMITATIONS — short `AGENTS.md` pointer; Codex CLI runtime discovery not exercised here | SUPPORTED WITH LIMITATIONS — short `AGENTS.md` pointer; Desktop launcher discovery remains environment-dependent | SUPPORTED WITH LIMITATIONS — native `CLAUDE.md` pointer; Desktop Code shares project configuration | SUPPORTED WITH LIMITATIONS — native CLI and VS Code instruction locations are documented; no extra pointer is required | +| **Permissions** | SUPPORTED — Agent-level permission blocks with allow/deny/ask for edit, bash, task, tools. Reviewer enforces read-only. | SUPPORTED WITH LIMITATIONS — Codex host sandbox/approval controls remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — Goose host permission/approval controls remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — Claude host permission modes remain authoritative; no adapter write authority | SUPPORTED WITH LIMITATIONS — host/session approval controls remain authoritative for CLI and VS Code; no adapter write authority | +| **Shell execution** | SUPPORTED — Scoped bash allowlist for `arch-data-engineer` (read-only diagnostics and validation; commit, push, destructive Git/filesystem/partitioning commands, and Ruff auto-fix denied). Restricted allowlist for `reviewer`. | SUPPORTED WITH LIMITATIONS — `neural` commands are ordinary host shell commands; executable/PATH/runtime behavior not verified | SUPPORTED WITH LIMITATIONS — Developer shell tools are documented; executable/PATH/runtime behavior is target-environment dependent | SUPPORTED WITH LIMITATIONS — CLI shell execution is available; Desktop/local environment and `neural` availability remain target-dependent | SUPPORTED WITH LIMITATIONS — CLI and VS Code agent terminal execution are documented; target `neural` availability not locally verified | +| **Repository instructions** | SUPPORTED — `AGENTS.md`, `CODEX.md`, `VISION.md`, `CONTEXT.md`, `pyproject.toml` awareness built into agent rules | SUPPORTED WITH LIMITATIONS — Codex CLI native `AGENTS.md` pointer for substantive/consequential work | SUPPORTED WITH LIMITATIONS — Goose project context files are documented; exact Desktop conflict precedence remains unverified | SUPPORTED WITH LIMITATIONS — `CLAUDE.md` is native; `AGENTS.md` requires an explicit import/reference | SUPPORTED WITH LIMITATIONS — CLI and VS Code native instruction locations are documented; host-specific precedence and enablement remain bounded | +| **NeuralEngine CLI** | SUPPORTED — `neural status` and `neural search` available and used in all reviews | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; target installation not verified | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; target installation and Desktop command availability not verified | SUPPORTED WITH LIMITATIONS — projection preserves `neural status`, targeted retrieval, and read-only boundaries; Desktop Code runtime availability not locally verified | SUPPORTED WITH LIMITATIONS — shared projection preserves `neural status`, targeted retrieval, and read-only boundaries; target PATH/installation not locally verified | | **Review** | SUPPORTED — `repository-review` skill, reviewer agent with read-only permissions, formal review format with verdict/checkpoint/validation/scope/findings | NOT YET ASSESSED | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | | **Verification** | SUPPORTED — reviewer agent with `verification` skill and enforced read-only command permissions (8 additional allow patterns: find, test, wc, sha256sum, diff, cmp, grep, sed). Quick Verification runs without permission prompts. | NOT YET ASSESSED | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | | **Certification** | SUPPORTED — Certification Report template, 3 verdicts (CERTIFIED/CERTIFIED WITH NOTES/NOT CERTIFIED), collision-safe naming, `.agent-work/certifications/` convention | NOT YET ASSESSED | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | NOT YET ASSESSED — outside this bounded slice | diff --git a/agent-pack/MANIFEST.md b/agent-pack/MANIFEST.md index c18cede..a58255b 100644 --- a/agent-pack/MANIFEST.md +++ b/agent-pack/MANIFEST.md @@ -2,9 +2,9 @@ ## Shared-to-platform mapping -| Authoritative source | OpenCode target | Codex CLI target | Goose CLI/Desktop target | Claude Code/Desktop Code target | Copilot CLI target | +| Authoritative source | OpenCode target | Codex CLI target | Goose CLI/Desktop target | Claude Code/Desktop Code target | Copilot CLI / VS Code target | |---|---|---|---|---|---| -| `shared/neuralengine.md` | global instruction (`neuralengine-usage.md`) and NeuralEngine skill | `platforms/codex/skills/neuralengine/SKILL.md` (controlled copy; install target is `.agents/skills/neuralengine/SKILL.md`) | `platforms/goose/skills/neuralengine/SKILL.md` (controlled copy; install target is `.agents/skills/neuralengine/SKILL.md`) | `platforms/claude/skills/neuralengine/SKILL.md` (controlled copy; install target is `.claude/skills/neuralengine/SKILL.md`) | `platforms/copilot/skills/neuralengine/SKILL.md` (controlled copy; install target is `.github/skills/neuralengine/SKILL.md`) | +| `shared/neuralengine.md` | global instruction (`neuralengine-usage.md`) and NeuralEngine skill | `platforms/codex/skills/neuralengine/SKILL.md` (controlled copy; install target is `.agents/skills/neuralengine/SKILL.md`) | `platforms/goose/skills/neuralengine/SKILL.md` (controlled copy; install target is `.agents/skills/neuralengine/SKILL.md`) | `platforms/claude/skills/neuralengine/SKILL.md` (controlled copy; install target is `.claude/skills/neuralengine/SKILL.md`) | `platforms/copilot/skills/neuralengine/SKILL.md` (controlled copy reused by CLI and VS Code; install target is `.github/skills/neuralengine/SKILL.md`) | | `shared/repository-review.md` | repository-review skill | not mapped in this slice | not mapped in this slice | not mapped in this slice | not mapped in this slice | | `shared/python-validation.md` | python-project-validation skill | not mapped in this slice | not mapped in this slice | not mapped in this slice | not mapped in this slice | | `shared/arch-linux.md` | arch-linux-diagnostics skill | not mapped in this slice | not mapped in this slice | not mapped in this slice | not mapped in this slice | diff --git a/agent-pack/README.md b/agent-pack/README.md index 92e3383..449903b 100644 --- a/agent-pack/README.md +++ b/agent-pack/README.md @@ -15,7 +15,7 @@ repository—not a separate product. - One bounded Codex CLI NeuralEngine skill projection. - One bounded Goose CLI/Desktop NeuralEngine skill projection. - One bounded Claude Code/Desktop Code NeuralEngine skill projection. -- One bounded GitHub Copilot CLI NeuralEngine skill projection. +- One bounded GitHub Copilot CLI and VS Code NeuralEngine skill projection. - Placeholder directory for future Antigravity platform variants. This pack does not modify NeuralEngine runtime behavior, Brain persistence, @@ -53,7 +53,7 @@ contract and introduces the generic builder agent: | Codex CLI NeuralEngine slice | Supported with limitations (CLI only) | | Goose CLI/Desktop NeuralEngine slice | Supported with limitations (bounded post-v1.0 extension) | | Claude Code/Desktop Code NeuralEngine slice | Supported with limitations (bounded post-v1.0 extension) | -| GitHub Copilot CLI NeuralEngine slice | Supported with limitations (bounded post-v1.0 extension) | +| GitHub Copilot CLI / VS Code NeuralEngine slice | Supported with limitations (bounded post-v1.0 extension) | | Antigravity | Placeholder (not implemented) | Review artifacts: @@ -198,7 +198,7 @@ equality, frontmatter integrity, model-name absence, and agent coexistence). - [DEFINITION-OF-DONE.md](DEFINITION-OF-DONE.md) — Formal v1.0 quality gates. - [ROADMAP.md](ROADMAP.md) — Milestone roadmap from v0.1.0 to v1.0.0. - [MANIFEST.md](MANIFEST.md) — Shared-to-platform mapping and update rules. -- [CAPABILITY_MATRIX.md](CAPABILITY_MATRIX.md) — Platform capability matrix (OpenCode, Codex CLI, Goose, Claude Code/Desktop Code, and Copilot CLI). +- [CAPABILITY_MATRIX.md](CAPABILITY_MATRIX.md) — Platform capability matrix (OpenCode, Codex CLI, Goose, Claude Code/Desktop Code, and Copilot CLI / VS Code). - [DECISIONS/](DECISIONS/) — Architecture Decision Records (ADRs). - [RELEASE_NOTES_v0.4.0.md](RELEASE_NOTES_v0.4.0.md) — v0.4.0 release notes. - [RELEASE_NOTES_v0.3.0.md](RELEASE_NOTES_v0.3.0.md) — v0.3.0 release notes. @@ -219,7 +219,7 @@ Platform implementations: - [platforms/codex/](platforms/codex/) — Codex CLI NeuralEngine adapter slice. - [platforms/goose/](platforms/goose/) — Goose CLI/Desktop NeuralEngine adapter slice. - [platforms/claude/](platforms/claude/) — Claude Code/Desktop Code NeuralEngine adapter slice. -- [platforms/copilot/](platforms/copilot/) — GitHub Copilot CLI NeuralEngine adapter slice. +- [platforms/copilot/](platforms/copilot/) — GitHub Copilot CLI and VS Code NeuralEngine adapter slice. - [platforms/opencode/agents/planner.md](platforms/opencode/agents/planner.md) — Read-only planning and routing agent. - [platforms/opencode/agents/builder.md](platforms/opencode/agents/builder.md) — Generic builder agent (new in v0.4.0). - [platforms/opencode/agents/arch-data-engineer.md](platforms/opencode/agents/arch-data-engineer.md) — Specialist implementation agent. diff --git a/agent-pack/platforms/copilot/README.md b/agent-pack/platforms/copilot/README.md index fe5add9..da84c10 100644 --- a/agent-pack/platforms/copilot/README.md +++ b/agent-pack/platforms/copilot/README.md @@ -1,7 +1,7 @@ -# GitHub Copilot CLI Platform +# GitHub Copilot CLI and VS Code Platform -**Status:** NeuralEngine thin adapter implemented for GitHub Copilot CLI with -documented limitations. +**Status:** NeuralEngine thin adapter implemented for GitHub Copilot CLI and +GitHub Copilot in VS Code with documented limitations. This is one bounded provider projection of agent-pack/shared/neuralengine.md. It is a post-v1.0 extension of the Agent @@ -25,30 +25,40 @@ Installation is explicit and manual: skills/neuralengine/SKILL.md → /.github/skills/neuralengine/SKILL.md -Copilot CLI natively discovers project skills and decides when to load them -from their descriptions. No additional project instruction pointer is added: -a duplicate pointer would repeat shared policy without adding a native loading -requirement. Existing AGENTS.md or .github/copilot-instructions.md files in a -target repository remain separate host instruction mechanisms. +Copilot CLI and VS Code natively discover project skills and decide when to +load them from their descriptions. No additional project instruction pointer is +added: a duplicate pointer would repeat shared policy without adding a native +loading requirement. The existing skill is deliberately reused by both hosts; +there is no second semantic Copilot skill copy. + +Existing AGENTS.md, .github/copilot-instructions.md, and +.github/instructions/**/*.instructions.md files in a target repository remain +separate host instruction mechanisms. VS Code Copilot Chat supports these +repository instruction types; the host may enable or disable custom +instructions. ## Discovery and permission boundaries - GitHub documents project skills under .github/skills, .claude/skills, and - .agents/skills. This adapter uses the GitHub-native .github/skills path. + .agents/skills, and VS Code documents the same project locations. This + adapter uses the shared .github/skills path. - SKILL.md requires YAML name and description metadata. Optional allowed-tools is deliberately omitted so the host retains its normal approval behavior. -- Copilot CLI discovers repository instruction files in standard locations and - combines applicable instructions. This adapter does not add or duplicate one. +- Copilot CLI and VS Code Copilot have native repository instruction mechanisms; + this adapter does not add or duplicate one. - GitHub documents read-only shell and file operations as automatically allowed; edits, destructive commands, URL access, and other modifying tools require - explicit approval. + explicit approval for the CLI. VS Code agent permissions are session and + host controlled; terminal commands and file edits may require approval. - Local verification found no copilot binary. The gh copilot help command identified a preview wrapper that would download the CLI if absent; no download or session was started. -- The neural executable, PATH, Brain access, and command behavior must be - verified in each target environment. +- VS Code, the Copilot extension, agent mode, the neural executable, PATH, Brain + access, and command behavior must be verified in each target environment. -This is CLI-only support. No editor or web-surface support is claimed. +This bounded support covers GitHub Copilot CLI and GitHub Copilot in VS Code +only. No JetBrains, Visual Studio, GitHub.com Copilot Chat, or other editor or +web-surface support is claimed. The adapter grants no additional read, write, Brain-write, staging, commit, push, merge, tag, release, or publication authority. diff --git a/tests/test_copilot_cli_adapter.py b/tests/test_copilot_cli_adapter.py index 7426f92..65115a4 100644 --- a/tests/test_copilot_cli_adapter.py +++ b/tests/test_copilot_cli_adapter.py @@ -35,8 +35,8 @@ def _body(content: str) -> str: return "".join(lines[closing + 1 :]) -class TestCopilotCliNeuralEngineAdapter: - """Tests for the single GitHub Copilot CLI projection.""" +class TestCopilotNeuralEngineAdapter: + """Tests for the shared GitHub Copilot CLI and VS Code projection.""" def test_expected_platform_paths(self) -> None: """The adapter contains only its README and one skill.""" @@ -70,14 +70,26 @@ def test_no_extra_pointer_is_required(self) -> None: paths = {path.name for path in _copilot_root().iterdir()} assert paths == {"README.md", "skills"} - def test_readme_describes_cli_only_boundary(self) -> None: - """Documentation states the bounded CLI-only support boundary.""" + def test_readme_describes_cli_and_vscode_reuse(self) -> None: + """Documentation states the bounded host reuse and support boundary.""" content = (_copilot_root() / "README.md").read_text(encoding="utf-8") - assert "GitHub Copilot CLI" in content + assert "GitHub Copilot CLI and VS Code" in content assert ".github/skills/neuralengine/SKILL.md" in content - assert "No additional project instruction pointer is added" in content - assert "This is CLI-only support." in content - assert "No editor or web-surface support is claimed." in content + assert "The existing skill is deliberately reused by both hosts" in content + assert "No additional project instruction pointer" in content + assert ( + "This bounded support covers GitHub Copilot CLI and GitHub Copilot in VS Code" + in content + ) + assert "No JetBrains, Visual Studio, GitHub.com Copilot Chat" in content + + def test_vscode_reuses_cli_skill_without_second_copy(self) -> None: + """VS Code reuses the existing project skill without a semantic fork.""" + skill_paths = sorted(_copilot_root().rglob("SKILL.md")) + assert skill_paths == [_skill()] + content = (_copilot_root() / "README.md").read_text(encoding="utf-8") + assert "there is no second semantic Copilot skill copy" in content + assert "No additional project instruction pointer" in content def test_adapter_does_not_claim_provider_independent_authority(self) -> None: """The Copilot files preserve host permissions and publication boundaries."""