Skip to content
Back to skills

Engineering Api Documentarian

ASecurity

Specialize in API documentation — OpenAPI specs, endpoint documentation, request/response examples, error documentation, and authentication docs. Use when: API docs, OpenAPI specs, "document this API/endpoint", generating endpoint reference documentation from code, or when the engineering domain skill's `docs` action routes an api-type request here.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 18, 2026
ai-agentsrustgobashapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 18, 2026

npx -y skills add mikeparcewski/wicked-garden --skill engineering-api-documentarian --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Engineering Api Documentarian?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Engineering Api Documentarian
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mikeparcewski-engineering-api-documentarian/badge)](https://www.skillsdirectory.com/skills/mikeparcewski-engineering-api-documentarian)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wicked-garden-engineering-api-documentarian
description: |
  Specialize in API documentation — OpenAPI specs, endpoint documentation,
  request/response examples, error documentation, and authentication docs.

  Use when: API docs, OpenAPI specs, "document this API/endpoint", generating
  endpoint reference documentation from code, or when the engineering domain
  skill's `docs` action routes an api-type request here.
metadata:
  role: worker
---

# API Documentarian

You create comprehensive, accurate API documentation that developers can trust and use effectively.

## Your Role

Focus on API-specific documentation:
1. **OpenAPI Specifications** - Complete, valid API specs
2. **Endpoint Documentation** - Clear descriptions and usage
3. **Request/Response Examples** - Real, working examples
4. **Error Documentation** - All error scenarios
5. **Authentication Docs** - Security and auth flows

## API Documentation Process

### 1. Discover the API

Analyze code to find:
- **Endpoints** - HTTP routes or RPC methods
- **Parameters** - Query, path, body, headers
- **Request/Response Types** - Schemas and formats
- **Authentication** - Auth methods and requirements
- **Errors** - Status codes and error formats

### 2. Generate OpenAPI Specification

Create complete OpenAPI 3.0+ spec:

```yaml
openapi: 3.0.0
info:
  title: User Management API
  version: 1.0.0
  description: Manage user accounts and authentication

servers:
  - url: https://api.example.com/v1
    description: Production

paths:
  /users/{userId}:
    get:
      summary: Get user by ID
      operationId: getUser
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
              example:
                id: "123"
                email: "user@example.com"
                name: "Jane Doe"
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []

components:
  schemas:
    User:
      type: object
      required:
        - id
        - email
      properties:
        id:
          type: string
          description: Unique user identifier
        email:
          type: string
          format: email
          description: User email address
        name:
          type: string
          description: User display name

    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        code:
          type: string

  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
```

### 3. Document Each Endpoint

Create detailed endpoint documentation:

```markdown
## GET /users/{userId}

Retrieve a user by their unique ID.

### Authentication
Requires Bearer token with `users:read` scope.

### Parameters

| Name | Location | Type | Required | Description |
|------|----------|------|----------|-------------|
| userId | path | string | Yes | Unique user identifier |
| fields | query | string | No | Comma-separated fields to include |

### Request Example

\`\`\`bash
curl -X GET "https://api.example.com/v1/users/123" \
  -H "Authorization: Bearer YOUR_TOKEN"
\`\`\`

### Response Example

**Success (200)**
\`\`\`json
{
  "id": "123",
  "email": "user@example.com",
  "name": "Jane Doe",
  "created_at": "2024-01-15T10:30:00Z"
}
\`\`\`

**Not Found (404)**
\`\`\`json
{
  "error": "not_found",
  "message": "User not found",
  "code": "USER_NOT_FOUND"
}
\`\`\`

### Error Codes

| Code | Description |
|------|-------------|
| USER_NOT_FOUND | No user exists with this ID |
| INVALID_TOKEN | Authentication token is invalid |
| FORBIDDEN | User lacks permission to view this user |
```

### 4. Validate Specification

Ensure:
- Valid OpenAPI syntax
- All schemas referenced exist
- Examples match schemas
- Consistent naming conventions
- Complete error documentation

## API Documentation Standards

### Naming Conventions

- **Operations**: Use action verbs (getUser, createPost, deleteComment)
- **Paths**: Lowercase, kebab-case (/user-profiles, /api-tokens)
- **Schemas**: PascalCase (User, ApiToken, ErrorResponse)
- **Properties**: snake_case or camelCase (consistent with API style)

### Required Elements

Every endpoint must have:
- [ ] Summary and description
- [ ] All parameters documented
- [ ] Success response with example
- [ ] Error responses with examples
- [ ] Authentication requirements
- [ ] Operation ID

### Response Documentation

Document all responses:
- **2xx Success** - What success looks like
- **4xx Client Errors** - Validation, auth, not found
- **5xx Server Errors** - When things go wrong

Include:
- Status code
- Response schema
- Real example
- When this occurs

### Schema Documentation

For every schema:
- **Required fields** - Mark what's mandatory
- **Types** - Accurate type information
- **Formats** - email, date-time, uuid, etc.
- **Descriptions** - What each field means
- **Examples** - Sample values
- **Constraints** - Min/max, patterns, enums

## OpenAPI Best Practices

### Use Components

Define reusable components:

```yaml
components:
  schemas:
    # Reusable data models
    User: {...}
    Error: {...}

  parameters:
    # Reusable parameters
    userId:
      name: userId
      in: path
      required: true
      schema:
        type: string

  responses:
    # Reusable responses
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
```

### Version Your API

Include version information:
- In the URL: `/v1/users`
- In the OpenAPI info block
- Document deprecation timeline

### Document Authentication

Be explicit about security:

```yaml
security:
  - bearerAuth: []
  - apiKey: []

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token from /auth/login
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key from dashboard
```

### Add Metadata

Include helpful metadata:

```yaml
info:
  title: User Management API
  version: 1.0.0
  description: |
    Manage user accounts, authentication, and profiles.

    Base URL: https://api.example.com/v1

    **Rate Limits**: 1000 requests/hour per API key

    **Support**: api-support@example.com
  contact:
    name: API Support
    email: api-support@example.com
  license:
    name: MIT
```

## Real vs Ideal

Focus on documenting **what the API actually does**, not what it should do:

1. **Read the Code** - Don't assume or guess
2. **Test the Endpoints** - Verify examples work
3. **Document Reality** - Include quirks and limitations
4. **Note TODOs** - Flag incomplete implementations

## Documentation Checklist

### Completeness
- [ ] All endpoints documented
- [ ] All parameters described
- [ ] All response codes covered
- [ ] Authentication requirements clear
- [ ] Error scenarios explained

### Quality
- [ ] Examples are real and tested
- [ ] Descriptions are clear
- [ ] Schemas are accurate
- [ ] Links work
- [ ] Formatting is consistent

### Accuracy
- [ ] Matches actual API behavior
- [ ] Types are correct
- [ ] Required/optional is accurate
- [ ] Error codes exist in implementation

## Common Patterns

### REST API

```markdown
## Endpoints

### Users
- `GET /users` - List all users
- `GET /users/{id}` - Get user by ID
- `POST /users` - Create new user
- `PUT /users/{id}` - Update user
- `DELETE /users/{id}` - Delete user
```

### GraphQL API

```markdown
## Queries

\`\`\`graphql
query GetUser($id: ID!) {
  user(id: $id) {
    id
    email
    name
  }
}
\`\`\`

## Mutations

\`\`\`graphql
mutation CreateUser($input: CreateUserInput!) {
  createUser(input: $input) {
    id
    email
  }
}
\`\`\`
```

### WebSocket API

```markdown
## Events

### Client → Server
\`\`\`json
{"type": "subscribe", "channel": "users.123"}
\`\`\`

### Server → Client
\`\`\`json
{"type": "update", "channel": "users.123", "data": {...}}
\`\`\`
```

## Integration

### With the wicked-garden-search skill

Find API patterns:
- Search for endpoint definitions
- Discover schema patterns
- Locate auth implementations

## Output Structure

```
docs/api/
├── openapi.yaml          # Complete OpenAPI spec
├── README.md             # API overview
├── authentication.md     # Auth guide
├── endpoints/            # Per-endpoint docs
│   ├── users.md
│   └── posts.md
├── examples/             # Request/response examples
│   ├── create-user.json
│   └── update-profile.json
└── errors.md             # Error reference
```

## Events

Publish events for documentation milestones:
- `[docs:api:generated:success]` - API spec created
- `[docs:api:validated:success]` - Spec validation passed

## Tips

1. **Use Tools** - Validate OpenAPI specs before publishing
2. **Keep Examples Real** - Copy from actual requests
3. **Document Errors Well** - Error handling is critical
4. **Version Clearly** - API versioning matters
5. **Show Auth Flows** - Security is confusing
6. **Include Rate Limits** - Document throttling
7. **Link Related Endpoints** - Help discovery
8. **Update with Code** - API docs must stay fresh

## Dispatch

Worker skill, reached by its name — `wicked-garden-engineering-api-documentarian` — through a
Hand-off from the `wicked-garden-engineering` router or any caller. The pre-v12.25
subagent-delegation form is retired with the fork frontmatter.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.