Skip to content

Committing to One Tool

Gregor Biswanger edited this page Aug 3, 2026 · 1 revision

Committing to One Tool

Nothing needs to be ejected — both tools read the same files, and keeping both costs you one extra one-line file per command. But if you want a repository with no trace of the other tool, the conversion is mechanical.

Keep GitHub Copilot only

From To Transformation
.claude/commands/<n>.md .github/prompts/<n>.prompt.md move the body into the existing loader file (replacing the pointer line), keep name/description/argument-hint, drop disable-model-invocation
.claude/rules/<n>.md .github/instructions/<n>.instructions.md rename, and change frontmatter paths: [a, b] to applyTo: 'a,b'
AGENTS.md .github/copilot-instructions.md move, or keep AGENTS.md — both are native
CLAUDE.md delete
.claude/settings.json hooks block .github/hooks/hooks.json restructure to the Copilot hooks file; other keys are dropped
.mcp.json .vscode/mcp.json rename root key mcpServers to servers
.vscode/settings.json the .claude/* location entries become unnecessary

.specs/ and .memory-bank/ are unchanged — they are plain data.

Keep Claude Code only

From To
.github/prompts/*.prompt.md delete — the loaders exist only for Copilot
.github/agents/SpecDrivenAgent.agent.md delete, or port to .claude/agents/ accepting the changed semantics (isolated subagent, not a persona)
.vscode/settings.json delete
everything else unchanged

Before you eject

Two things worth weighing:

  • The cost of staying dual is small. One .prompt.md loader per command, each a single line pointing at the body you were going to write anyway, plus a five-line .vscode/settings.json. Nothing is duplicated, so nothing can drift.
  • The cost of ejecting is one-way in practice. Once the bodies move into .github/prompts/*.prompt.md, they carry Copilot-only assumptions again the moment someone reaches for ${input:…}. Coming back means re-normalising them.

If your team genuinely uses one tool and the other folder is confusing people, eject. Otherwise the dual setup is close to free.

A third option: keep both, hide one

You do not have to delete anything to reduce noise. Add the other tool's entry points to .gitignore in a fork, or exclude them from your editor's file explorer:

{
  "files.exclude": { ".claude/**": true }
}

The files stay in the repository for whoever wants them, and stay out of your way.

Clone this wiki locally