Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Auto-generate API documentation from code and comments. Use when API endpoints change, or user mentions API docs. Creates OpenAPI/Swagger specs from code. Triggers on API file changes, documentation requests, endpoint additions.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 262% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-20 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-01 | ✓→✗ | ▼ Worse | 51% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 96% | 0% |
Auto-generate API documentation from code.
javascript// You write: /** * Get user by ID * @param {string} id - User ID * @returns {User} User object */ app.get('/api/users/:id', async (req, res) => { const user = await User.findById(req.params.id); res.json(user); }); // I auto-generate OpenAPI spec: paths: /api/users/{id}: get: summary: Get user by ID parameters: - name: id in: path required: true description: User ID schema: type: string responses: '200': description: User found content: application/json: schema: $ref: '#/components/schemas/User' example: id: "123" name: "John Doe" email: "john@example.com" '404': description: User not found
python# You write: @app.get("/users/{user_id}") def get_user(user_id: int) -> User: """Get user by ID""" return db.query(User).filter(User.id == user_id).first() // I auto-generate: paths: /users/{user_id}: get: summary: Get user by ID parameters: - name: user_id in: path required: true schema: type: integer responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/User'
yamlopenapi: 3.0.0 info: title: User API version: 1.0.0 description: API for user management servers: - url: https://api.example.com/v1 paths: /api/users: get: summary: List all users responses: '200': description: Users array content: application/json: schema: type: array items: $ref: '#/components/schemas/User' components: schemas: User: type: object properties: id: type: string name: type: string email: type: string format: email
I recognize these frameworks automatically:
I extract documentation from:
/** */)javascript// Your code: app.post('/api/users', (req, res) => { User.create(req.body); }); // I suggest additions: /** * Create new user * @param {Object} req.body - User data * @param {string} req.body.name - User name (required) * @param {string} req.body.email - User email (required) * @returns {User} Created user * @throws {400} Invalid input * @throws {409} Email already exists */
I generate realistic examples:
json{ "id": "usr_1234567890", "name": "John Doe", "email": "john.doe@example.com", "createdAt": "2025-10-24T10:30:00Z", "verified": true }
Me (Skill): Auto-generate API specs from code @docs-writer (Sub-Agent): Comprehensive user guides and tutorials
javascript// app.js const swaggerUi = require('swagger-ui-express'); const spec = require('./openapi.json'); // Generated by skill app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(spec));
Export generated OpenAPI spec:
bash# Import into Postman for API testing File → Import → openapi.json
Add company-specific documentation standards:
bashcp -r ~/.claude/skills/documentation/api-documenter \ ~/.claude/skills/documentation/company-api-documenter # Edit to add: # - Company API standards # - Custom response formats # - Internal schemas
Works without sandboxing: ✅ Yes Works with sandboxing: ✅ Yes
Other measured skills in the registry, with their headline benchmark lift.