Overview
GitHub Copilot integration is available since PactKit v2.9.4 via the pactkit-copilot adapter package.
Copilot works differently from other adapters. Claude Code, OpenCode, and Codex CLI deploy to a user-level directory once (~/.claude/, ~/.config/opencode/, ~/.codex/) and all projects share the same configuration. Copilot deploys to a project-level .github/ directory — each new project requires its own pactkit init.
Why project-level?
GitHub Copilot loads configuration from the project's .github/ directory. There is no global user-level config directory like ~/.claude/. This means:
- Skills, agents, and prompts must live inside each project
- Rules cannot use
@include— they must be inlined into command prompts - Each project is self-contained and version-controlled
Deployment Model Comparison
| Claude Code | OpenCode | Codex CLI | Copilot | |
|---|---|---|---|---|
| Deploy target | ~/.claude/ (user) | ~/.config/opencode/ (user) | ~/.codex/ (user) | .github/ (project) |
| First-time setup | pactkit init once | pactkit init once | pactkit init once | pactkit init per project |
| Shared across projects | Yes | Yes | Yes | No — each project owns its config |
| Rules loading | @import | instructions + @reference | Inline in skills | Inline in prompts |
| Agent model | Multi-agent (9 roles) | Multi-agent | Single-agent | Multi-agent (individual files) |
| Sprint command | Full orchestration | Full orchestration | Not available | Not available |
Install
pip install pactkit pactkit-copilotUnlike other adapters, pactkit-copilot is a separate package (not bundled in core) because Copilot's project-level deployment model is fundamentally different from the user-level model used by other IDEs.
Usage: Two-Step Bootstrap
Copilot projects require a two-step initialization — first in the terminal, then in the IDE:
Step 1: Terminal — Deploy infrastructure
cd your-project
pactkit init --format copilotThis creates the .github/ structure:
| Path | Contents |
|---|---|
.github/skills/{name}/SKILL.md | 10 skills (3 scripted + 7 prompt-only) |
.github/agents/{name}.md | 9 agent definitions (individual files) |
.github/prompts/{name}.prompt.md | 10 slash commands (PDCA entry points) |
.github/copilot-instructions.md | Project-level instructions with PDCA routing |
.github/copilot-instructions.local.md | Your custom overrides (never overwritten) |
.github/pactkit.yaml | Project config |
Step 2: IDE — Initialize PDCA
Open the project in your Copilot-enabled IDE, then use:
/project-initThis creates the governance structure (docs/specs/, docs/product/sprint_board.md, etc.), same as other IDEs.
Do not skip Step 1. Unlike other IDEs where /project-init works immediately after a one-time pactkit init, Copilot requires the .github/ infrastructure to be deployed first via pactkit init --format copilot in every new project.
Update
cd your-project
pip install --upgrade pactkit pactkit-copilot
pactkit updateUpdate regenerates all managed files in .github/ while preserving:
.github/copilot-instructions.local.md(your custom instructions).github/pactkit.yaml(your project config)
MCP Server Setup
Copilot supports MCP servers via .vscode/mcp.json. PactKit recommends 5 verified servers (Playwright, Chrome DevTools, Memory, Draw.io, Context7) for browser testing, persistent memory, and documentation lookup.
See MCP Integration — GitHub Copilot Configuration for the full setup guide with verified npm packages.
Key Differences from Other IDEs
No @include for Rules
Copilot does not support @include or @import directives. PactKit handles this by inlining rules directly into each command prompt file (.github/prompts/*.prompt.md).
Two strategies are available (configured in pactkit.yaml):
| Strategy | copilot-instructions.md | Command prompts | Token cost |
|---|---|---|---|
minimal-core (default) | Routing table only | Full rules inlined per command | Lower per-turn |
full-inline | All core rules merged | Additional rules per command | Higher baseline |
# pactkit.yaml
copilot_rules_strategy: minimal-core # or full-inlineSlash Commands as .prompt.md
Copilot uses .prompt.md files in .github/prompts/ for slash commands. Each file becomes a /command-name in the Copilot chat:
.github/prompts/
project-plan.prompt.md → /project-plan
project-act.prompt.md → /project-act
project-check.prompt.md → /project-check
project-done.prompt.md → /project-done
...Multi-Agent via Individual Files
Unlike Codex CLI (single AGENTS.md), Copilot supports multi-agent via individual files in .github/agents/:
.github/agents/
senior-developer.md
system-architect.md
qa-engineer.md
repo-maintainer.md
...Each agent file includes Copilot-compatible frontmatter (name, description, tools).
Brand Replacement
All Claude/Anthropic references are automatically replaced:
| Original | Replaced |
|---|---|
| Claude Code | GitHub Copilot |
| Anthropic | GitHub |
claude-sonnet-* | capable-model |
~/.claude/ | .github/ |
Excluded Commands
/project-sprint is excluded from Copilot deployment — it requires multi-agent orchestration capabilities that Copilot does not fully support.
Version Control
The .github/ directory is meant to be committed and shared with your team:
git add .github/
git commit -m "feat: add PactKit Copilot configuration"This means teammates get the full PactKit governance structure without running pactkit init themselves — they only need to run /project-init in their IDE.
Troubleshooting
Commands not appearing in Copilot
Make sure .github/prompts/ exists and contains .prompt.md files. Run pactkit init --format copilot to regenerate.
"Unknown format: copilot" error
You need the separate adapter package:
pip install pactkit-copilotRules not loading
Copilot doesn't support @include. Check that copilot_rules_strategy in pactkit.yaml is set correctly, and that command prompt files contain inlined rules sections.