ln-700-project-bootstrap

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

ln-700-project-bootstrap

ln-700-project-bootstrap

Type: L1 Top Orchestrator Category: 7XX Project Bootstrap
Universal project bootstrapper with two modes: CREATE (generate production-ready project from scratch) or TRANSFORM (migrate existing prototype from any platform to production structure). Output: Clean Architecture, Docker, CI/CD, quality tooling.

类型: L1顶级编排器 分类: 7XX项目初始化
通用项目初始化工具,支持两种模式:CREATE(从零生成可投入生产的项目)或TRANSFORM(将任意平台的现有原型迁移为生产级结构)。输出内容:Clean Architecture、Docker、CI/CD、质量工具链。

Mode Selection

模式选择

AspectCREATETRANSFORM
InputEmpty directory or target stack configExisting project (Replit, StackBlitz, CodeSandbox, Glitch, custom)
DetectionNo source files foundSource files + optional platform config detected
ln-710SKIP (no deps to upgrade)RUN (upgrade existing deps)
ln-720SCAFFOLD + GENERATERESTRUCTURE + MIGRATE
ln-724SKIP (no artifacts)CONDITIONAL (if platform detected)
ln-730–780RUN (same for both modes)RUN (same for both modes)

维度CREATE模式TRANSFORM模式
输入空目录或目标技术栈配置现有项目(Replit、StackBlitz、CodeSandbox、Glitch、自定义项目)
检测逻辑未发现源码文件检测到源码文件 + 可选平台配置
ln-710执行逻辑跳过(无依赖需要升级)执行(升级现有依赖)
ln-720执行逻辑搭建骨架 + 生成代码重构结构 + 迁移代码
ln-724执行逻辑跳过(无遗留产物)条件执行(若检测到特定平台则执行)
ln-730–780执行逻辑执行(与TRANSFORM模式逻辑一致)执行(与CREATE模式逻辑一致)

Overview

整体概览

AspectDetails
InputEmpty directory (CREATE) or source project (TRANSFORM)
OutputProduction-ready project with all infrastructure
Delegationsln-710 (conditional) -> ln-720 -> ln-730 -> ln-740 -> ln-750 -> ln-760 -> ln-770 -> ln-780

维度详情
输入空目录(CREATE模式)或现有源码项目(TRANSFORM模式)
输出包含完整基础设施的可生产级项目
任务委托流程ln-710(条件触发)-> ln-720 -> ln-730 -> ln-740 -> ln-750 -> ln-760 -> ln-770 -> ln-780

Workflow

工作流

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-710: Dependency Upgrader
    +---> ln-720: Structure Migrator
    +---> ln-730: DevOps Setup
    +---> ln-740: Quality Setup
    +---> ln-750: Commands Generator
    +---> ln-760: Security Setup
    +---> ln-770: Crosscutting Setup
    +---> ln-780: Bootstrap Verifier
    |
    v
Phase 4: Report (Summary of Changes)

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-710: Dependency Upgrader
    +---> ln-720: Structure Migrator
    +---> ln-730: DevOps Setup
    +---> ln-740: Quality Setup
    +---> ln-750: Commands Generator
    +---> ln-760: Security Setup
    +---> ln-770: Crosscutting Setup
    +---> ln-780: Bootstrap Verifier
    |
    v
Phase 4: Report (Summary of Changes)

Phase 0: Technology Detection

阶段0:技术检测

Step 0.0: Mode Detection

步骤0.0:模式检测

ConditionModeAction
Empty directory (no source files)CREATEAsk user for target stack, project name, entities
Source files foundTRANSFORMAuto-detect stack, scan for platform artifacts
Ambiguous (few files, unclear)ASKPresent both options, let user choose
条件模式操作
空目录(无源码文件)CREATE询问用户目标技术栈、项目名称、核心实体
检测到源码文件TRANSFORM自动检测技术栈,扫描平台遗留产物
模糊状态(文件极少,无法明确判断)询问向用户展示两种模式选项,由用户选择

Step 0.1: CREATE Mode — User Input

步骤0.1:CREATE模式 — 用户输入

ParameterRequiredDefaultExample
Project nameYesMyApp
Target backendYes.NET / Node.js / Python
Target frontendYesReact / Vue / Angular / Svelte
DatabaseYesPostgreSQL / MongoDB / MySQL
Main entitiesNoUser, Role (starter)User, Product, Order
参数是否必填默认值示例
项目名称MyApp
目标后端技术栈.NET / Node.js / Python
目标前端技术栈React / Vue / Angular / Svelte
数据库PostgreSQL / MongoDB / MySQL
核心实体User、Role(初始模板)User、Product、Order

