Convert to Copilot
convert-to-copilot/
Port a Claude Code agent, with its command and skills, to one GitHub Copilot agent. Maps tools, models and sub-agent calls, validates the result and ships scripts for both directions.

Port a Claude Code agent, with its command and skills, to one GitHub Copilot agent that works the same way.
Why use it
- Your team uses both Claude Code and GitHub Copilot, and every agent has to be written twice.
- Copilot has no skills or commands: a straight copy loses the knowledge and the triggers the agent depends on.
- Hand-ported agents drift, wrong tool aliases (
fetchinstead ofweb), dead file paths, task tracking that fails silently.
What it does
- Merges the agent + its launch command into one
.github/agents/{name}.agent.md, with the command's trigger phrases in thedescription. - Splits every skill into
.copilot_utils/{name}/context/(what to use) andtrees/(how to decide), and rewrites each skill reference to a file path. - Maps tools, models and frontmatter:
WebFetch→web,TaskCreate→manage_todo_list,opus→Claude Opus 4.5, dropscolor/memory/isolation/skills/allowed-tools. - Converts sub-agent calls to
handoffs(VS Code) orrunSubagent()(GitHub Copilot). - Validates the result, every referenced path exists, aliases are correct, body under 30,000 characters, and prints a conversion report.
- Ships scaffold scripts for both directions (
claude-to-copilot,copilot-to-claude) and a full worked example.
Benefits
- Write the agent once. Claude Code stays the source; Copilot gets a faithful port.
- No lost knowledge. Skills become referenced context files, not a pasted wall of text.
- Correct on the first run. The tool and model tables catch the aliases that break Copilot agents.
- Reviewable. Each phase writes its output to
.copilot-convert-results/, so you can see every decision.
Install
Download this skill and copy the convert-to-copilot folder to .claude/skills/convert-to-copilot/ in your project, or to ~/.claude/skills/convert-to-copilot/ to use it in every project. Claude Code finds it on its own; you can also call it with /convert-to-copilot.
Part of the Agent Engineering bundle. To get the whole set as a Claude Code plugin: /plugin marketplace add endorphin-ai/hasbrains-agent-kit, then /plugin install agent-engineering@hasbrains-agent-kit.
Source: endorphin-ai/hasbrains-agent-kit. License: MIT.
Files (17)
Files
# Conversion Phases 5–7: Write, Validate, Report
See also: `conversion-phases.md` (phases 1–3) · `conversion-body.md` (phase 4)
---
## Phase 5: Write Output Files
Write all files in this order:
1. `.github/agents/{agent_name}.agent.md`
- Frontmatter from Phase 3
- PROGRESS TRACKING section (from Phase 4.3) at top of body
- Converted body from Phase 4
2. All `.copilot_utils/{agent_name}/context/*.md` — knowledge files
3. All `.copilot_utils/{agent_name}/trees/*.md` — decision tree files
4. Any `.copilot_utils/{agent_name}/scripts/*` — script files
5. `.copilot_utils/{agent_name}/memory/` — copy memory files found in Phase 1
---
## Phase 6: Validate → `{output_folder}/6-validation.md`
Run the full checklist. Write PASS/FAIL for each item:
```markdown
# Validation Results
| Check | Status | Notes |
| -------------------------------------------------- | ------ | ------------- |
| {output_agent} exists | ✅/❌ | |
| Frontmatter: description with triggers | ✅/❌ | |
| Frontmatter: tools array (no "fetch") | ✅/❌ | |
| Frontmatter: model (expanded) | ✅/❌ | |
| No separate command file created | ✅/❌ | |
| No .prompt.md or .instructions.md | ✅/❌ | |
| Task tracking uses manage_todo_list with operation | ✅/❌ | |
| All .copilot_utils/ refs resolve to real files | ✅/❌ | |
| Scripts executable + paths correct | ✅/❌ | |
| Memory paths updated | ✅/❌ | |
| MCP calls preserved | ✅/❌ | |
| Agent body ≤ 30,000 chars | ✅/❌ | {count} chars |
```
If any check FAILS, fix before proceeding to Phase 7.
---
## Phase 7: Conversion Report (console output)
```markdown
## Conversion Report
### Agent Created
- ✅ .github/agents/{name}.agent.md — {N} phases, tools: [{tools}], model: {model}
### Command Absorbed
- 🔗 /{command-name} → merged into agent description + argument-hint
### Skill Context Created (.copilot_utils/{agent-name}/)
| File | Type | Source skill |
| ---------------------------- | ------------- | ------------------- |
| context/{skill}.md | knowledge | {skill} SKILL.md |
| trees/{skill}.md | decision tree | {skill} SKILL.md |
| context/{skill}-templates.md | templates | {skill} references/ |
### Memory
- 📝 .copilot_utils/{agent-name}/memory/ — {N files copied / none}
### Task Tracking
- 🔄 TaskCreate/TaskUpdate → manage_todo_list ({N} todos)
### Preserved As-Is
- ✅ MCP tool calls
- ✅ Bash commands and git workflow
- ✅ Phase structure and numbering
- ✅ Error handling
- ✅ ALWAYS_DO / NEVER_DO rules
- ✅ Final report format
### Not Created (by design)
- ❌ No .prompt.md (command absorbed into agent)
- ❌ No .instructions.md
- ❌ No .github/skills/
```