Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action> sub-command pattern. Git-flow consolidated from 8→5 commands (commit variants absorbed into --push/--merge/--sync flags). Dispatch files, name: frontmatter, and cross-reference updates for all plugins. Phase 2: Design documents for 8 new plugins in docs/designs/. Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate, saas-react-platform, saas-test-pilot, data-seed, ops-release-manager, ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents, skills, README, and claude-md-integration. Marketplace grows from 12→20. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, description
| name | description |
|---|---|
| openapi-conventions | OpenAPI 3.x spec generation rules, path naming, schema definitions, response codes |
OpenAPI Conventions
Purpose
Defines rules and patterns for generating and validating OpenAPI 3.x specifications. This skill ensures consistency between generated specs and industry best practices.
Specification Structure
An OpenAPI 3.0.3 document must include:
openapi: "3.0.3"
info:
title: <project name>
version: <project version>
description: <project description>
servers:
- url: <base url>
description: <environment name>
paths:
/<resource>: ...
components:
schemas: ...
securitySchemes: ...
tags: ...
Path Naming Rules
| Rule | Example | Anti-Pattern |
|---|---|---|
| Plural nouns for collections | /users |
/user, /getUsers |
| Lowercase with hyphens | /order-items |
/orderItems, /order_items |
| Resource ID in path | /users/{user_id} |
/users?id=123 |
| Nested resources max 2 levels | /users/{id}/orders |
/users/{id}/orders/{oid}/items/{iid} |
| No verbs in paths | /users + POST |
/createUser |
| Version prefix when configured | /v1/users |
/api/v1/users (redundant) |
Response Code Standards
| Method | Success | Client Error | Server Error |
|---|---|---|---|
| GET (single) | 200 | 404 | 500 |
| GET (list) | 200 | 400 (bad params) | 500 |
| POST | 201 | 400, 409 (conflict), 422 | 500 |
| PUT | 200 | 400, 404, 422 | 500 |
| PATCH | 200 | 400, 404, 422 | 500 |
| DELETE | 204 | 404 | 500 |
All endpoints should also document 401 (unauthorized) and 403 (forbidden) when auth is required.
Schema Definition Rules
- Naming: PascalCase for schema names (
UserCreate,OrderResponse) - Reuse: Use
$reffor shared schemas instead of duplication - Required fields: Explicitly list required fields; do not rely on defaults
- Types: Use specific types (
integernotnumberfor IDs;stringwithformat: date-timefor timestamps) - Descriptions: Every property should have a
descriptionfield - Examples: Include
examplevalues for key properties - Nullable: Use
nullable: trueexplicitly when fields can be null
Pagination Schema
List endpoints must return a paginated wrapper:
PaginatedResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ResourceResponse'
total:
type: integer
description: Total number of items
page:
type: integer
description: Current page number
page_size:
type: integer
description: Items per page
pages:
type: integer
description: Total number of pages
Security Scheme Patterns
JWT Bearer:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
API Key:
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
Apply globally or per-operation using the security field.