Step 0.2: Idempotency Pre-flight

步骤0.2:幂等性预检查

If target directory contains existing files:
  1. Detect existing structure (package.json, .csproj, etc.)
  2. Warn user: "Target directory is not empty. Existing files may be overwritten."
  3. Ask: Overwrite (replace all) / Merge (keep existing, add missing) / Abort
若目标目录已存在文件:
  1. 检测现有项目结构(package.json、.csproj等)
  2. 向用户发出警告: "目标目录非空,现有文件可能被覆盖。"
  3. 询问用户:覆盖(替换所有文件) / 合并(保留现有文件,补充缺失内容) / 终止

Step 0.3: Technology Detection (TRANSFORM mode) / Stack Config (CREATE mode)

步骤0.3:技术栈检测(TRANSFORM模式)/ 技术栈配置(CREATE模式)

Analyze project to detect tech stack before delegations.
在委托子任务前,先分析项目以检测技术栈。

Detection Rules

检测规则

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

Detection Output

检测输出

yaml
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

yaml
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

Phase 1: Generate Transformation Plan

阶段1:生成转换计划

Based on detected stack, create detailed plan:
markdown
undefined
基于检测到的技术栈,创建详细转换计划:
markdown
undefined

Bootstrap Transformation Plan

初始化转换计划

Source Analysis

源项目分析

  • Frontend: React 19 + Vite + TypeScript
  • Backend: Express + Drizzle (to be replaced with .NET)
  • Database: PostgreSQL 17
  • 前端:React 19 + Vite + TypeScript
  • 后端:Express + Drizzle(将替换为.NET)
  • 数据库:PostgreSQL 17

Transformations

转换内容

1. Dependencies (ln-710)

1. 依赖管理(ln-710)

  • Upgrade React 18 -> 19
  • Upgrade Vite 5 -> 6
  • Add missing peer dependencies
  • 将React 18升级至19
  • 将Vite 5升级至6
  • 补充缺失的peer依赖

2. Structure (ln-720)

2. 项目结构(ln-720)

  • Move frontend to src/frontend/
  • Create .NET backend: MyApp.Api, MyApp.Domain, etc.
  • Migrate mock data from Drizzle to MockData classes
  • 将前端代码迁移至src/frontend/目录
  • 创建.NET后端项目:MyApp.Api、MyApp.Domain等
  • 将Drizzle中的模拟数据迁移至MockData类

3. DevOps (ln-730)

3. DevOps配置(ln-730)

  • Create Dockerfile.frontend (multi-stage)
  • Create Dockerfile.backend (.NET SDK)
  • Create docker-compose.yml
  • Create .github/workflows/ci.yml
  • 创建Dockerfile.frontend(多阶段构建)
  • 创建Dockerfile.backend(基于.NET SDK)
  • 创建docker-compose.yml
  • 创建.github/workflows/ci.yml

4. Quality (ln-740)

4. 质量工具配置(ln-740)

  • Configure ESLint (flat config)
  • Add Prettier
  • Setup Husky + lint-staged
  • Create test infrastructure (Vitest, xUnit)
  • 配置ESLint(扁平配置)
  • 集成Prettier
  • 配置Husky + lint-staged
  • 创建测试基础设施(Vitest、xUnit)

5. Commands (ln-750)

5. 命令生成(ln-750)

  • Generate refresh_context.md
  • Generate refresh_infrastructure.md
  • Generate build-and-test.md
  • 生成refresh_context.md
  • 生成refresh_infrastructure.md
  • 生成build-and-test.md

6. Security (ln-760)

6. 安全配置(ln-760)

  • Scan for hardcoded secrets
  • Run npm audit
  • Create SECURITY.md
  • 扫描硬编码密钥
  • 执行npm audit
  • 创建SECURITY.md

7. Crosscutting (ln-770)

7. 横切关注点配置(ln-770)

  • Configure Serilog logging
  • Add GlobalExceptionMiddleware
  • Configure CORS policy
  • Add /health endpoints
  • Enable Swagger
  • 配置Serilog日志
  • 添加GlobalExceptionMiddleware
  • 配置CORS策略
  • 添加/health检查端点
  • 启用Swagger

