まず契約、ハンドラは後。交渉の余地はありません。
仕様が唯一の情報源で、コードはそれに従います。セキュリティの宣言、標準化されたエラー、冪等な書き込み、署名付き Webhook、そして ADR と期日を伴う破壊的変更のみを認めます。
$ schematize install api譲れない最低基準
「速くするため」に外すことはできません。全リストはスキルをご覧ください。
コントラクトファースト
仕様(OpenAPI 3.1 以上または .proto)が情報源です。ハンドラとクライアントは仕様から生成または仕様に対して検証し、ドリフトは CI で止めます。
全操作でセキュリティを宣言
securitySchemes を置いてすべての操作をカバーします。意図的な公開は security: [] を明示し、トークンをクエリ文字列に載せません。
エラーは problem+json(RFC 9457)
4xx/5xx はすべて安定した type を持ちます。本文にエラーを入れた 200 や、detail へのスタックトレース・SQL は不可です。
副作用のある POST は Idempotency-Key 必須
プリンシパル単位で有効とし、同じレスポンスを再生します。誤用には 422/409 を返します。
コレクションは不透明カーソルでページング
安定した全順序と上限付きの limit を持たせます。offset は理由を書いた場合のみです。
署名付き Webhook と再送ウィンドウ
エンドポイントごとの HMAC、id と timestamp、バックオフとジッタ付きリトライ、DLQ、SSRF 対策。配信は at-least-once で、exactly-once は約束しません。
破壊的変更は ADR と期日が必須
互換性 diff(oasdiff、buf breaking)を PR で実行します。非推奨化は Deprecation + Sunset + 移行リンクを付け、期日に 410 を返します。
全フィールドに上限、金額は整数
すべての入力に maxLength、maximum、maxItems を設定します。金額は最小単位の整数と通貨で表し、float は使いません。
コマンド
.claude/commands/ にインストールされます。いつでも /api-help を実行できます。
/api-breaking契約の変更を分類し、互換性 diff を実行して、期日付きの非推奨化計画を作ります。/api-ccContext compact: handoff をアーカイブに書き出し、/compact を実行します。/api-claudeAPI コントラクトの基本ルールを定めた常時有効な CLAUDE.md をリポジトリのルートに作成またはマージします(他のスキルのブロックは上書きしません)。/api-designハンドラを書く前に、新しいリソースや操作をコントラクトファーストで設計します。/api-handoffコンテキストの handoff(context.md + checklist.md)を、圧縮せずにアーカイブへ出力します。/api-helpすべてのコマンドと、それぞれの役割を一覧表示します。/api-loadAPI コントラクトの規範を強制的にすべて読み込み、このセッションで適用します。/api-reviewOpenAPI/.proto の仕様を基準に照らしてレビューします。ゲートを実行し、機械では読めない部分を人が読みます。/api-webhook送信・受信する Webhook を設計またはレビューします。署名、再送、リトライ、重複排除、SSRF を扱います。AIエージェント向け
人手を介さずにインストールできます。メタデータは llms.txt にあります。
- 実行: git clone https://github.com/schematizeme/skill-api.git && ./skill-api/install.sh
- またはダウンロード: https://github.com/schematizeme/skill-api/releases/latest/download/skill-api.zip を .claude/skills/ に展開
- assets/CLAUDE.md をリポジトリのルートにコピー(常時オンのルール)。
- /api-help で確認。
ディスカッション
読み込み中…