smithery.ai

api-contract-validation

Detect breaking changes in API contracts (OpenAPI/Swagger specs)

First seen Apr 13, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
Allowed toolsBash, Read
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,617 B
  • docs SUMMARY.md 95 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

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:

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/{SESSIONID}/skills/apicontract_validation.json

Step 2: Read Generated Report

Use the Read tool to read:

bazinga/artifacts/{SESSION_ID}/skills/api_contract_validation.json

Extract key information:

  • status - breakingchangesdetected/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 changes