From argos
REST/OpenAPI/GraphQL/WS contract review — versioning, idempotency, error model, breaking change, auth scope, pagination.
npx claudepluginhub resultakak/argos --plugin argosThis skill uses the workspace's default tool permissions.
`agents/shared/severity-rubric.md` ve `agents/shared/escalation-matrix.md` default-load
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
agents/shared/severity-rubric.md ve agents/shared/escalation-matrix.md default-load
sayılır (agents/coordination.md §11). Bu skill'in çıktısı Critical / High / Medium /
Low + kanıt formatında olmak zorunda — spekülatif Critical yasak. Sahiplik dışı bulgu
ilgili agent'a delege; karar yetkisi eşiği aşılırsa kullanıcı onayı zorunlu.
openapi.yaml, openapi.json, *.openapi.**.graphql, *.graphqls, schema.jsonroutes/, controllers/, @app.get, @router.post, r.HandleFunc, app.get(...)/orders değil /order_list)./orders/{id}/items)./getUser ❌ → GET /users/{id} ✅).Idempotency-Key header zorunlu.200 body var, 204 body yok.201 Created + Location header POST'ta.202 Accepted async iş için + status URL.400 validation, 401 unauthenticated, 403 unauthorized, 404 not found,
409 conflict, 422 semantic validation, 429 rate limit, 5xx server.{type, title, status, detail, instance}./v1/...) veya Accept: application/vnd.example.v1+json./v2/...); eski major en az 6 ay veya next-major release'e kadar yaşamalı (Sunset header).Idempotency-Key zorunlu, server hash'i 24-72 saat saklasın.Link: <...>; rel="next" veya body: { data, next_cursor, has_more }.security:).403 + RFC 7807 type: ".../insufficient-scope".RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (RFC draft).429 + Retry-After header.{ "error": "..." } ve { "detail": "..." } karışık → tek standart.oasdiff veya graphql-inspector diff koştur.@deprecated(reason: "...") + sunset tarihi.{ type, version, payload, ts, correlation_id }.agents/websocket-protocol-auditor ile birlikte review./createOrder, /getUser) — REST resource modeline aykırı.200 OK { error: "..." } — status hep 200, error body'de — client retry mantığı bozulur.string field üstüne ek constraint (max length) eklemek breaking sayılabilir, dökumented olmalı.?offset=...&limit=... 1M satırlık tabloda — DB tarafı ölür.Idempotency-Key yokken POST /payments — duplicate charge riski.Query.users(limit: Int) limit opsiyonel + cap yok → DoS vektörü.Accept: application/json her sürümde aynı) → versioning fiilen yok.User: /api-contract-review openapi.yaml
Agent (api-contract-guardian):
1. spec parse + önceki sürümle oasdiff.
2. Tespit: POST /payments Idempotency-Key yok (Critical — duplicate charge).
3. Tespit: GET /v1/users snake_case, GET /v1/orders camelCase (High — client confusion).
4. Tespit: 201 yerine 200 POST /orders (Medium).
5. Tespit: Error body 3 farklı şekilde (High — RFC 7807 standardize et).
6. Delege: security-reviewer auth scope kontrolüne; test-engineer contract test eksiğine.
7. Output: rapor + diff + breaking change tablosu + sunset planı.
# API Contract Review: <spec/route>
## Critical
- [ ] ... — kanıt: line/diff
## High
## Medium
## Low
## Breaking Changes (vs prev)
- field/type değişiklik tablosu
## Diff (özet)
```yaml
# fixed openapi snippet