Back to Brain Lab Skill · Convert to Copilot · convert-to-copilot/
Skill Claude

Convert to Copilot

convert-to-copilot/

4 views 0 downloads

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.

Convert to Copilot: Brain Lab skill for Claude Code

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 (fetch instead of web), 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 the description.
  • Splits every skill into .copilot_utils/{name}/context/ (what to use) and trees/ (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, drops color / memory / isolation / skills / allowed-tools.
  • Converts sub-agent calls to handoffs (VS Code) or runSubagent() (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

convert-agents.sh
#!/usr/bin/env bash
# convert-agents.sh — scaffold conversion dispatcher
# Usage:
#   ./convert-agents.sh claude-to-copilot <agent-file> [command-file]
#   ./convert-agents.sh copilot-to-claude <agent-file>
#
# Reference: skills/convert-to-copilot/SKILL.md

set -euo pipefail

DIR="${1:-}"; AGENT_FILE="${2:-}"; CMD_FILE="${3:-}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

source "${SCRIPT_DIR}/lib-extract.sh"

usage() {
  cat <<'EOF'
Usage:
  convert-agents.sh claude-to-copilot <claude-agent-file> [command-file]
  convert-agents.sh copilot-to-claude <copilot-agent-file>

Examples:
  ./convert-agents.sh claude-to-copilot ~/.claude/agents/pr-reviewer.md ~/.claude/commands/review-pr.md
  ./convert-agents.sh copilot-to-claude .github/agents/pr-reviewer.agent.md

After scaffolding, run /convert-to-copilot or /convert-from-copilot
in Claude Code for full content transformation.
EOF
  exit 1
}

[[ -z "$DIR" || -z "$AGENT_FILE" ]] && usage
[[ ! -f "$AGENT_FILE" ]] && echo -e "${R}Error: $AGENT_FILE not found${NC}" && exit 1

case "$DIR" in
  claude-to-copilot)
    source "${SCRIPT_DIR}/claude-to-copilot.sh"
    claude_to_copilot
    ;;
  copilot-to-claude)
    source "${SCRIPT_DIR}/copilot-to-claude.sh"
    copilot_to_claude
    ;;
  *)
    usage
    ;;
esac