mcpField
L
ln-700-project-bootstrap

ln-700-project-bootstrap

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

ln-700-project-bootstrap について

プロジェクトを新規作成するか、既存のプロトタイプを本番向けの構成へ変換するオーケストレーターです。技術スタックを検出または指定し、計画の承認後に構成、DevOps、品質、セキュリティ、検証の各スキルへ処理を委任します。

主な機能

  1. 01CREATE と TRANSFORM のモード
  2. 02技術スタック検出と変換計画
  3. 03実行前のユーザー承認
  4. 04専門スキルへのセットアップ委任
  5. 05ブートストラップ完了度の報告

活用シーン

  1. 01選択したスタックで新規プロジェクトを作成
  2. 02既存プロトタイプの構成を再編
  3. 03Docker、CI/CD、品質、セキュリティ設定を調整
  4. 04セットアップ結果と未解決項目を確認

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-700-project-bootstrap

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

同梱ファイル

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

references/
documentation_creation.md
meta_analysis_protocol.md
research_methodology.md
stack_detection.md
verification_checklist.md
references/templates/
adr_template.md
guide_template.md
manual_template.md
research_template.md
transformation_plan_template.md

詳細

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

ln-700-project-bootstrap

タイプ: L1 トップオーケストレーター カテゴリ: 7XX プロジェクトのブートストラップ

2 つのモードを備えた汎用プロジェクトブートストラッパーです。CREATE(ゼロから本番環境対応のプロジェクトを生成)または TRANSFORM(任意のプラットフォームの既存プロトタイプを本番向け構成に移行)を選択できます。出力には、クリーンアーキテクチャ、Docker、CI/CD、品質ツールが含まれます。


モードの選択

項目CREATETRANSFORM
入力空のディレクトリ、または対象スタックの設定既存プロジェクト(Replit、StackBlitz、CodeSandbox、Glitch、カスタム)
検出ソースファイルが見つからないソースファイルと、任意のプラットフォーム設定を検出
ln-820スキップ(アップグレードする依存関係がないため)実行(既存の依存関係をアップグレード)
ln-720スキャフォールド+生成再構成+移行
ln-724スキップ(成果物がないため)条件付き(プラットフォームを検出した場合)
ln-730–780実行(両モードで共通)実行(両モードで共通)

概要

項目詳細
入力空のディレクトリ(CREATE)またはソースプロジェクト(TRANSFORM)
出力すべてのインフラストラクチャを備えた本番環境対応プロジェクト
委任先ln-820(条件付き) -> ln-720 -> ln-730 -> ln-740 -> ln-760 -> ln-770 -> ln-780

ワークフロー

Phase 0: Analyze (Tech Detection)
    |
    v
Phase 1: Plan (Generate Transformation Plan)
    |
    v
Phase 2: Confirm (User Approval)
    |
    v
Phase 3: Execute (Delegate to L2 Coordinators)
    |
    +---> ln-820: Dependency Upgrader
    +---> ln-720: Structure Migrator
    +---> ln-730: DevOps Setup
    +---> ln-740: Quality Setup
    +---> ln-760: Security Setup
    +---> ln-770: Crosscutting Setup
    +---> ln-780: Bootstrap Verifier
    |
    v
Phase 4: Report (Summary of Changes)

フェーズ 0:テクノロジーの検出

ステップ 0.0:モードの検出
条件モードアクション
空のディレクトリ(ソースファイルなし)CREATE対象スタック、プロジェクト名、エンティティをユーザーに確認します
ソースファイルが見つかったTRANSFORMスタックを自動検出し、プラットフォームの成果物をスキャンします
判定が曖昧(ファイルが少なく、明確でない)ASK両方の選択肢を提示し、ユーザーに選択してもらいます
ステップ 0.1:CREATE モード — ユーザー入力
パラメーター必須デフォルト例
プロジェクト名はい—MyApp
対象バックエンドはい—.NET / Node.js / Python
対象フロントエンドはい—React / Vue / Angular / Svelte
データベースはい—PostgreSQL / MongoDB / MySQL
主なエンティティいいえUser、Role(スターター)User、Product、Order
ステップ 0.2:冪等性の事前確認

対象ディレクトリに既存のファイルが含まれている場合:

  1. 既存の構成を検出します(package.json、.csproj など)
  2. ユーザーに警告します:「対象ディレクトリは空ではありません。既存のファイルが上書きされる可能性があります。」
  3. 次から選ぶようユーザーに確認します:上書き(すべて置き換え)/マージ(既存のものを保持し、不足分を追加)/中止
