mcpField
L
ln-770-crosscutting-setup

ln-770-crosscutting-setup

github.com/levnikolaevich開発584373 回インストール2 日前に更新
リポジトリ

ln-770-crosscutting-setup について

.NET(ASP.NET Core)とPython(FastAPI)プロジェクトの横断的な設定を調整するスキルです。既存設定を検出し、ログ、エラー処理、CORS、ヘルスチェック、APIドキュメントのうち未設定の項目だけを各ワーカースキルに委任します。

主な機能

  1. 01.NETとPythonのスタック検出
  2. 02既存の横断設定の確認
  3. 035種類の設定ワーカーへの条件付き委任
  4. 04集約用エントリーポイントの生成
  5. 05冪等な実行

活用シーン

  1. 01ASP.NET Coreの共通サービス設定
  2. 02FastAPIのミドルウェアとヘルスチェック設定
  3. 03設定済み項目を保ちながら未設定項目を追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-770-crosscutting-setup

インストール後、Claude Code で/ln-770-crosscutting-setupを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cors_configuration.md
error_handling_patterns.md
logging_patterns.md
meta_analysis_protocol.md

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

ln-770-crosscutting-setup

タイプ: L2 ドメインコーディネーター カテゴリ: 7XX プロジェクトブートストラップ 親: ln-700-project-bootstrap

.NET および Python プロジェクトの横断的な関心事の設定を調整します。


概要

項目詳細
入力プロジェクトのルートディレクトリ
出力設定済みのロギング、エラー処理、CORS、ヘルスチェック、API ドキュメント
ワーカーln-771~ln-775
スタック.NET(ASP.NET Core)、Python(FastAPI)

フェーズ 1:プロジェクトスタックの検出

プロジェクトファイルをスキャンして、技術スタックを特定します。

検出ルール:

ファイルパターンスタックフレームワーク
*.csproj.NETASP.NET Core
pyproject.toml または requirements.txt + FastAPIPythonFastAPI

アクション:

  1. *.csproj ファイルを Glob で検索します
  2. 見つからない場合は、pyproject.toml または requirements.txt を Glob で検索します
  3. Python の場合は、依存関係に FastAPI が含まれているか確認します
  4. 検出したスタックを Context Store に保存します

Context Store の初期状態:

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

フェーズ 2:既存の設定を確認

すでに設定されている横断的な関心事をスキャンします。

検出パターン:

関心事.NET パターンPython パターン
ロギング*.csproj 内の Serilog、Program.cs 内の UseSerilogrequirements 内の structlog、ロギング設定
エラー処理GlobalExceptionMiddleware、UseExceptionHandler@app.exception_handler、exception_handlers.py
CORSAddCors、UseCorsCORSMiddleware
ヘルスチェックAddHealthChecks、MapHealthChecks/health ルート
API ドキュメントAddSwaggerGen、UseSwaggerFastAPI が自動生成

アクション:

  1. 各パターンを Grep で検索します
  2. 設定済みの関心事に skip: true を設定します
  3. 検出結果で Context Store を更新します

更新後の Context Store:

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

フェーズ 3:ワーカーの呼び出し(条件付き)

未設定の関心事に対してのみ、ワーカーに委任します。

ワーカーの呼び出し順:

順序ワーカー条件スキル呼び出し
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

呼び出し(条件付き — 関心事がすでに設定済みの場合はスキップ):

Skill(skill: "ln-771-logging-configurator", args: "{STACK} {FRAMEWORK}")
Skill(skill: "ln-772-error-handler-setup", args: "{STACK} {FRAMEWORK}")
Skill(skill: "ln-773-cors-configurator", args: "{STACK} {FRAMEWORK}")
Skill(skill: "ln-774-healthcheck-setup", args: "{STACK} {FRAMEWORK}")
Skill(skill: "ln-775-api-docs-generator", args: "{STACK} {FRAMEWORK}")

各ワーカーに Context Store を渡します。

ワーカーの応答形式:

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

フェーズ 4:集約ファイルの生成

すべての横断的サービスの単一エントリーポイントを作成します。

.NET:Extensions/ServiceExtensions.cs

設定済みのワーカーに基づいて生成します:

// 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

設定済みのワーカーに基づいて生成します:

# 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

フェーズ 5:概要レポート

設定されたすべての関心事の概要を表示します。

出力形式:

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

ワーカー

