Back to skills
SKILL.md
Api Doc Generation
ASecurityGenerate and update API documentation from NestJS controllers. Use when modifying controllers, adding endpoints, or when the user asks about API documentation.
- 57 stars
- 0 votes
- 0 copies
- 0 views
- Added October 17, 2026
Works with
Security analysis
100/100npx -y skills add diegosouzapw/awesome-omni-skill --skill api-doc-generation --agent claude-codeAre you the author of Api Doc Generation?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/diegosouzapw-api-doc-generation)---
name: api-doc-generation
description: "Generate and update API documentation from NestJS controllers. Use when modifying controllers, adding endpoints, or when the user asks about API documentation."
event: controller-change
auto_trigger: true
version: "2.0.0"
last_updated: "2026-01-26"
# Inputs/Outputs
inputs:
- controller_files
- existing_api_docs
- dto_files
output: updated_api_docs
output_format: "Markdown API doc (04-API-DESIGN-TEMPLATE.md)"
output_path: "docs/technical/backend/api/"
# Auto-Trigger Rules
auto_invoke:
events:
- "controller-change"
- "api-endpoint-added"
file_patterns:
- "apps/api/**/*.controller.ts"
- "apps/api/**/*.dto.ts"
conditions:
- "controller file modified"
- "new endpoint added"
# Validation
validation_rules:
- "all endpoints documented"
- "request/response DTOs included"
- "status codes listed"
# Chaining
chain_after: []
chain_before: [doc-index-update]
# Agent Association
called_by: ["@Backend"]
mcp_tools:
- grep_search
- read_file
- mcp_payment-syste_query_docs_by_type
---
# API Documentation Generation Skill
> **Purpose:** Generate and update API documentation from NestJS controllers. Keeps API docs in sync with implementation.
## Trigger
**When:** Controller files (`*.controller.ts`) are modified
**Context Needed:** Controller code, DTOs, existing API docs
**MCP Tools:** `grep_search`, `read_file`, `mcp_payment-syste_query_docs_by_type`
## Controller → Doc Mapping
Parse NestJS decorators to extract:
```typescript
@Controller('products') // Base path: /api/v1/products
@Get(':id') // GET /api/v1/products/:id
@Post() // POST /api/v1/products
@UseGuards(JwtAuthGuard) // Auth required
@ApiOperation({ summary: '...'}) // Description
```
## Extraction Rules
| Decorator | Extracted Info |
| :------------------------ | :------------- |
| `@Controller(path)` | Base path |
| `@Get/@Post/@Put/@Delete` | HTTP method |
| `@Param/@Query/@Body` | Parameters |
| `@UseGuards` | Authentication |
| `@ApiOperation` | Description |
| `@ApiResponse` | Response codes |
## API Doc Format
````markdown
### GET /api/v1/products/:id
**Description:** Get product by ID
**Authentication:** Required (JWT)
**Parameters:**
| Name | In | Type | Required | Description |
| :--- | :--- | :----- | :------- | :---------- |
| id | path | string | Yes | Product ID |
**Responses:**
| Code | Description | Schema |
| :--- | :---------- | :----------------- |
| 200 | Success | ProductResponseDto |
| 404 | Not found | ErrorDto |
**Example Request:**
```bash
curl -X GET /api/v1/products/abc123 \
-H "Authorization: Bearer {token}"
```
````
````
## Frontmatter Template
```yaml
---
document_type: "api-design"
module: "[module]"
status: "approved"
version: "1.0.0"
last_updated: "YYYY-MM-DD"
author: "@Backend"
keywords:
- "api"
- "rest"
- "[module]"
api_metadata:
base_path: "/api/v1/[resource]"
auth_required: true
rate_limited: true
---
````
## Workflow
1. **Detect changes** - Which controllers changed?
2. **Parse decorators** - Extract API metadata
3. **Load DTOs** - Get request/response types
4. **Find existing doc** - Match by module
5. **Update endpoints** - Add/modify/remove
6. **Bump version** - If endpoints changed
7. **Update date** - Set last_updated
## DTO Extraction
```typescript
// From DTO class
export class CreateProductDto {
@IsString()
@MinLength(1)
name: string;
@IsOptional()
@IsNumber()
price?: number;
}
// Generate table
| Field | Type | Required | Validation |
| name | string | Yes | MinLength(1) |
| price | number | No | - |
```
## Reference
- [04-API-DESIGN-TEMPLATE.md](/docs/templates/04-API-DESIGN-TEMPLATE.md)
- [backend.instructions.md](../instructions/backend.instructions.md)
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.