8. Verification (ln-780)

8. 验证(ln-780)

  • Build all projects
  • Run tests
  • Start Docker containers
  • Verify health checks
  • 构建所有项目
  • 运行测试
  • 启动Docker容器
  • 验证健康检查状态

Estimated Changes

预计变更

  • Files created: ~45
  • Files modified: ~12
  • Files deleted: ~8 (replaced backend)

---
  • 新增文件:约45个
  • 修改文件:约12个
  • 删除文件:约8个(替换后端代码)

---

Phase 2: User Confirmation

阶段2:用户确认

Present plan and ask for approval:
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]
If user declines, ask for modifications.

向用户展示转换计划并请求确认:
初始化计划已准备完成!

摘要:
- 前端:React 19(从18升级)
- 后端:.NET 10(替换Node.js)
- Docker:多容器部署配置
- CI/CD:GitHub Actions
- 质量工具:ESLint、Prettier、Husky

是否继续执行初始化?[Y/n]
若用户拒绝,询问用户需修改的内容。

Phase 3: Execute Delegations

阶段3:执行子任务委托

Sequential delegation to L2 coordinators:
OrderSkillPurposeCREATE modeTRANSFORM modeDepends On
1ln-710Upgrade dependenciesSKIPRUN
2ln-720Structure (SCAFFOLD/RESTRUCTURE)RUN (SCAFFOLD)RUN (RESTRUCTURE)ln-710
3ln-730Setup Docker/CIRUNRUNln-720
4ln-740Configure quality toolsRUNRUNln-720
5ln-750Generate .claude/commandsRUNRUNln-720
6ln-760Security scanningRUNRUNln-710
7ln-770Crosscutting concernsRUNRUNln-720
8ln-780Build and verifyRUNRUNAll above
按顺序将任务委托给L2协调器:
顺序技能ID目标CREATE模式TRANSFORM模式依赖项
1ln-710升级依赖跳过执行
2ln-720项目结构(搭建/重构)执行(搭建骨架)执行(重构结构)ln-710
3ln-730Docker/CI配置执行执行ln-720
4ln-740质量工具配置执行执行ln-720
5ln-750生成.claude/命令执行执行ln-720
6ln-760安全扫描执行执行ln-710
7ln-770横切关注点配置执行执行ln-720
8ln-780构建与验证执行执行以上所有任务

Delegation Protocol

委托协议

For each L2 coordinator:
  1. Prepare context:
    yaml
    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. Invoke skill: Pass context as input
  3. Collect result:
    yaml
    Status: success | partial | failed
    FilesCreated: [...]
    FilesModified: [...]
    Warnings: [...]
    Errors: [...]
  4. Handle errors:
    • Log error details
    • Ask user: continue or abort?
    • If abort, rollback if possible

针对每个L2协调器:
  1. 准备上下文:
    yaml
    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. 调用技能: 将上下文作为输入传入
  3. 收集结果:
    yaml
    Status: success | partial | failed
    FilesCreated: [...]
    FilesModified: [...]
    Warnings: [...]
    Errors: [...]
  4. 错误处理:
    • 记录错误详情
    • 询问用户:继续执行或终止?
    • 若用户选择终止,尽可能回滚变更

Phase 4: Generate Report

阶段4:生成报告

Final summary after all delegations:
yaml
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

  Commands:
    - Generated 3 .claude/commands

  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. Review generated .claude/commands
  4. Run 'git add . && git commit -m "Bootstrap complete"'

所有子任务完成后生成最终摘要:
yaml
初始化执行完成!

耗时:24分32秒

变更摘要:
  新增文件:47个
  修改文件:15个
  删除文件:9个

按分类统计:
  依赖管理:
    - 升级23个包
    - 未检测到破坏性变更

  项目结构:
    - 创建5个.NET项目
    - 重构前端代码(提取12个组件)
    - 迁移8个模拟数据文件

  DevOps配置:
    - 创建Dockerfile.frontend
    - 创建Dockerfile.backend
    - 创建docker-compose.yml
    - 创建.github/workflows/ci.yml

  质量工具:
    - 配置ESLint + Prettier
    - 安装Husky钩子
    - 创建3个测试文件

  命令生成:
    - 生成3个.claude/命令

  安全检测:
    - 扫描156个文件
    - 未发现硬编码密钥
    - 2个低危漏洞警告

  横切关注点:
    - 配置Serilog日志
    - 添加错误处理中间件
    - 为localhost启用CORS
    - 配置/health健康检查端点
    - 启用Swagger文档

