--- name: "add-subproject" description: "Adds a new subproject to the existing '1 Human + 2 AI' collaboration framework. Invoke when you need to add a new subproject like web admin, data entry program, etc." --- # 添加子项目 Skill ## 功能 在现有的"1人+2AI"协作框架中动态添加新的子项目,自动创建: - 项目目录结构(src/、tests/、docs/) - 环境配置文件(ENVIRONMENT.md) - README.md 占位文件 - 示例任务目录 ## 使用方法 ### 参数说明 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | project_name | string | 是 | 子项目名称,如 "web_admin"、"data_entry" | | project_number | string | 否 | 项目编号,如 "P03",默认自动生成 | ### 调用方式 ```bash # 方式1:仅提供项目名称(自动分配编号) # skill 会自动检测现有项目编号,分配下一个编号 add-subproject --project_name="web_admin" # 方式2:指定项目编号 add-subproject --project_name="web_admin" --project_number="P03" ``` ## 创建的内容 ### 目录结构 ``` projects/ └── P03_web_admin/ # 新项目目录 ├── src/ # Dev AI 工作区 │ └── README.md ├── tests/ # QA AI 工作区 │ └── README.md ├── docs/ # 项目文档 │ ├── 01_需求概要.md │ ├── 02_架构设计.md │ └── 03_接口定义.md └── ENVIRONMENT.md # 环境配置 ``` ### 任务目录 ``` review/ └── active/ └── P03-001/ # 新项目的第一个任务 ├── task.md ├── acceptance.md ├── impact.md └── feedback/ └── round1.md ``` ## 执行命令 ```bash # 获取下一个项目编号 get_next_project_number() { ls -la projects/ | grep -E '^P[0-9]+_' | sort | tail -1 | sed 's/P\([0-9]*\)_.*$/\1/' } # 创建项目目录 PROJECT_NAME="web_admin" NEXT_NUM=$(get_next_project_number) PROJECT_NUM="P$(printf '%02d' $((NEXT_NUM + 1)))" PROJECT_DIR="projects/${PROJECT_NUM}_${PROJECT_NAME}" mkdir -p "${PROJECT_DIR}"/{src,tests,docs} # 创建 ENVIRONMENT.md cat > "${PROJECT_DIR}/ENVIRONMENT.md" << EOF # ${PROJECT_NUM}_${PROJECT_NAME} - 环境准备 ## 依赖 - Node.js >= 20.x ## 安装 npm install ## 运行 npm start EOF # 创建文档 cat > "${PROJECT_DIR}/docs/01_需求概要.md" << EOF # ${PROJECT_NUM}_${PROJECT_NAME} - 需求概要 ## 项目概述 ## 功能需求 ## 非功能需求 EOF cat > "${PROJECT_DIR}/docs/02_架构设计.md" << EOF # ${PROJECT_NUM}_${PROJECT_NAME} - 架构设计 ## 技术选型 ## 架构图 ## 模块划分 EOF cat > "${PROJECT_DIR}/docs/03_接口定义.md" << EOF # ${PROJECT_NUM}_${PROJECT_NAME} - 接口定义 ## API 列表 ## 数据结构 EOF # 创建 README.md echo "# ${PROJECT_NAME}" > "${PROJECT_DIR}/src/README.md" echo "# tests" > "${PROJECT_DIR}/tests/README.md" # 创建示例任务 mkdir -p "review/active/${PROJECT_NUM}-001/feedback" cat > "review/active/${PROJECT_NUM}-001/task.md" << EOF # ${PROJECT_NUM}-001 - 项目初始化 ## 任务信息 - 任务编号:${PROJECT_NUM}-001 - 项目:${PROJECT_NUM}_${PROJECT_NAME} - 创建时间:$(date +%Y-%m-%d) - 状态:TODO ## 任务描述 完成 ${PROJECT_NAME} 项目的初始化工作。 ## 交付物 - 项目目录结构 - 基础配置文件 - README 文档 EOF cat > "review/active/${PROJECT_NUM}-001/acceptance.md" << EOF # ${PROJECT_NUM}-001 - 验收标准 ## 功能验收 - [ ] 项目目录结构完整 - [ ] ENVIRONMENT.md 已创建 - [ ] 文档目录已初始化 ## 测试覆盖要求 - 无需测试(初始化任务) EOF cat > "review/active/${PROJECT_NUM}-001/impact.md" << EOF # ${PROJECT_NUM}-001 - 变更影响范围 ## 修改的文件 | 文件路径 | 修改类型 | 影响等级 | |---------|---------|---------| | ${PROJECT_DIR}/ | 新增 | LOW | ## 需要回归测试的场景 - 无(新项目) EOF cat > "review/active/${PROJECT_NUM}-001/feedback/round1.md" << EOF # ${PROJECT_NUM}-001 - 第一轮测试反馈 ## 测试结果 - 通过:0 - 失败:0 ## 反馈 待执行测试 EOF # 更新 README.md echo "- [${PROJECT_NUM}_${PROJECT_NAME}](${PROJECT_DIR})" >> README.md echo "✅ 子项目 ${PROJECT_NUM}_${PROJECT_NAME} 创建成功!" ``` ## 使用场景 **何时调用此 skill:** - ✅ 添加新的 Web 管理程序 - ✅ 添加数据录入程序 - ✅ 添加任何新的子项目模块 - ✅ 扩展现有项目架构 **不适用场景:** - ❌ 项目尚未初始化(需先调用 ai-collab-setup) - ❌ 修改现有项目结构 ## 后续步骤 skill 执行后: 1. 检查 `projects/${PROJECT_NUM}_${PROJECT_NAME}/` 目录结构 2. 修改 `ENVIRONMENT.md` 配置项目依赖 3. 更新 `docs/` 目录的文档内容 4. 开始在 `review/active/${PROJECT_NUM}-001/` 任务下工作 --- **Version**: 1.0 **Created**: 2026-05-22 **Based On**: ErrLens AI Programming Project