ステップ 0.3:テクノロジーの検出(TRANSFORM モード)/スタック設定(CREATE モード)

委任する前に、プロジェクトを分析してテクノロジースタックを検出します。

検出ルール
Frontend:
  React:
    - package.json contains "react"
    - Files: *.tsx, *.jsx with React imports
  Vue:
    - package.json contains "vue"
    - Files: *.vue
  Angular:
    - package.json contains "@angular/core"
    - Files: *.component.ts
  Svelte:
    - package.json contains "svelte"
    - Files: *.svelte

Backend:
  .NET:
    - *.csproj files exist
    - *.sln files exist
  Node.js:
    - package.json + (express|fastify|nest|koa)
    - tsconfig.json or jsconfig.json
  Python:
    - requirements.txt OR pyproject.toml OR setup.py
    - (fastapi|flask|django) in dependencies
  Go:
    - go.mod exists

Database:
  PostgreSQL:
    - DATABASE_URL contains "postgres"
    - docker-compose.yml contains "postgres"
  MongoDB:
    - MONGODB_URI in env
    - docker-compose.yml contains "mongo"
  MySQL:
    - DATABASE_URL contains "mysql"

ORM:
  Drizzle: drizzle.config.ts exists
  Prisma: prisma/schema.prisma exists
  EF Core: *.csproj references Microsoft.EntityFrameworkCore
  SQLAlchemy: "sqlalchemy" in requirements
検出結果
Detected Stack:
  Frontend:
    Framework: React
    Version: 19.x
    Build Tool: Vite
    UI Library: shadcn/ui
    State: React Query

  Backend:
    Current: Node.js + Express
    Target: .NET 10 (user preference)
    ORM: Drizzle -> EF Core

  Database:
    Type: PostgreSQL
    Version: 17

  Structure:
    Type: Monolith (Prototype)
    Origin: replit | stackblitz | codesandbox | glitch | custom
    Target: Clean Architecture

フェーズ 1:変換計画の作成

検出したスタックに基づいて、詳細な計画を作成します。

# Bootstrap Transformation Plan

## Source Analysis
- Frontend: React 19 + Vite + TypeScript
- Backend: Express + Drizzle (to be replaced with .NET)
- Database: PostgreSQL 17

## Transformations

### 1. Dependencies (ln-820)
- Upgrade React 18 -> 19
- Upgrade Vite 5 -> 6
- Add missing peer dependencies

### 2. Structure (ln-720)
- Move frontend to src/frontend/
- Create .NET backend: MyApp.Api, MyApp.Domain, etc.
- Migrate mock data from Drizzle to MockData classes

### 3. DevOps (ln-730)
- Create Dockerfile.frontend (multi-stage)
- Create Dockerfile.backend (.NET SDK)
- Create docker-compose.yml
- Create .github/workflows/ci.yml

### 4. Quality (ln-740)
- Configure ESLint (flat config)
- Add Prettier
- Setup Husky + lint-staged
- Create test infrastructure (Vitest, xUnit)

### 5. Security (ln-760)
- Scan for hardcoded secrets
- Run npm audit
- Create SECURITY.md

### 6. Crosscutting (ln-770)
- Configure Serilog logging
- Add GlobalExceptionMiddleware
- Configure CORS policy
- Add /health endpoints
- Enable Swagger

### 7. Verification (ln-780)
- Build all projects
- Run tests
- Start Docker containers
- Verify health checks

## Estimated Changes
- Files created: ~45
- Files modified: ~12
- Files deleted: ~8 (replaced backend)

フェーズ 2:ユーザーによる確認

計画を提示し、承認を求めます。

Bootstrap Plan Ready!

Summary:
- Frontend: React 19 (upgrade from 18)
- Backend: .NET 10 (replacing Node.js)
- Docker: Multi-container setup
- CI/CD: GitHub Actions
- Quality: ESLint, Prettier, Husky

Proceed with bootstrap? [Y/n]

ユーザーが承認しない場合は、変更内容を尋ねます。


フェーズ 3:委任の実行

L2 コーディネーターに順番に委任します。

