Claude Code Plugins

Community-maintained marketplace

Feedback

Reference knowledge for Google API Improvement Proposals (AIP), adapted for REST/OpenAPI. Use when reviewing APIs, designing endpoints, or explaining AIP rules. Contains patterns for errors, pagination, filtering, LRO, field masks, and batch operations.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name aip-knowledge
description Reference knowledge for Google API Improvement Proposals (AIP), adapted for REST/OpenAPI. Use when reviewing APIs, designing endpoints, or explaining AIP rules. Contains patterns for errors, pagination, filtering, LRO, field masks, and batch operations.

AIP Knowledge

Quick reference for API Improvement Proposals adapted to REST/OpenAPI.

When to Load References

Based on the task, load the relevant reference file:

Topic Reference File When to Use
Error responses errors.md Designing error schema, reviewing error handling
Pagination pagination.md Adding pagination to list endpoints
Filtering & sorting filtering.md Adding filter/order_by parameters
Long-running ops lro.md Async operations, jobs, polling
Partial updates field-masks.md PATCH implementation, update semantics
Batch operations batch.md Batch create/update/delete
Proto → REST mapping rest-mapping.md Translating AIP concepts to REST

Implemented Linter Rules

The AIP reviewer includes 17 automated rules across 6 categories:

Naming (AIP-122)

Rule ID Severity What It Checks
aip122/plural-resources warning Resource paths use plural nouns
aip122/no-verbs error Paths contain nouns, not verbs
aip122/consistent-casing warning Path segments use consistent casing (kebab, snake, camel)
aip122/nested-ownership suggestion Nested resource params have descriptive names (not just {id})

Standard Methods (AIP-131 to 135)

Rule ID Severity What It Checks
aip131/get-no-body error GET requests have no request body
aip133/post-returns-201 suggestion POST returns 201 Created or 202 Accepted
aip134/patch-over-put suggestion PATCH available for partial updates (not just PUT)
aip135/delete-idempotent warning DELETE has no body and uses standard status codes

Pagination (AIP-158)

Rule ID Severity What It Checks
aip158/list-paginated warning List endpoints have page_size and page_token params
aip158/max-page-size suggestion page_size param has maximum constraint
aip158/response-next-token warning Paginated responses include next_page_token field

Filtering (AIP-132, 160)

Rule ID Severity What It Checks
aip132/has-filtering suggestion List endpoints document filter parameters
aip132/has-ordering suggestion List endpoints support order_by parameter

Errors (AIP-193)

Rule ID Severity What It Checks
aip193/schema-defined warning Error schema defined in components
aip193/responses-documented suggestion Operations document error responses
aip193/standard-codes suggestion Standard HTTP error codes used (400, 401, 403, 404, etc.)

Idempotency (AIP-155)

Rule ID Severity What It Checks
aip155/idempotency-key suggestion POST endpoints accept Idempotency-Key header

Topics Without Automated Rules (Reference Only)

The following topics have detailed reference documentation but no automated linter rules yet:

  • Field Masks (field-masks.md) - AIP-134 partial update patterns (only aip134/patch-over-put checks for PATCH availability)
  • Batch Operations (batch.md) - AIP-231+ batch patterns
  • Long-Running Operations (lro.md) - AIP-151, 155 async patterns
  • Proto → REST Mapping (rest-mapping.md) - Translation guide

Quick Reference

Standard Methods → HTTP

Method HTTP Path Idempotent Related Rules
Get GET /resources/{id} Yes aip131/get-no-body
List GET /resources Yes aip158/list-paginated, aip132/has-filtering, aip132/has-ordering
Create POST /resources No* aip133/post-returns-201, aip155/idempotency-key
Update PATCH /resources/{id} Yes aip134/patch-over-put
Delete DELETE /resources/{id} Yes aip135/delete-idempotent

*Use Idempotency-Key header for safe retries

Naming Rules (AIP-122)

  • /users, /orders, /products (plural nouns)
  • /user, /order (singular - triggers aip122/plural-resources)
  • /getUsers, /createOrder (verbs - triggers aip122/no-verbs)
  • /users/{id}/orders (nested ownership)

Pagination (AIP-158)

Request: ?page_size=20&page_token=xxx

Response:

{
  "data": [...],
  "next_page_token": "yyy"
}

Error Response (AIP-193)

{
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "Human-readable message",
    "details": [...],
    "request_id": "req_abc123"
  }
}

Fetch AIPs On Demand

For detailed guidance, fetch from:

  • https://google.aip.dev/{number} (e.g., /158 for pagination)
  • Only fetch when user needs deeper explanation