验证结果:
  构建:成功
  测试:42个通过,0个失败
  Docker:3个容器运行中
  健康检查:所有端点正常响应

下一步操作:
  1. 打开http://localhost:3000(前端页面)
  2. 打开http://localhost:5000/swagger(API文档)
  3. 查看生成的.claude/命令
  4. 执行'git add . && git commit -m "Bootstrap complete"'

Error Handling

错误处理

Recoverable Errors

可恢复错误

ErrorAction
Dependency conflictTry with --legacy-peer-deps
Build failureLog error, suggest fix, continue
Test failureLog warning, continue with --allow-failures
Docker build failSuggest Dockerfile fixes
错误类型处理操作
依赖冲突尝试添加--legacy-peer-deps参数重新执行
构建失败记录错误,给出修复建议,继续执行后续任务
测试失败记录警告,使用--allow-failures参数继续执行
Docker构建失败给出Dockerfile修复建议

Fatal Errors

致命错误

ErrorActionMode
No package.json (TRANSFORM)Abort: "Not a Node.js project"TRANSFORM
Unsupported stackAbort: "Stack not supported: {stack}"Both
Permission deniedAbort: "Cannot write to {path}"Both
No stack selectedAbort: "Target stack required for CREATE mode"CREATE
Conflicting filesAbort if user chose "Abort" in pre-flightCREATE

错误类型处理操作适用模式
未找到package.json(TRANSFORM模式)终止:"非Node.js项目"TRANSFORM
不支持的技术栈终止:"不支持的技术栈:{stack}"两种模式
权限不足终止:"无法写入路径:{path}"两种模式
未选择技术栈(CREATE模式)终止:"CREATE模式必须指定目标技术栈"CREATE
文件冲突若用户在预检查中选择"终止"则终止流程CREATE

Configuration

配置

Skill Options

技能选项

yaml
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

  # Commands to generate
  commands: ["refresh_context", "refresh_infrastructure", "build-and-test"]

  # Verification
  runTests: true
  startContainers: true
  keepContainersRunning: true
yaml
Options:
  # 后端技术栈替换
  targetBackend: ".NET" | "Node" | "Python" | "keep"

  # 前端重构深度
  frontendRefactoring: "minimal" | "moderate" | "full"

  # Docker配置
  dockerEnabled: true
  dockerRegistry: null  # 可选:ghcr.io/user

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

  # 质量工具配置
  linterConfig: "recommended" | "strict"
  precommitHooks: true

  # 要生成的命令
  commands: ["refresh_context", "refresh_infrastructure", "build-and-test"]

  # 验证选项
  runTests: true
  startContainers: true
  keepContainersRunning: true

Environment Variables

环境变量

bash
undefined
bash
undefined

Optional: Override detection

可选:覆盖自动检测结果

BOOTSTRAP_FRONTEND=react BOOTSTRAP_BACKEND=dotnet BOOTSTRAP_DB=postgres
BOOTSTRAP_FRONTEND=react BOOTSTRAP_BACKEND=dotnet BOOTSTRAP_DB=postgres

Optional: Skip steps

可选:跳过指定步骤

SKIP_DEPENDENCIES=false SKIP_DOCKER=false SKIP_TESTS=false

---
SKIP_DEPENDENCIES=false SKIP_DOCKER=false SKIP_TESTS=false

---

Integration with Existing Skills

与现有技能的集成

SkillIntegration
ln-001-standards-researcherQuery for best practices during ln-720
ln-002-best-practices-researcherGenerate guides during ln-720
ln-100-documents-pipelineCall after bootstrap for docs
ln-310-story-validatorValidate generated tasks

技能ID集成方式
ln-001-standards-researcher在ln-720执行期间查询最佳实践
ln-002-best-practices-researcher在ln-720执行期间生成指南
ln-100-documents-pipeline初始化完成后调用以生成文档
ln-310-story-validator验证生成的任务

版本: 2.0.0 最后更新时间: 2026-02-07

References

  • stack_detection.md - Detection rules and patterns
  • transformation_plan_template.md - Plan template
  • verification_checklist.md - Verification steps

Version: 2.0.0 Last Updated: 2026-02-07