ワーカー目的スタック
ln-771-logging-configurator構造化ロギング.NET(Serilog)、Python(structlog)
ln-772-error-handler-setupグローバル例外ミドルウェア.NET、Python
ln-773-cors-configuratorCORS ポリシーの設定.NET、Python
ln-774-healthcheck-setup/health エンドポイント.NET、Python
ln-775-api-docs-generatorSwagger/OpenAPI.NET(Swashbuckle)、Python(FastAPI 組み込み)

Context Store インターフェース

ワーカーは Context Store を介して情報を受け取り、返します。

ワーカーへの入力:

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

ワーカーからの出力:

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

冪等性

このスキルは冪等です。

  • フェーズ 2 では既存の設定を検出します
  • すでに設定済みの場合、ワーカーはスキップします
  • 集約ファイルでは既存のエントリーを保持します

重要なルール

  • すでに設定済みの項目はスキップする — フェーズ 2 の検出結果に基づいてワーカーの呼び出しを制御してください(skip: true を設定)
  • すべてのワーカーに Context Store を渡す — ワーカーは STACK、FRAMEWORK、PROJECT_ROOT に依存します
  • 実行したワーカーに対してのみ集約ファイルを生成する — スキップした項目の登録呼び出しは追加しないでください
  • サポート対象は .NET と Python のみ — *.csproj または pyproject.toml/requirements.txt と FastAPI を使って検出します
  • 冪等な実行 — 再実行しても設定が重複したり、既存のセットアップが壊れたりしてはなりません

TodoWrite の形式(必須):

- Detect project stack (in_progress)
- Check existing configuration (pending)
- Invoke ln-771-logging-configurator (pending)
- Invoke ln-772-error-handler-setup (pending)
- Invoke ln-773-cors-configurator (pending)
- Invoke ln-774-healthcheck-setup (pending)
- Invoke ln-775-api-docs-generator (pending)
- Generate aggregation file (pending)
- Summary report (pending)

ワーカーの呼び出し(必須)

ホストスキルの呼び出し: Skill(skill: "...", args: "...") による委任は必須です。

  • Claude:Skill ツールを、上記のとおり正確に呼び出してください。
  • Codex:Skill ツールがない場合は、利用可能なスキルから指定されたスキルを探し、その SKILL.md を読み、args を $ARGUMENTS として扱って、そのスキルのワークフローを実行した後、結果/成果物を持ってここに戻ってください。
  • ワーカーのロジックをインラインで実行したり、対象スキルを実行せずにワーカーを完了扱いにしたりしないでください。
フェーズワーカーコンテキスト
3ln-771-logging-configurator共有(Skill ツール) — 構造化ログのセットアップ
3ln-772-error-handler-setup共有(Skill ツール) — グローバル例外ミドルウェア
3ln-773-cors-configurator共有(Skill ツール) — CORS ポリシーの設定
3ln-774-healthcheck-setup共有(Skill ツール) — /health エンドポイント
3ln-775-api-docs-generator共有(Skill ツール) — Swagger/OpenAPI ドキュメント

すべてのワーカー: Skill ツールを介して呼び出してください。ワーカーにはコーディネーターのコンテキストが渡されます。

完了条件

  • プロジェクトのスタックを検出し、Context Store に保存した
  • 既存の設定を検出した(フェーズ 2 完了)
  • 未設定の項目をすべてワーカーに委任した(ln-771 から ln-775)
  • 集約エントリーポイントを生成した(ServiceExtensions.cs または middleware/__init__.py)
  • 設定済み/スキップした項目とパッケージのインストールコマンドを含む概要レポートを表示した

参考ファイル

  • ワーカーのスキル:ln-771-logging-configurator/SKILL.md から ln-775-api-docs-generator/SKILL.md
  • references/logging_patterns.md — スタックごとの構造化ログパターン(ln-771 に渡します)
  • references/error_handling_patterns.md — グローバルな例外処理パターン(ln-772 に渡します)
  • references/cors_configuration.md — スタックごとの CORS 開発/本番ポリシー(ln-773 に渡します)

フェーズ 6:メタ分析

任意の参考資料:ユーザーが実行後のメタ分析またはプロトコル形式での実行の振り返りを求めた場合に限り、references/meta_analysis_protocol.md を読み込みます。

スキルの種類:execution-orchestrator。依頼された場合は、すべてのフェーズの完了後に実行します。execution-orchestrator 形式を使ってチャットに出力します。


バージョン: 2.0.0 最終更新日: 2026-01-10

コメント