Drift AI Agent Skills
The pact-agentic-tooling-extensions repository provides two AI agent skills for use with Drift:
| Skill | Plugin name | What it does |
|---|---|---|
| Drift | swagger-contract-testing-drift | Expert assistant for Drift — PactFlow's OpenAPI contract testing CLI. Helps write test cases, configure lifecycle hooks, debug failures, and publish results to PactFlow. |
| OpenAPI Parser | swagger-contract-testing-openapi-parser | Parses complex OpenAPI specs (anyOf/oneOf/allOf, discriminators, polymorphism, $ref chains, enums, regex) and generates Drift test cases covering every viable schema combination. |
The two skills are designed to work together: OpenAPI Parser analyses a spec and generates test case scaffolding; Drift runs, iterates, and publishes those tests.
When to use these skills
Use these skills when you want to:
- Generate initial Drift tests from an OpenAPI spec
- Expand coverage incrementally with negative and auth scenarios
- Audit existing tests for coverage gaps
- Keep test suites maintainable as specs evolve
Installation
Installation steps depend on your AI coding agent. Select your agent below.
Claude Code
Claude Code supports skills via a plugin marketplace. Requires Claude Code v1.0.33+.
Recommended: install from the marketplace
-
Add the marketplace inside a Claude Code session:
/plugin marketplace add pactflow/pact-agentic-tooling-extensionsAlternatively, add the following to
.claude/settings.jsonso teammates are prompted to install automatically when they open the project:{
"extraKnownMarketplaces": {
"pact-agentic-tooling-extensions": {
"source": {
"source": "github",
"repo": "pactflow/pact-agentic-tooling-extensions"
}
}
}
} -
Install both plugins:
/plugin install swagger-contract-testing-drift@pact-agentic-tooling-extensions
/plugin install swagger-contract-testing-openapi-parser@pact-agentic-tooling-extensions
Scope options
| Scope | Stored in | Who it applies to |
|---|---|---|
user (default) | ~/.claude/settings.json | You, across all projects |
project | .claude/settings.json | Everyone on the team (commit this file) |
local | .claude/settings.local.json | You, in this project only (gitignored) |
Install from a local clone
/plugin marketplace add ./path/to/pact-agentic-tooling-extensions/.claude-plugin/marketplace.json
/plugin install swagger-contract-testing-drift@pact-agentic-tooling-extensions
/plugin install swagger-contract-testing-openapi-parser@pact-agentic-tooling-extensions
Managing installed plugins
/plugin # open plugin manager
/reload-plugins # reload without restarting
/plugin disable swagger-contract-testing-drift@pact-agentic-tooling-extensions
/plugin uninstall swagger-contract-testing-drift@pact-agentic-tooling-extensions
GitHub Copilot (VS Code)
Skills are loaded from SKILL.md files in named subdirectories and invoked as slash commands in Copilot Chat (/drift, /openapi-parser).
Project-level install (recommended for teams)
Copy the skill folders into one of the standard discovery locations:
# .github/skills (most common for GitHub projects)
mkdir -p .github/skills
cp -r skills/drift .github/skills/drift
cp -r skills/openapi-parser .github/skills/openapi-parser
Commit the chosen directory to share the skills with your team.
Personal install (all your projects)
mkdir -p ~/.copilot/skills
cp -r skills/drift ~/.copilot/skills/drift
cp -r skills/openapi-parser ~/.copilot/skills/openapi-parser
Custom location
Point Copilot at any directory via VS Code settings:
{
"chat.agentSkillsLocations": ["/path/to/your/skills"]
}
Once installed, invoke a skill in Copilot Chat:
/drift write a test case for POST /orders returning 201
/openapi-parser generate Drift tests for the payments spec
OpenCode
Skills are loaded from SKILL.md files in named subdirectories. OpenCode selects relevant skills automatically based on task context.
Global install (all projects)
cp -r skills/drift ~/.config/opencode/skills/drift
cp -r skills/openapi-parser ~/.config/opencode/skills/openapi-parser
Project-level install
mkdir -p .opencode/skills
cp -r skills/drift .opencode/skills/drift
cp -r skills/openapi-parser .opencode/skills/openapi-parser
Cursor
Remote install from GitHub
- Open Cursor Settings > Rules.
- Click Add Rule in Project Rules.
- Select Remote Rule (GitHub).
- Enter the URL for each skill folder:
https://github.com/pactflow/pact-agentic-tooling-extensions/tree/main/skills/drifthttps://github.com/pactflow/pact-agentic-tooling-extensions/tree/main/skills/openapi-parser
Project-level install (manual)
mkdir -p .cursor/skills
cp -r skills/drift .cursor/skills/drift
cp -r skills/openapi-parser .cursor/skills/openapi-parser
Global install (all projects)
mkdir -p ~/.cursor/skills
cp -r skills/drift ~/.cursor/skills/drift
cp -r skills/openapi-parser ~/.cursor/skills/openapi-parser
Windsurf
From the UI
- Open the Cascade panel.
- Click the ... menu > Skills.
- Choose + Workspace (project) or + Global.
- Copy the contents of each
SKILL.mdinto the new skill.
Project-level install (manual)
mkdir -p .windsurf/skills
cp -r skills/drift .windsurf/skills/drift
cp -r skills/openapi-parser .windsurf/skills/openapi-parser
Global install (all projects)
mkdir -p ~/.codeium/windsurf/skills
cp -r skills/drift ~/.codeium/windsurf/skills/drift
cp -r skills/openapi-parser ~/.codeium/windsurf/skills/openapi-parser
Codex
Using the skill installer
$skill-installer pactflow/pact-agentic-tooling-extensions/skills/drift
$skill-installer pactflow/pact-agentic-tooling-extensions/skills/openapi-parser
Project-level install (manual)
mkdir -p .agents/skills
cp -r skills/drift .agents/skills/drift
cp -r skills/openapi-parser .agents/skills/openapi-parser
Global install (all projects)
mkdir -p ~/.agents/skills
cp -r skills/drift ~/.agents/skills/drift
cp -r skills/openapi-parser ~/.agents/skills/openapi-parser
Kiro
Import from GitHub (recommended)
- Open the Agent Steering & Skills panel in Kiro.
- Click + > Import a skill.
- Select GitHub and paste the URL for each skill folder:
https://github.com/pactflow/pact-agentic-tooling-extensions/tree/main/skills/drifthttps://github.com/pactflow/pact-agentic-tooling-extensions/tree/main/skills/openapi-parser
Project-level install (manual)
mkdir -p .kiro/skills
cp -r skills/drift .kiro/skills/drift
cp -r skills/openapi-parser .kiro/skills/openapi-parser
Global install (all projects)
mkdir -p ~/.kiro/skills
cp -r skills/drift ~/.kiro/skills/drift
cp -r skills/openapi-parser ~/.kiro/skills/openapi-parser
When both locations contain a skill with the same name, the workspace skill takes priority.
Skill contents
The skills repository has the following structure:
skills/
├── drift/
│ ├── SKILL.md # Drift CLI usage, test case patterns, auth, CI/CD
│ ├── references/
│ │ ├── test-cases.md # Full test case YAML schema
│ │ ├── lua-api.md # Complete Lua API and lifecycle hooks
│ │ ├── cli-reference.md # All CLI commands and flags
│ │ ├── auth.md # Authentication patterns and credential handling
│ │ ├── mock-server.md # Mock server setup and configuration
│ │ └── pactflow-and-cicd.md # BDCT publishing, GitHub Actions, GitLab CI
│ └── scripts/
│ ├── check_coverage.py # Coverage analysis script
│ ├── extract_endpoints.py # Extract endpoints from OpenAPI specs
│ ├── run_loop.sh # Feedback loop runner (macOS/Linux)
│ ├── run_loop.ps1 # Feedback loop runner (Windows)
│ ├── start_mock.sh # Start mock server (macOS/Linux)
│ └── start_mock.ps1 # Start mock server (Windows)
│
└── openapi-parser/
├── SKILL.md # Workflow: locate, resolve, enumerate, generate
└── references/
├── schema-patterns.md # anyOf/oneOf/allOf/discriminator/$ref/enum/pattern/nullable
└── drift-mapping.md # Mapping every pattern to Drift YAML with full examples
Windows users
The install commands on this page use Unix shell syntax. In PowerShell, replace:
| Unix | PowerShell |
|---|---|
mkdir -p path/to/dir | New-Item -ItemType Directory -Force -Path path\to\dir |
cp -r skills/drift path/to/dir | Copy-Item -Recurse skills\drift path\to\dir |
~ (home directory) works in PowerShell 3+. In older environments use $HOME instead.