From test-strategy
Designs consumer-driven contract testing strategies using Pact, verifies provider contracts, and manages API evolution with contract-first approaches.
How this skill is triggered — by the user, by Claude, or both
Slash command
/test-strategy:contract-test-designThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill when:
Use this skill when:
Contract testing verifies that services communicate correctly by testing the contract (API agreement) between a consumer and provider. Consumer-driven contracts (CDC) ensure providers don't break their consumers.
| Aspect | E2E Tests | Integration Tests | Contract Tests |
|---|---|---|---|
| Scope | Full system | Component + deps | Consumer-provider |
| Speed | Slow (minutes) | Medium (seconds) | Fast (ms) |
| Reliability | Often flaky | Moderate | Very stable |
| Deployment coupling | High | Medium | Low (async) |
| Failure localization | Poor | Moderate | Excellent |
| Maintenance | High | Medium | Low |
┌─────────────────────────────────────────────────────────────┐
│ CONSUMER SIDE │
│ │
│ 1. Consumer writes test 2. Test generates contract │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Consumer │ │ Contract │ │
│ │ Test │ ─────► │ (JSON) │ │
│ └──────────────┘ └──────────────┘ │
│ │ │
└──────────────────────────────────────┼──────────────────────┘
│
▼ Publish to Broker
┌──────────────────┐
│ Contract Broker │
│ (Pact Broker) │
└────────┬─────────┘
│
┌──────────────────────────────────────┼──────────────────────┐
│ PROVIDER SIDE │ │
│ ▼ │
│ 3. Provider verifies contract │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Provider │ ◄───── │ Contract │ │
│ │ Verification│ │ (JSON) │ │
│ └──────────────┘ └──────────────┘ │
│ │ │
│ ▼ │
│ 4. Provider tests pass = Contract honored │
│ │
└─────────────────────────────────────────────────────────────┘
| Change Type | Breaking? | Action |
|---|---|---|
| Remove field | Yes | Block deployment |
| Change field type | Yes | Block deployment |
| Add required field | Yes | Block deployment |
| Add optional field | No | Allow |
| Add new endpoint | No | Allow |
| Purpose | Tool | Rationale |
|---|---|---|
| Contract Framework | PactNet | .NET native, mature |
| Broker | Pact Broker | Standard, free tier |
| Async Contracts | Pact Message | Same ecosystem |
| Schema Validation | OpenAPI | Industry standard |
| Reference | Content | When to Load |
|---|---|---|
| strategy-template.md | Contract testing strategy template, service maps, workflows | Planning contract testing strategy |
| pact-dotnet-implementation.md | Consumer tests, provider verification, provider states | Implementing Pact in .NET |
| message-contracts.md | Async message/event contract testing | Testing event-driven architectures |
| matchers-cicd.md | Pact matchers, breaking change detection, CI/CD pipelines | Matcher syntax, CI/CD integration |
Inputs from:
test-strategy-planning skill → Contract test scopeOutputs to:
api-design-fundamentals skill → Contract-first designQuery: "Help me design a contract testing strategy for our microservices"
Expected: Skill activates, provides strategy template, guides through service mapping
Query: "Show me how to write Pact consumer tests in .NET"
Expected: Skill activates, loads pact-dotnet-implementation.md reference, provides code examples
Query: "How do I integrate contract testing into our GitHub Actions pipeline?"
Expected: Skill activates, loads matchers-cicd.md reference, provides pipeline examples
Last Updated: 2025-12-28
npx claudepluginhub melodic-software/claude-code-plugins --plugin test-strategyValidates API contracts with Pact (JS/Python/JVM) and Spring Cloud Contract via consumer-driven testing. Prevents microservice breaking changes.
Defines and verifies API contracts between consumer and provider services independently, enabling teams to deploy without integration test environments.
Sets up Pact contract testing for microservices: consumer-driven contracts with provider states and interactions, verification via state handlers, OpenAPI validation middleware, breaking change detection.