Files
ai_soc_sw/.trae/skills/add-subproject/SKILL.md
T

254 lines
6.6 KiB
Markdown
Raw Normal View History

2026-05-22 15:57:05 +08:00
---
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 占位文件
- 示例任务目录(含 task.md、acceptance.md、impact.md、feedback/
2026-05-22 15:57:05 +08:00
## 使用方法
### 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| 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 工作区
│ ├── server/ # NestJS 后端(如需要)
│ ├── config/ # 构建配置
│ ├── types/ # 全局类型
2026-05-22 15:57:05 +08:00
│ └── README.md
├── tests/ # QA AI 工作区
│ └── README.md
├── docs/ # 项目文档
│ ├── 01_需求概要.md
│ ├── 02_架构设计.md
│ └── 03_接口定义.md
└── ENVIRONMENT.md # 环境配置
```
### 任务目录
```
review/
└── active/
└── P03-001/ # 新项目的第一个任务
├── task.md # 任务描述(人类创建,AI 只读)
├── acceptance.md # 验收标准
├── impact.md # 变更影响范围
└── feedback/ # 测试反馈
2026-05-22 15:57:05 +08:00
└── round1.md
```
## 执行命令
```bash
# 获取下一个项目编号(PowerShell 兼容版本)
2026-05-22 15:57:05 +08:00
get_next_project_number() {
# 兼容 Linux/macOS
if command -v ls >/dev/null 2>&1; then
ls -la projects/ | grep -E '^P[0-9]+_' | sort | tail -1 | sed 's/P\([0-9]*\)_.*$/\1/'
# 兼容 Windows PowerShell
elif command -v powershell >/dev/null 2>&1; then
powershell -Command "(Get-ChildItem projects -Directory | Where-Object { $_.Name -match '^P\d+_' } | Sort-Object Name | Select-Object -Last 1).Name -replace 'P(\d+)_.*', '$1'"
else
echo "0"
fi
2026-05-22 15:57:05 +08:00
}
# 创建项目目录
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/{server,config,types},tests,docs}
2026-05-22 15:57:05 +08:00
# 创建 ENVIRONMENT.md
cat > "${PROJECT_DIR}/ENVIRONMENT.md" << EOF
# ${PROJECT_NUM}_${PROJECT_NAME} - 环境准备
## 依赖
- Node.js >= 20.x
- pnpm >= 9.0.0
2026-05-22 15:57:05 +08:00
## 安装
pnpm install
2026-05-22 15:57:05 +08:00
## 运行
pnpm dev
2026-05-22 15:57:05 +08:00
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} - src" > "${PROJECT_DIR}/src/README.md"
echo "# ${PROJECT_NAME} - tests" > "${PROJECT_DIR}/tests/README.md"
2026-05-22 15:57:05 +08:00
# 创建示例任务
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 |
## 影响的功能模块
- [x] 项目初始化
2026-05-22 15:57:05 +08:00
## 需要回归测试的场景
- 无(新项目)
## 环境依赖变更
- 无
2026-05-22 15:57:05 +08:00
EOF
cat > "review/active/${PROJECT_NUM}-001/feedback/round1.md" << EOF
# ${PROJECT_NUM}-001 - 第一轮测试反馈
## 基本信息
- 测试时间: $(date +%Y-%m-%d)
- 测试项目: ${PROJECT_NUM}_${PROJECT_NAME}
- 测试环境: 待配置
## 测试结果概览
| 指标 | 数值 |
|------|------|
| 测试用例总数 | 0 |
| 通过 | 0 |
| 失败 | 0 |
| 跳过 | 0 |
| 代码覆盖率 | 0% |
2026-05-22 15:57:05 +08:00
## 反馈
待 Dev AI 完成开发后执行测试
2026-05-22 15:57:05 +08:00
EOF
# 更新 README.md(如果存在)
if [ -f README.md ]; then
echo "- [${PROJECT_NUM}_${PROJECT_NAME}](${PROJECT_DIR})" >> README.md
fi
2026-05-22 15:57:05 +08:00
echo "✅ 子项目 ${PROJECT_NUM}_${PROJECT_NAME} 创建成功!"
echo "📖 请阅读 AGENTS.md 了解协作规则"
echo "🚀 在 review/active/${PROJECT_NUM}-001/ 下查看示例任务结构"
2026-05-22 15:57:05 +08:00
```
## 使用场景
**何时调用此 skill**
- ✅ 添加新的 Web 管理程序
- ✅ 添加数据录入程序
- ✅ 添加任何新的子项目模块
- ✅ 扩展现有项目架构
**不适用场景:**
- ❌ 项目尚未初始化(需先调用 ai-collab-setup
- ❌ 修改现有项目结构
## 后续步骤
skill 执行后:
1. 检查 `projects/${PROJECT_NUM}_${PROJECT_NAME}/` 目录结构
2. 阅读 `review/active/${PROJECT_NUM}-001/task.md` 示例任务
3. 根据实际需求修改 `task.md` 为真实任务
4. Dev AI 开始开发
2026-05-22 15:57:05 +08:00
---
**Version**: 2.0
2026-05-22 15:57:05 +08:00
**Created**: 2026-05-22
**Updated**: 2026-05-23
**Based On**: ErrLens AI Programming Project
**Changes from v1**:
- 目录结构新增 src/server/、src/config/、src/types/ 子目录
- 示例任务增加完整的 feedback/round1.md 格式(含基本信息表格)
- impact.md 增加「影响的功能模块」和「环境依赖变更」段落
- 脚本兼容 Windows PowerShell 和 Linux/macOS
- ENVIRONMENT.md 默认使用 pnpm 包管理器