api-contract-validation
Detect breaking changes in API contracts (OpenAPI/Swagger specs)
Best use case
api-contract-validation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Detect breaking changes in API contracts (OpenAPI/Swagger specs)
Teams using api-contract-validation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/api-contract-validation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How api-contract-validation Compares
| Feature / Agent | api-contract-validation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Detect breaking changes in API contracts (OpenAPI/Swagger specs)
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# API Contract Validation Skill
You are the api-contract-validation skill. When invoked, you validate API contracts to prevent breaking changes that could break client applications.
## When to Invoke This Skill
**Invoke this skill when:**
- Making changes to API endpoints
- Modifying request/response schemas
- Before deploying API updates
- Reviewing PRs with API changes
- In CI/CD pipeline for API projects
**Do NOT invoke when:**
- No OpenAPI/Swagger spec exists
- Creating brand new API (no baseline)
- Non-REST APIs (GraphQL, gRPC - different validation)
- Internal APIs with no external clients
---
## Your Task
When invoked:
1. Execute the API contract validation script
2. Read the generated validation report
3. Return a summary to the calling agent
---
## Step 1: Execute API Validation Script
Use the **Bash** tool to run the pre-built validation script:
```bash
python3 .claude/skills/api-contract-validation/validate.py
```
This script will:
- Find OpenAPI/Swagger specification files
- Load baseline (previous version) for comparison
- Compare specs to detect breaking changes
- Identify safe changes
- Generate recommendations
- Create `bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json`
---
## Step 2: Read Generated Report
Use the **Read** tool to read:
```bash
bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json
```
Extract key information:
- `status` - breaking_changes_detected/safe/no_baseline
- `breaking_changes` - Array of critical/high severity issues
- `warnings` - Medium severity changes
- `safe_changes` - Backward-compatible changes
- `recommendations` - Safe alternatives
---
## Step 3: Return Summary
Return a concise summary to the calling agent:
```
API Contract Validation:
- Specs analyzed: {count}
- Baseline: {exists/created}
⚠️ BREAKING CHANGES: {count}
- Critical: {count}
- High: {count}
Safe changes: {count}
{If breaking changes:}
Top recommendations:
1. {recommendation}
2. {recommendation}
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json
```
---
## Example Invocation
**Scenario: Breaking Change Detected**
Input: Tech Lead reviewing API changes that remove an endpoint
Expected output:
```
API Contract Validation:
- Specs analyzed: 1 (openapi.yaml)
- Baseline: exists
⚠️ BREAKING CHANGES: 3
- Critical (1): Endpoint /api/users/{id} DELETE removed - clients will break
- High (2): Required field "email" removed from /api/users response
Response status changed from 200 to 404 for /api/orders
Safe changes: 2
Top recommendations:
1. Use API versioning (/v2/api/users) instead of removing endpoint
2. Add "email" field back or create new versioned endpoint
3. Deprecate with 410 Gone status before complete removal
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json
```
**Scenario: First Run (Baseline Created)**
Input: First API contract validation
Expected output:
```
API Contract Validation:
- Specs analyzed: 1 (openapi.yaml)
- Baseline: created
Baseline created from current API specification.
Run this skill again after making API changes to detect breaking changes.
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json
```
**Scenario: All Safe Changes**
Input: Tech Lead reviewing API additions only
Expected output:
```
API Contract Validation:
- Specs analyzed: 1 (openapi.yaml)
- Baseline: exists
✅ No breaking changes detected
Safe changes: 4
- New endpoint added: POST /api/health
- Optional field added to /api/users: "created_at"
- New enum value added: status="archived"
- Documentation updated for /api/orders
All changes are backward-compatible.
Details saved to: bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json
```
---
## Error Handling
**If no specs found:**
- Return: "No OpenAPI/Swagger specs found. Cannot validate API contracts."
**If spec parsing fails:**
- Return: "Failed to parse spec: {error}. Check spec format."
**If no baseline:**
- Create baseline from current spec
- Return: "Baseline created for future comparisons."
---
## Notes
- The script handles all spec parsing and comparison logic
- Endpoint removal is CRITICAL (breaks existing clients)
- Field removal from responses is HIGH severity
- Adding optional fields is safe
- Type widening (int → float) may be safe depending on clients
- Always suggest versioning over breaking changesRelated Skills
contract-review-pro
专业合同审核 Skill,基于《合同审核方法论体系》提供合同类型指引和详细审核服务
bio-alignment-validation
Validate alignment quality with insert size distribution, proper pairing rates, GC bias, strand balance, and other post-alignment metrics. Use when verifying alignment data quality before variant calling or quantification.
add-bc-contract
Add Contract for inter-BC communication using Provider pattern. Use when one Bounded Context needs to access data from another BC (e.g., Inventory needs Articles from Admin). Creates Contract interface, Provider implementation, and configuration.
date-validation
Use when editing Planning Hubs, timelines, calendars, or any file with day-name + date combinations (Wed Nov 12), relative dates (tomorrow), or countdowns (18 days until) - validates day-of-week accuracy, relative date calculations, and countdown math with two-source ground truth verification before allowing edits
u01874-handoff-contracting-for-marketing-and-storytelling
Operate the "Handoff Contracting for marketing and storytelling" capability in production for marketing and storytelling workflows. Use when mission execution explicitly requires this capability and outcomes must be reproducible, policy-gated, and handoff-ready.
spring-validation
Bean Validation (Jakarta Validation) with Spring Boot. Custom validators, validation groups, cross-field validation, and internationalized error messages.
Smart Contracts
Smart contracts are self-executing programs on blockchain. This guide covers Solidity basics, contract deployment, interaction, and frontend integration for building decentralized applications with au
fullstack-validation
Comprehensive validation methodology for multi-component applications including backend, frontend, database, and infrastructure
Data Contracts
A Data Contract is a formal agreement between a data producer (e.g., a microservice) and a data consumer (e.g., a data platform) that defines the structure, semantics, and quality of data being shared
Contract Testing Pact
Contract testing validates that service consumers and providers agree on request/response expectations. Pact implements consumer-driven contracts (CDC) with shareable pact files and provider verificat
api-validation
Apply when validating API request inputs: body, query params, path params, and headers. This skill covers Zod v4 patterns.
api-request-validation
A skill for implementing robust API request validation in Python web frameworks like FastAPI using Pydantic. Covers Pydantic models, custom validators (email, password), field-level and cross-field validation, query/file validation, and structured error responses. Use when you need to validate incoming API requests.