ln-775-api-docs-generator

from levnikolaevich/claude-code-skills

Greate Claude Code skills collection. Production-ready skills that cover the full delivery workflow — from research and discovery to epic planning, task breakdown, implementation, testing, code review, and quality gates.

65 stars13 forksUpdated Jan 25, 2026
npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-775-api-docs-generator

SKILL.md

ln-775-api-docs-generator

Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-770-crosscutting-setup

Configures API documentation with Swagger/OpenAPI.


Overview

AspectDetails
InputContext Store from ln-770
OutputSwagger/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

FieldDescriptionRequired
TitleAPI name✓ Yes
VersionAPI version (v1, v2)✓ Yes
DescriptionBrief descriptionOptional
ContactSupport contactOptional
LicenseAPI licenseOptional

Q2: Security Scheme

SchemeUse CaseOpenAPI Type
JWT Bearer (Recommended)Token in Authorization headerhttp + bearer
API KeyKey in header or queryapiKey
OAuth2Full OAuth2 flowoauth2
NonePublic APINo security

Q3: Documentation Features

Feature.NETPythonDefault
XML Comments✓ SupportedN/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

FilePurpose
Extensions/SwaggerExtensions.csSwagger 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:

builder.Services.AddSwaggerServices();
// ...
app.UseSwaggerServices();

csproj Update:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
  <NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>

Python Output Files

FilePurpose
core/openapi_config.pyOpenAPI 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:

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:

  3. Verify content:

    • All endpoints visible
    • Request/response schemas displayed
    • Security scheme shown (if configured)
    • Try It Out functional
  4. 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 (Pyt

...

Read full content

Repository Stats

Stars65
Forks13
LicenseMIT License