PactKit

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 CodeOpenCodeCodex CLICopilot
Deploy target~/.claude/ (user)~/.config/opencode/ (user)~/.codex/ (user).github/ (project)
First-time setuppactkit init oncepactkit init oncepactkit init oncepactkit init per project
Shared across projectsYesYesYesNo — each project owns its config
Rules loading@importinstructions + @referenceInline in skillsInline in prompts
Agent modelMulti-agent (9 roles)Multi-agentSingle-agentMulti-agent (individual files)
Sprint commandFull orchestrationFull orchestrationNot availableNot available

Install

pip install pactkit pactkit-copilot

Unlike 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 copilot

This creates the .github/ structure:

PathContents
.github/skills/{name}/SKILL.md10 skills (3 scripted + 7 prompt-only)
.github/agents/{name}.md9 agent definitions (individual files)
.github/prompts/{name}.prompt.md10 slash commands (PDCA entry points)
.github/copilot-instructions.mdProject-level instructions with PDCA routing
.github/copilot-instructions.local.mdYour custom overrides (never overwritten)
.github/pactkit.yamlProject config

Step 2: IDE — Initialize PDCA

Open the project in your Copilot-enabled IDE, then use:

/project-init

This 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 update

Update 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):

Strategycopilot-instructions.mdCommand promptsToken cost
minimal-core (default)Routing table onlyFull rules inlined per commandLower per-turn
full-inlineAll core rules mergedAdditional rules per commandHigher baseline
# pactkit.yaml
copilot_rules_strategy: minimal-core  # or full-inline

Slash 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:

OriginalReplaced
Claude CodeGitHub Copilot
AnthropicGitHub
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-copilot

Rules 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.

On this page