ln-775-api-docs-generator

Configures Swagger/OpenAPI documentation for backend APIs. Use when adding interactive API docs to a project.

310 stars

Best use case

ln-775-api-docs-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Configures Swagger/OpenAPI documentation for backend APIs. Use when adding interactive API docs to a project.

Teams using ln-775-api-docs-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ln-775-api-docs-generator/SKILL.md --create-dirs "https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/main/skills-catalog/ln-775-api-docs-generator/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ln-775-api-docs-generator/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ln-775-api-docs-generator Compares

Feature / Agentln-775-api-docs-generatorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Configures Swagger/OpenAPI documentation for backend APIs. Use when adding interactive API docs to a project.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# ln-775-api-docs-generator

**Type:** L3 Worker
**Category:** 7XX Project Bootstrap

Configures API documentation with Swagger/OpenAPI.

---

## Overview

| Aspect | Details |
|--------|---------|
| **Input** | Context Store from ln-770 |
| **Output** | Swagger/OpenAPI configuration |
| **Stacks** | .NET (Swashbuckle), Python (FastAPI built-in) |

---

## Phase 1: Receive Context + Analyze API Structure

Accept Context Store and scan for API endpoints.

**Required Context:**
- `STACK`: .NET or Python
- `PROJECT_ROOT`: Project directory path

**Idempotency Check:**
- .NET: Grep for `AddSwaggerGen` or `UseSwagger`
- Python: FastAPI has built-in OpenAPI, check for custom configuration
- If found: Return `{ "status": "skipped" }`

**API Analysis:**
1. Scan for controller/router files
2. Identify authentication method (JWT, OAuth2, API Key)
3. Check for API versioning

---

## Phase 2: Research Documentation Standards

Use MCP tools for current documentation.

**For .NET:**
```
MCP ref: "Swashbuckle ASP.NET Core OpenAPI Swagger configuration"
Context7: /domaindrivendev/Swashbuckle.AspNetCore
```

**For Python:**
```
MCP ref: "FastAPI OpenAPI documentation customization"
Context7: /tiangolo/fastapi
```

**Key Patterns to Research:**
1. OpenAPI 3.0/3.1 specification
2. Security scheme definitions
3. XML comments integration (.NET)
4. Response examples and schemas
5. API versioning documentation

---

## Phase 3: Decision Points

### Q1: API Information

| Field | Description | Required |
|-------|-------------|----------|
| Title | API name | ✓ Yes |
| Version | API version (v1, v2) | ✓ Yes |
| Description | Brief description | Optional |
| Contact | Support contact | Optional |
| License | API license | Optional |

### Q2: Security Scheme

| Scheme | Use Case | OpenAPI Type |
|--------|----------|--------------|
| **JWT Bearer** (Recommended) | Token in Authorization header | `http` + `bearer` |
| **API Key** | Key in header or query | `apiKey` |
| **OAuth2** | Full OAuth2 flow | `oauth2` |
| **None** | Public API | No security |

### Q3: Documentation Features

| Feature | .NET | Python | Default |
|---------|------|--------|---------|
| XML Comments | ✓ Supported | N/A | ✓ Enable |
| Response Examples | ✓ Manual | ✓ Pydantic | ✓ Enable |
| Request Validation | ✓ Annotations | ✓ Pydantic | ✓ Enable |
| Try It Out | ✓ Yes | ✓ Yes | ✓ Enable |

---

## Phase 4: Generate Configuration

### .NET Output Files

| File | Purpose |
|------|---------|
| `Extensions/SwaggerExtensions.cs` | Swagger service registration |
| `*.csproj` (update) | Enable XML documentation |

**Generation Process:**
1. Use MCP ref for current Swashbuckle API
2. Generate SwaggerExtensions with:
   - AddEndpointsApiExplorer
   - AddSwaggerGen with OpenApiInfo
   - Security definition (if auth detected)
   - XML comments inclusion
3. Update csproj for documentation generation

**Packages to Add:**
- `Swashbuckle.AspNetCore`

**Registration Code:**
```csharp
builder.Services.AddSwaggerServices();
// ...
app.UseSwaggerServices();
```

**csproj Update:**
```xml
<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
```

### Python Output Files

| File | Purpose |
|------|---------|
| `core/openapi_config.py` | OpenAPI customization |

**Generation Process:**
1. Use MCP ref for FastAPI OpenAPI customization
2. Generate openapi_config.py with:
   - Custom OpenAPI schema
   - Security scheme definitions
   - Tags and descriptions
3. FastAPI generates OpenAPI automatically

**Note:** FastAPI has built-in OpenAPI support. This worker customizes the default configuration.

**Registration Code:**
```python
from core.openapi_config import custom_openapi
app.openapi = lambda: custom_openapi(app)
```

---

## Phase 5: Validate

**Validation Steps:**

1. **Syntax check:**
   - .NET: `dotnet build --no-restore`
   - Python: `python -m py_compile core/openapi_config.py`

2. **Access documentation:**
   | Stack | URL |
   |-------|-----|
   | .NET | http://localhost:5000/swagger |
   | Python | http://localhost:5000/docs |
   | Python (ReDoc) | http://localhost:5000/redoc |

