contract-test-design
npx skills add https://github.com/melodic-software/claude-code-plugins --skill contract-test-design
Agent 安装分布
Skill 文档
Contract Test Design
When to Use This Skill
Use this skill when:
- Contract Test Design tasks – Working on consumer-driven contract testing strategies using Pact
- Planning or design – Need guidance on contract testing approaches
- Best practices – Want to follow established patterns and standards
Overview
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.
Contract Testing vs Other Test Types
| 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-Driven Contract Flow
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â 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 â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Quick Reference: Breaking Changes
| 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 |
Tooling Selection
| 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 |
References
| 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 |
Integration Points
Inputs from:
- API specifications â Contract definitions
- Service architecture â Consumer-provider map
test-strategy-planningskill â Contract test scope
Outputs to:
- CI/CD pipeline â Contract verification gates
- API governance â Breaking change detection
api-design-fundamentalsskill â Contract-first design
Test Scenarios
Scenario 1: Planning contract testing strategy
Query: “Help me design a contract testing strategy for our microservices”
Expected: Skill activates, provides strategy template, guides through service mapping
Scenario 2: Implementing Pact tests
Query: “Show me how to write Pact consumer tests in .NET”
Expected: Skill activates, loads pact-dotnet-implementation.md reference, provides code examples
Scenario 3: CI/CD integration
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
Version History
- v1.1.0 (2025-12-28): Refactored to progressive disclosure – extracted implementation to references/
- v1.0.0 (2025-12-26): Initial release