Back to list
levnikolaevich

ln-770-crosscutting-setup

by levnikolaevich

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.

52🍴 12📅 Jan 23, 2026

SKILL.md


name: ln-770-crosscutting-setup description: Coordinates logging, error handling, CORS, health checks, and API docs

ln-770-crosscutting-setup

Type: L2 Domain Coordinator Category: 7XX Project Bootstrap Parent: ln-700-project-bootstrap

Coordinates cross-cutting concerns configuration for .NET and Python projects.


Overview

AspectDetails
InputProject root directory
OutputConfigured logging, error handling, CORS, health checks, API docs
Workersln-771 to ln-775
Stacks.NET (ASP.NET Core), Python (FastAPI)

Phase 1: Detect Project Stack

Determine the technology stack by scanning project files.

Detection Rules:

File PatternStackFramework
*.csproj.NETASP.NET Core
pyproject.toml or requirements.txt + FastAPIPythonFastAPI

Actions:

  1. Glob for *.csproj files
  2. If not found, Glob for pyproject.toml or requirements.txt
  3. If Python, check for FastAPI in dependencies
  4. Store detected stack in Context Store

Context Store Initial:

{
  "STACK": ".NET" | "Python",
  "FRAMEWORK": "ASP.NET Core" | "FastAPI",
  "PROJECT_ROOT": "/path/to/project",
  "FRAMEWORK_VERSION": "8.0" | "0.109.0"
}

Phase 2: Check Existing Configuration

Scan for already configured cross-cutting concerns.

Detection Patterns:

Concern.NET PatternPython Pattern
LoggingSerilog in *.csproj, UseSerilog in Program.csstructlog in requirements, logging config
Error HandlingGlobalExceptionMiddleware, UseExceptionHandler@app.exception_handler, exception_handlers.py
CORSAddCors, UseCorsCORSMiddleware
Health ChecksAddHealthChecks, MapHealthChecks/health routes
API DocsAddSwaggerGen, UseSwaggerFastAPI auto-generates

Actions:

  1. Grep for each pattern
  2. Mark configured concerns as skip: true
  3. Update Context Store with findings

Context Store Updated:

{
  "concerns": {
    "logging": { "configured": false },
    "errorHandling": { "configured": false },
    "cors": { "configured": true, "skip": true },
    "healthChecks": { "configured": false },
    "apiDocs": { "configured": false }
  }
}

Phase 3: Invoke Workers (Conditional)

Delegate to workers only for unconfigured concerns.

Worker Invocation Order:

OrderWorkerConditionSkill Call
1ln-771-logging-configuratorlogging.configured == false/skill ln-771-logging-configurator
2ln-772-error-handler-setuperrorHandling.configured == false/skill ln-772-error-handler-setup
3ln-773-cors-configuratorcors.configured == false/skill ln-773-cors-configurator
4ln-774-healthcheck-setuphealthChecks.configured == false/skill ln-774-healthcheck-setup
5ln-775-api-docs-generatorapiDocs.configured == false/skill ln-775-api-docs-generator

Pass Context Store to each worker.

Worker Response Format:

{
  "status": "success" | "skipped" | "error",
  "files_created": ["path/to/file.cs"],
  "packages_added": ["Serilog.AspNetCore"],
  "message": "Configured structured logging with Serilog"
}

Phase 4: Generate Aggregation File

Create a single entry point for all cross-cutting services.

.NET: Extensions/ServiceExtensions.cs

Generate based on configured workers:

// Structure only - actual code generated via MCP ref
public static class ServiceExtensions
{
    public static IServiceCollection AddCrosscuttingServices(
        this IServiceCollection services,
        IConfiguration configuration)
    {
        // Calls added based on configured workers:
        // services.AddLogging(configuration);      // if ln-771 ran
        // services.AddCorsPolicy(configuration);   // if ln-773 ran
        // services.AddHealthChecks();              // if ln-774 ran
        // services.AddSwaggerServices();           // if ln-775 ran
        return services;
    }
}

Python: middleware/init.py

Generate based on configured workers:

# Structure only - actual code generated via MCP ref
def configure_middleware(app):
    # Middleware added based on configured workers:
    # configure_logging(app)        # if ln-771 ran
    # configure_error_handlers(app) # if ln-772 ran
    # configure_cors(app)           # if ln-773 ran
    # configure_health_routes(app)  # if ln-774 ran
    pass

Phase 5: Summary Report

Display summary of all configured concerns.

Output Format:

Cross-cutting Setup Complete
============================
Stack: .NET (ASP.NET Core 8.0)

Configured:
  ✓ Logging (Serilog) - Extensions/LoggingExtensions.cs
  ✓ Error Handling - Middleware/GlobalExceptionMiddleware.cs
  ✓ CORS - Extensions/CorsExtensions.cs
  ✓ Health Checks - Extensions/HealthCheckExtensions.cs
  ✓ API Docs (Swagger) - Extensions/SwaggerExtensions.cs

Skipped (already configured):
  - None

Entry Point: Extensions/ServiceExtensions.cs
  Add to Program.cs: builder.Services.AddCrosscuttingServices(builder.Configuration);

Packages to Install:
  dotnet add package Serilog.AspNetCore
  dotnet add package Swashbuckle.AspNetCore

Workers

WorkerPurposeStacks
ln-771-logging-configuratorStructured logging.NET (Serilog), Python (structlog)
ln-772-error-handler-setupGlobal exception middleware.NET, Python
ln-773-cors-configuratorCORS policy configuration.NET, Python
ln-774-healthcheck-setup/health endpoints.NET, Python
ln-775-api-docs-generatorSwagger/OpenAPI.NET (Swashbuckle), Python (FastAPI built-in)

Context Store Interface

Workers receive and return via Context Store:

Input to Workers:

{
  "STACK": ".NET",
  "FRAMEWORK": "ASP.NET Core",
  "FRAMEWORK_VERSION": "8.0",
  "PROJECT_ROOT": "/path/to/project",
  "ENVIRONMENT": "Development"
}

Output from Workers:

{
  "status": "success",
  "files_created": [],
  "packages_added": [],
  "registration_code": "services.AddLogging(configuration);"
}

Idempotency

This skill is idempotent:

  • Phase 2 detects existing configuration
  • Workers skip if already configured
  • Aggregation file preserves existing entries

Version: 2.0.0 Last Updated: 2026-01-10

Score

Total Score

80/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon