Port a GitHub Copilot plugin to every harness

Convert a GitHub Copilot layout into one portable plugin for Claude Code, Codex, Gemini CLI, Copilot, Cursor, Windsurf, Pi, and OpenCode.

The detector recognizes this source when it finds .github/copilot-instructions.md, .github/prompts, and .github/agents.

bash
npx ap-sdk port ./my-plugin
npx ap-sdk port ./my-plugin --dry-run

Mapping

GitHub Copilot sourceap-sdk output
.github/copilot-instructions.mdinstructions
.github/prompts/*.prompt.mddefineCommand
.github/agents/*.agent.mddefineSubagent

What does not carry over

The generator only claims what src/port.ts can read: manifests, instruction files, SKILL.md skills, markdown commands, markdown agents, Claude-style hook JSON, hook script folders, and non-structural companion directories. Native hook events without a portable mapping are emitted as stop with a TODO comment so you can choose the right event. Harness-specific settings outside those files remain in your source tree but are not modeled unless you add them to the generated plugin.ts.

Next steps

npx ap-sdk check plugin.ts
npx ap-sdk build plugin.ts

Then review the support matrix and install the plugin into the harnesses you use.