順序スキル目的CREATE モードTRANSFORM モード依存先
1ln-820依存関係のアップグレードスキップ実行—
2ln-720構成(スキャフォールド/再構成)実行(スキャフォールド)実行(再構成)ln-820
3ln-730Docker/CI のセットアップ実行実行ln-720
4ln-740品質ツールの設定実行実行ln-720
5ln-760セキュリティスキャン実行実行ln-820
6ln-770横断的関心事実行実行ln-720
7ln-780ビルドと検証実行実行上記すべて
委任プロトコル

各 L2 コーディネーターについて、次の手順を実行します。

  1. コンテキストを準備します:

    Stack:
      frontend: { framework, version, buildTool }
      backend: { framework, version }
      database: { type, version }
    
    Paths:
      root: /project
      frontend: /project/src/frontend
      backend: /project/src/MyApp.Api
    
    Options:
      skipTests: false
      allowFailures: false
    
  2. スキルを呼び出します: コンテキストを入力として渡します

    Skill(skill: "ln-820-dependency-upgrader", args: "{projectPath} --mode TRANSFORM")
    Skill(skill: "ln-720-structure-migrator", args: "{projectPath} --mode {CREATE|TRANSFORM}")
    Skill(skill: "ln-730-devops-setup", args: "{projectPath}")
    Skill(skill: "ln-740-quality-setup", args: "{projectPath}")
    Skill(skill: "ln-760-security-setup", args: "{projectPath}")
    Skill(skill: "ln-770-crosscutting-setup", args: "{projectPath}")
    Skill(skill: "ln-780-bootstrap-verifier", args: "{projectPath}")
    
  3. 結果を収集します:

    Status: success | partial | failed
    FilesCreated: [...]
    FilesModified: [...]
    Warnings: [...]
    Errors: [...]
    
  4. エラーに対処します:

    • エラーの詳細を記録します
    • 続行するか中止するかをユーザーに確認します
    • 中止する場合は、可能であればロールバックします

フェーズ 4:レポートの作成

ブートストラップの完全性評価

コンテキスト: ブートストラップによってファイルが作成されただけでなく、プロジェクトが正常に動作することを最終確認します。

#カテゴリ確認項目ソース
1構造Clean Architecture のレイヤーが存在するln-720 result
2依存関係すべてのパッケージがインストールされ、バージョンの競合がないln-820 result
3DevOpsDocker がビルドでき、CI パイプラインが有効ln-730 result
4品質リンター/フォーマッターが設定され、チェックに合格するln-740 result
5セキュリティハードコードされたシークレットがなく、スキャンが設定されているln-760 result
6ビルドエラーなしでプロジェクトをコンパイル/ビルドできるln-780 result

完全性スコア = PASS の数 / 6

  • 6/6:ブートストラップ完了
  • 4-5/6:警告ありでブートストラップ完了(失敗したカテゴリを列挙)
  • <4/6:ブートストラップ未完了 — ユーザーの対応が必要な阻害要因を列挙
サマリーレポート

すべての委任が完了した後の最終サマリー:

Bootstrap Complete!

Duration: 24 minutes 32 seconds

Changes Summary:
  Files Created: 47
  Files Modified: 15
  Files Deleted: 9

By Category:
  Dependencies:
    - Upgraded 23 packages
    - No breaking changes detected

  Structure:
    - Created 5 .NET projects
    - Restructured frontend (12 components extracted)
    - Migrated 8 mock data files

  DevOps:
    - Created Dockerfile.frontend
    - Created Dockerfile.backend
    - Created docker-compose.yml
    - Created .github/workflows/ci.yml

  Quality:
    - Configured ESLint + Prettier
    - Installed Husky hooks
    - Created 3 test files

  Security:
    - Scanned 156 files
    - Found 0 secrets
    - 2 vulnerability warnings (low severity)

  Crosscutting:
    - Configured Serilog
    - Added error handling
    - CORS enabled for localhost
    - Health checks at /health
    - Swagger at /swagger

Verification:
  Build: SUCCESS
  Tests: 42 passed, 0 failed
  Docker: 3 containers running
  Health: All endpoints responding

Next Steps:
  1. Open http://localhost:3000 (frontend)
  2. Open http://localhost:5000/swagger (API docs)
  3. Run 'git add . && git commit -m "Bootstrap complete"'

エラー処理

