Claude-skill-registry api-doc-generation
Generate and update API documentation from NestJS controllers. Use when modifying controllers, adding endpoints, or when the user asks about API documentation.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/api-doc-generation" ~/.claude/skills/majiayu000-claude-skill-registry-api-doc-generation && rm -rf "$T"
manifest:
skills/data/api-doc-generation/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- makes HTTP requests (curl)
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
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:
@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 |
|---|---|
| Base path |
| HTTP method |
| Parameters |
| Authentication |
| Description |
| Response codes |
API Doc Format
### 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
- Detect changes - Which controllers changed?
- Parse decorators - Extract API metadata
- Load DTOs - Get request/response types
- Find existing doc - Match by module
- Update endpoints - Add/modify/remove
- Bump version - If endpoints changed
- Update date - Set last_updated
DTO Extraction
// 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 | - |