Communityコーディング&開発github.com

jovd83/api-contract-sentinel

APIの仕様書(OpenAPI、AsyncAPI、JSON Schema、protobuf、PRDなど)と実際の実装を照合し、リリース前に乖離(ドリフト)を検出します。

api-contract-sentinel とは?

jovd83/api-contract-sentinel は、APIの開発において、仕様書(コントラクト)と実装の間に生じる乖離(ドリフト)を自動的に検出するためのスキルです。OpenAPI、AsyncAPI、JSON Schema、Protocol Buffers、あるいは製品要件定義書(PRD)といった様々な形式のコントラクトをサポートしており、開発者がリリース前に手動で確認する手間を省き、品質を維持します。このスキルは、Claude Code、Coder、CodexなどのAIエージェントと連携して動作し、指定されたコントラクトファイルとAPIのエンドポイントやレスポンスを比較します。具体的には、コントラクトで定義されたパス、メソッド、リクエスト/レスポンスのスキーマが実際の実装と一致しているかを検証し、欠落や型の不一致、必須パラメータの欠如などを検出します。これにより、APIの破壊的変更や予期せぬ不具合を早期に発見し、開発サイクルの後半での手戻りを防ぐことができます。

対応~Claude Code~Codex CLI~Cursor
npx skills add jovd83/api-contract-sentinel

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

api-contract-sentinel は何をしますか?

APIをOpenAPI、AsyncAPI、JSON Schema、protobuf、またはPRDのコントラクトと照合し、リリース前にドリフトを検出します。

概要

このスキルは、APIの実装とその定義されたコントラクト(仕様書)との間の乖離(ドリフト)を自動的に監査します。様々なコントラクト形式に対応しており、CI/CDパイプラインや開発ワークフローに統合して使用できます。

サポートするコントラクト形式

  • OpenAPI (Swagger) 2.0 / 3.0
  • AsyncAPI 2.0+
  • JSON Schema
  • Protocol Buffers (protobuf)
  • 製品要件定義書 (PRD)

使用方法

基本的な使い方

contract-sentinel audit --contract ./api-spec.yaml --endpoint https://api.example.com

CI/CDパイプラインへの統合

GitHub Actionsの例:

name: API Contract Audit

on:
  pull_request:
    paths:
      - 'api-spec.yaml'
      - 'src/**'

jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run Contract Audit
        uses: jovd83/api-contract-sentinel@v1
        with:
          contract: 'api-spec.yaml'
          endpoint: ${{ secrets.API_ENDPOINT }}

設定オプション

オプション説明デフォルト値
--contractコントラクトファイルのパス必須
--endpoint監査対象のAPIエンドポイント必須
--strict厳格モード(警告もエラーとして扱う)false
--output出力形式(json, table, junit)table

環境変数

  • API_KEY: API認証用のキー (オプション)
  • AUDIT_LEVEL: 監査の詳細度 (info, warn, error)

出力例

+-------------+----------------+-------------------------+-------------+
| エンドポイント | 期待される状態コード | 実際の状態コード | ステータス |
+-------------+----------------+-------------------------+-------------+
| GET /users  | 200            | 200                     | ✓ 一致      |
| POST /users | 201            | 400                     | ✗ 不一致    |
+-------------+----------------+-------------------------+-------------+

注意事項

  • このスキルは、完全な置き換えではなく、手動レビューの補助として使用してください。
  • PRDコントラクトの場合は、自然言語処理を使用して要件を解析するため、精度が低下する可能性があります。
  • 大量のエンドポイントがあるAPIの場合は、--strict モードの使用を推奨しません。

ライセンス

MIT

関連スキル