Claude-code-skills ln-775-api-docs-generator
Configures Swagger/OpenAPI documentation for backend APIs. Use when adding interactive API docs to a project.
install
source · Clone the upstream repo
git clone https://github.com/levnikolaevich/claude-code-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/levnikolaevich/claude-code-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-catalog/ln-775-api-docs-generator" ~/.claude/skills/levnikolaevich-claude-code-skills-ln-775-api-docs-generator && rm -rf "$T"
manifest:
skills-catalog/ln-775-api-docs-generator/SKILL.mdsource content
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:
: .NET or PythonSTACK
: Project directory pathPROJECT_ROOT
Idempotency Check:
- .NET: Grep for
orAddSwaggerGenUseSwagger - Python: FastAPI has built-in OpenAPI, check for custom configuration
- If found: Return
{ "status": "skipped" }
API Analysis:
- Scan for controller/router files
- Identify authentication method (JWT, OAuth2, API Key)
- 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:
- OpenAPI 3.0/3.1 specification
- Security scheme definitions
- XML comments integration (.NET)
- Response examples and schemas
- 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 | + |
| API Key | Key in header or query | |
| OAuth2 | Full OAuth2 flow | |
| 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 |
|---|---|
| Swagger service registration |
(update) | Enable XML documentation |
Generation Process:
- Use MCP ref for current Swashbuckle API
- Generate SwaggerExtensions with:
- AddEndpointsApiExplorer
- AddSwaggerGen with OpenApiInfo
- Security definition (if auth detected)
- XML comments inclusion
- Update csproj for documentation generation
Packages to Add:
Swashbuckle.AspNetCore
Registration Code:
builder.Services.AddSwaggerServices(); // ... app.UseSwaggerServices();
csproj Update:
<PropertyGroup> <GenerateDocumentationFile>true</GenerateDocumentationFile> <NoWarn>$(NoWarn);1591</NoWarn> </PropertyGroup>
Python Output Files
| File | Purpose |
|---|---|
| OpenAPI customization |
Generation Process:
- Use MCP ref for FastAPI OpenAPI customization
- Generate openapi_config.py with:
- Custom OpenAPI schema
- Security scheme definitions
- Tags and descriptions
- FastAPI generates OpenAPI automatically
Note: FastAPI has built-in OpenAPI support. This worker customizes the default configuration.
Registration Code:
from core.openapi_config import custom_openapi app.openapi = lambda: custom_openapi(app)
Phase 5: Validate
Validation Steps:
-
Syntax check:
- .NET:
dotnet build --no-restore - Python:
python -m py_compile core/openapi_config.py
- .NET:
-
Access documentation:
Stack URL .NET http://localhost:5000/swagger Python http://localhost:5000/docs Python (ReDoc) http://localhost:5000/redoc -
Verify content:
- All endpoints visible
- Request/response schemas displayed
- Security scheme shown (if configured)
- Try It Out functional
-
OpenAPI spec validation:
# .NET curl http://localhost:5000/swagger/v1/swagger.json | jq . # Python curl http://localhost:5000/openapi.json | jq .
Security Scheme Examples
JWT Bearer (.NET)
// 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)
# Structure only - actual code generated via MCP ref from fastapi.security import HTTPBearer security = HTTPBearer()
Return to Coordinator
{ "status": "success", "files_created": [ "Extensions/SwaggerExtensions.cs" ], "packages_added": [ "Swashbuckle.AspNetCore" ], "registration_code": "builder.Services.AddSwaggerServices();", "message": "Configured Swagger/OpenAPI documentation" }
Reference Links
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
and suppress warning 1591GenerateDocumentationFile - FastAPI: customize, not replace — built-in OpenAPI works by default, only add custom schema/security
- Idempotent — if
/AddSwaggerGen
exists, returnUseSwaggerstatus: "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 (
ordotnet build
)py_compile - Structured JSON response returned to ln-770 coordinator
Version: 2.0.0 Last Updated: 2026-01-10