3. **Verify content:**
   - [ ] All endpoints visible
   - [ ] Request/response schemas displayed
   - [ ] Security scheme shown (if configured)
   - [ ] Try It Out functional

4. **OpenAPI spec validation:**
   ```bash
   # .NET
   curl http://localhost:5000/swagger/v1/swagger.json | jq .

   # Python
   curl http://localhost:5000/openapi.json | jq .
   ```

---

## Security Scheme Examples

### JWT Bearer (.NET)

```csharp
// Structure only - actual code generated via MCP ref
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
    Description = "JWT Authorization header using Bearer scheme",
    Name = "Authorization",
    In = ParameterLocation.Header,
    Type = SecuritySchemeType.Http,
    Scheme = "bearer",
    BearerFormat = "JWT"
});
```

### JWT Bearer (Python/FastAPI)

```python
# Structure only - actual code generated via MCP ref
from fastapi.security import HTTPBearer
security = HTTPBearer()
```

---

## Return to Coordinator

```json
{
  "status": "success",
  "files_created": [
    "Extensions/SwaggerExtensions.cs"
  ],
  "packages_added": [
    "Swashbuckle.AspNetCore"
  ],
  "registration_code": "builder.Services.AddSwaggerServices();",
  "message": "Configured Swagger/OpenAPI documentation"
}
```

---

## Reference Links

- [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
- [FastAPI OpenAPI](https://fastapi.tiangolo.com/tutorial/metadata/)
- [OpenAPI Specification](https://spec.openapis.org/oas/latest.html)

---

## Critical Rules

- **Use MCP ref for current Swashbuckle/FastAPI API** — do not hardcode configuration from memory
- **Auto-detect auth scheme** — scan for JWT, OAuth2, or API Key and configure security definition accordingly
- **Enable XML documentation in .NET** — update csproj with `GenerateDocumentationFile` and suppress warning 1591
- **FastAPI: customize, not replace** — built-in OpenAPI works by default, only add custom schema/security
- **Idempotent** — if `AddSwaggerGen`/`UseSwagger` exists, return `status: "skipped"`

## Definition of Done

- [ ] Context Store received (stack, project root)
- [ ] API structure analyzed (controllers/routers, auth method, versioning)
- [ ] Documentation standards researched via MCP tools
- [ ] Swagger/OpenAPI configuration generated with API info and security scheme
- [ ] XML comments enabled (.NET) or custom OpenAPI schema configured (Python)
- [ ] Syntax validated (`dotnet build` or `py_compile`)
- [ ] Structured JSON response returned to ln-770 coordinator

---

**Version:** 2.0.0
**Last Updated:** 2026-01-10

Related Skills

ln-732-cicd-generator

310
from levnikolaevich/claude-code-skills

Generates GitHub Actions CI workflow configuration. Use when adding continuous integration to a project.

ln-731-docker-generator

310
from levnikolaevich/claude-code-skills

Generates Dockerfile and docker-compose configuration for multi-container development. Use when containerizing a project.

ln-723-seed-data-generator

310
from levnikolaevich/claude-code-skills

Generates seed data from ORM schemas or entity definitions to any target format. Use when populating databases for development.

ln-722-backend-generator

310
from levnikolaevich/claude-code-skills

Generates .NET Clean Architecture backend structure from entity definitions. Use when bootstrapping .NET backend projects.

ln-614-docs-fact-checker

310
from levnikolaevich/claude-code-skills

Verifies claims in .md files (paths, versions, counts, configs, endpoints) against codebase, cross-checks contradictions. Use when auditing docs accuracy.

ln-611-docs-structure-auditor

310
from levnikolaevich/claude-code-skills

Checks hierarchy, links, SSOT, compression, requirements compliance, freshness, legacy cleanup. Use when auditing documentation structure.

ln-610-docs-auditor

310
from levnikolaevich/claude-code-skills

Coordinates audit of project knowledge surfaces: markdown documentation plus inline code documentation (comments/docstrings). Use when auditing project documentation.

ln-160-docs-skill-extractor

310
from levnikolaevich/claude-code-skills

Extracts procedural content from project docs into .claude/commands skills. Use when docs contain deploy, test, or troubleshoot procedures.

ln-140-test-docs-creator

310
from levnikolaevich/claude-code-skills

Creates test documentation (testing-strategy.md, tests/README.md) with Risk-Based Testing philosophy. Use when setting up test strategy for a project.

ln-130-tasks-docs-creator

310
from levnikolaevich/claude-code-skills

Creates task management docs (kanban board, workflow rules) with Linear integration. Use when setting up task tracking for a project.

ln-120-reference-docs-creator

310
from levnikolaevich/claude-code-skills

Creates reference docs (ADRs, guides, manuals) for nontrivial tech stack choices. Use when project needs justified architecture decision records.

ln-115-devops-docs-creator

310
from levnikolaevich/claude-code-skills

Creates infrastructure.md and runbook.md (Docker-conditional). Use for DevOps documentation in any project.