回復可能なエラー
エラー対応
依存関係の競合--legacy-peer-deps を付けて試します
ビルド失敗エラーを記録し、修正方法を提案して続行します
テスト失敗警告を記録し、--allow-failures を付けて続行します
Docker ビルド失敗Dockerfile の修正を提案します
致命的なエラー
エラー対応モード
package.json がない(TRANSFORM)中止:「Node.js プロジェクトではありません」TRANSFORM
サポート対象外のスタック中止:「サポート対象外のスタック:{stack}」両方
アクセス許可が拒否された中止:「{path} に書き込めません」両方
スタックが選択されていない中止:「CREATE モードでは対象スタックが必要です」CREATE
ファイルが競合している事前チェックでユーザーが「中止」を選んだ場合は中止CREATE

設定

スキルのオプション
Options:
  # Backend replacement
  targetBackend: ".NET" | "Node" | "Python" | "keep"

  # Frontend refactoring depth
  frontendRefactoring: "minimal" | "moderate" | "full"

  # Docker setup
  dockerEnabled: true
  dockerRegistry: null  # Optional: ghcr.io/user

  # CI/CD
  cicdProvider: "github" | "azure" | "gitlab" | "none"

  # Quality tools
  linterConfig: "recommended" | "strict"
  precommitHooks: true

  # Verification
  runTests: true
  startContainers: true
  keepContainersRunning: true
環境変数
# Optional: Override detection
BOOTSTRAP_FRONTEND=react
BOOTSTRAP_BACKEND=dotnet
BOOTSTRAP_DB=postgres

# Optional: Skip steps
SKIP_DEPENDENCIES=false
SKIP_DOCKER=false
SKIP_TESTS=false

既存のスキルとの統合

スキル統合
references/research_methodology.mdln-720 中の標準規格の調査
references/documentation_creation.mdln-720 中のガイド生成
ln-100-documents-pipelineドキュメント作成のため、ブートストラップ後に呼び出します
ln-310-multi-agent-validator生成されたタスクを検証します

参考資料

必ず読み込むこと: 指定されたフェーズで以下のファイルを読み込みます:

  • references/stack_detection.md — フェーズ 0 の検出ルールとパターン
  • references/templates/transformation_plan_template.md — フェーズ 1 の計画テンプレート
  • references/verification_checklist.md — フェーズ 3 の検証手順

TodoWrite の形式(必須):

- Invoke ln-820-dependency-upgrader (conditional TRANSFORM) (pending)
- Invoke ln-720-structure-migrator (pending)
- Invoke ln-730-devops-setup (pending)
- Invoke ln-740-quality-setup (pending)
- Invoke ln-760-security-setup (pending)
- Invoke ln-770-crosscutting-setup (pending)
- Invoke ln-780-bootstrap-verifier (pending)
- Generate completion report (pending)

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

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

  • Claude:表示どおりに Skill ツールを呼び出します。
  • Codex:Skill ツールがない場合は、利用可能なスキルの中から指定されたスキルを見つけ、その SKILL.md を読み込み、args を $ARGUMENTS として扱ってそのスキルのワークフローを実行し、その結果/成果物を持ってここに戻ります。
  • ワーカーのロジックをインラインで実行したり、対象スキルを実行せずにワーカーを完了扱いにしたりしないでください。
フェーズワーカーコンテキスト
3.1ln-820-dependency-upgrader共有(Skill ツール)— 既存の依存関係をアップグレードします(TRANSFORM のみ)
3.2ln-720-structure-migrator共有(Skill ツール)— Clean Architecture のスキャフォールドを作成するか、構成を再編します
3.3ln-730-devops-setup共有(Skill ツール)— Docker、CI/CD、環境設定
3.4ln-740-quality-setup共有(Skill ツール)— リンター、pre-commit、テスト基盤
3.5ln-760-security-setup共有(Skill ツール)— セキュリティスキャンと強化
3.6ln-770-crosscutting-setup共有(Skill ツール)— ロギング、エラー処理、CORS、ヘルスチェック
3.7ln-780-bootstrap-verifier共有(Skill ツール)— ビルド、テスト、Docker の検証

すべてのワーカー: Skill ツール経由で呼び出します。ワーカーはコーディネーターのコンテキストを参照します。

完了の定義

  • 技術スタックを検出(または CREATE モードでユーザーが指定)し、計画を生成
  • すべての L2 コーディネーターに委任し、完了(ln-820 から ln-780 まで)
  • ブートストラップの完全性スコアが 4/6 以上
  • 最終サマリーレポートをユーザーに提示

フェーズ 5:メタ分析

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

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


バージョン: 2.0.0 最終更新日: 2026-02-07

コメント