用途
ln-730-devops-setup 是一个 DevOps 基础设施搭建协调技能,属于 L2 域协调器(L2 Domain Coordinator),分类为 7XX Project Bootstrap,父技能为 ln-700-project-bootstrap。它用于为一个项目编排完整的 DevOps 基础设施搭建流程。
它明确不做的事:不直接生成文件,而是委托给三个专职子技能(ln-731、ln-732、ln-733)完成具体工作。
主要能力
- 自动检测项目技术栈,无需用户交互提示(Auto-detect 模式)。
- 调度专职子技能并验证生成的配置。
- 支持的技术栈:
- 前端:React/Vite + Nginx
- 后端:.NET 8/9 或 Python(FastAPI/Django)
- 数据库:PostgreSQL
- CI/CD:GitHub Actions
输入为包含源代码的项目目录,输出为 Docker、CI/CD 与环境配置。
工作流程
阶段 1:预检验证(Pre-flight Validation)
检查所需工具与项目结构:验证已安装 Docker(docker --version)、验证 docker-compose 可用、检查是否已存在 DevOps 文件(覆盖前会警告)。输出校验报告,或在无法继续时输出 STOP 与说明。
阶段 2:项目分析(自动检测)
自动检测项目栈,检测方式与检查文件如下:
- 前端:通过 package.json 是否存在,检查 src/frontend/package.json、package.json
- 后端 .NET:通过 .csproj/.sln 是否存在,检查 .sln、src/**/.csproj
- 后端 Python:通过 requirements.txt/pyproject.toml,检查 requirements.txt、pyproject.toml
- 数据库:通过代码中的连接字符串,检查 appsettings.json、.env.example
- 已有 CI/CD:检查工作流文件,检查 .github/workflows/、azure-pipelines.yml
版本检测方式:Node.js 读取 package.json 的 engines 或使用 node -v;.NET 读取 *.csproj 的 TargetFramework;Python 读取 pyproject.toml 或 runtime.txt;PostgreSQL 默认使用最新稳定版(17)。输出为含检测版本的栈配置对象。
阶段 3:子技能调度(Worker Delegation)
并行委托给子技能(任务相互独立):
- ln-731-docker-generator:输入栈配置与版本,输出 Dockerfile.*、docker-compose.yml、.dockerignore
- ln-732-cicd-generator:输入栈配置与检测到的命令,输出 .github/workflows/ci.yml
- ln-733-env-configurator:输入检测到的环境变量,输出 .env.example、.env.development、.gitignore 更新
错误处理:若某子技能失败,记录错误并继续其他任务;最后统一报告所有失败项,并建议对失败组件的手动修复方案。
调用方式: Skill(skill: "ln-731-docker-generator", args: "{projectPath}") Skill(skill: "ln-732-cicd-generator", args: "{projectPath}") Skill(skill: "ln-733-env-configurator", args: "{projectPath}")
阶段 4:配置校验
运行 docker-compose config 校验语法、检查所有引用的文件是否存在、验证提交文件中不含密钥。输出校验报告。
阶段 5:完成报告
生成摘要:列出所有创建的文件、展示检测到的栈配置、提供后续步骤建议。
生成的文件
Docker(ln-731):Dockerfile.frontend(前端多阶段构建)、Dockerfile.backend(后端多阶段构建)、docker-compose.yml(服务编排)、docker-compose.override.yml(开发覆盖,可选)、.dockerignore(构建上下文排除)。
CI/CD(ln-732):.github/workflows/ci.yml(主 CI 流水线)。
环境(ln-733):.env.example(含所有变量的模板)、.env.development(开发默认值)、.env.production(生产模板,占位符)、.gitignore 更新(密钥保护)。
关键注意事项
- 仅自动检测:无交互提示,使用检测值或合理默认值。
- 幂等:创建前检查文件是否存在,覆盖前会发出警告。
- 并行执行:子技能相互独立,可并行运行。
- 错误恢复:允许部分失败继续执行,结束时报告所有问题。
- 版本锁定:使用检测到的版本,不使用硬编码值。
TodoWrite 格式(强制):
- Invoke ln-731-docker-generator (pending)
- Invoke ln-732-cicd-generator (pending)
- Invoke ln-733-env-configurator (pending)
- Verify configuration (pending)
- Generate completion report (pending)
子技能调用(强制)
宿主技能调用 Skill(skill: "...", args: "...") 为强制委托。Claude:严格按所示调用 Skill 工具。Codex:若不存在 Skill 工具,则在可用技能中定位该命名技能,读取其 SKILL.md,将 args 视为 $ARGUMENTS,执行该技能工作流,然后返回此处并带回其结果/产物。不得内联子技能逻辑,也不得在未执行目标技能的情况下将子技能标记为完成。
阶段与子技能对应:
- 3a ln-731-docker-generator:Shared(Skill 工具)— Dockerfile、docker-compose、.dockerignore
- 3b ln-732-cicd-generator:Shared(Skill 工具)— CI/CD 流水线配置
- 3c ln-733-env-configurator:Shared(Skill 工具)— 环境文件与 .gitignore
所有子技能均通过 Skill 工具调用,子技能可见协调器上下文。
完成标准(Definition of Done)
- 预检验证通过
- 栈自动检测成功
- 所有子技能完成(或失败已记录)
- docker-compose config 校验成功
- 生成文件中不含密钥
- 显示完成报告
参考文件
- Worker: ../ln-731-docker-generator/SKILL.md
- Worker: ../ln-732-cicd-generator/SKILL.md
- Worker: ../ln-733-env-configurator/SKILL.md
元分析(Meta-Analysis)
可选参考:仅当用户要求运行后元分析或需要协议格式的运行反思时,才加载 references/meta_analysis_protocol.md。技能类型:execution-orchestrator。被请求时,在所有阶段完成后运行,使用 execution-orchestrator 格式输出到聊天。
版本:1.1.0 最后更新:2026-01-10
适用场景与限制
适用场景:为已有源代码的项目补充 Docker 容器化、GitHub Actions CI/CD 流水线以及环境变量配置。
限制:仅支持资料中列出的技术栈(React/Vite + Nginx、.NET 8/9、Python FastAPI/Django、PostgreSQL、GitHub Actions);采用无交互自动检测模式;定价、平台支持范围等信息暂未提供。