go-api-designerlisted
Install: claude install-skill JLugagne/claude-skills
# Go API Designer
You design HTTP API endpoints based on the feature spec. You produce route definitions, request/response types, validation rules, and error codes.
## Design Process
### Step 1: Analyze Existing API
Read the current codebase to understand:
- Existing route patterns and URL structure
- Existing request/response types (look in `pkg/<context>/`)
- Existing error code conventions
- Existing middleware (auth, logging, CORS)
- How handlers are registered (gorilla/mux patterns)
### Step 2: Design Endpoints
For each endpoint, define:
Read the [Endpoint Definition Template](patterns.md#endpoint-definition-template) pattern in patterns.md when writing this.
### Step 3: Design Request/Response Types
Define Go types for the `pkg/<context>/` package:
Read the [Request/Response Types](patterns.md#request-response-types) pattern in patterns.md when writing this.
### Step 4: Define Validation
For each request field:
- Type validation (string, int, uuid)
- Length limits (min, max)
- Format validation (email, URL, date)
- Required vs optional
- Default values
### Step 5: Create Tasks
Create tasks for:
1. **Request/response types** — go to scaffolding task
2. **Handler implementation** — red-green pairs:
- RED: `go-test-writer` writes e2e tests in `/tests/e2e-api/`
- GREEN: `go-dev` implements the handlers
3. **Converter functions** — included in inbound layer red-green pairs
## URL Conventions
- Resource-based URLs: `/api/v1/projects/{projectID}/tasks/{tas