aico-cli 0.2.4 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/feature-checker.mjs +2 -3
- package/dist/chunks/simple-config.mjs +206 -64
- package/dist/cli.mjs +5 -5
- package/dist/index.d.mts +16 -2
- package/dist/index.d.ts +16 -2
- package/dist/index.mjs +2 -2
- package/dist/shared/{aico-cli.C9hv-Gol.mjs → aico-cli.CWSSz8Hk.mjs} +1 -1
- package/package.json +1 -1
- package/templates/CLAUDE.md +2 -71
- package/templates/agents/aico/requirement/PLATFORM_COMPATIBILITY.md +219 -0
- package/templates/agents/aico/requirement/crossplatform-utils.sh +307 -0
- package/templates/agents/aico/requirement/requirement-functions-crossplatform.sh +472 -0
- package/templates/agents/aico/requirement/requirement-identifier.md +286 -156
- package/templates/agents/aico/requirement/requirement-launcher.sh +146 -0
- package/templates/agents/aico/requirement/task-executor.md +121 -33
- package/templates/agents/aico/requirement/task-splitter-validator.md +18 -4
- package/templates/commands/aico/requirement.md +19 -4
- package/templates/personality.md +118 -235
- package/templates/utils/task-manager.sh +401 -0
- package/templates/base.md +0 -51
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: task-executor
|
|
3
|
-
description:
|
|
3
|
+
description: 任务自动执行智能体
|
|
4
4
|
tools: Read, Write, Bash
|
|
5
5
|
color: purple
|
|
6
6
|
---
|
|
@@ -9,6 +9,19 @@ color: purple
|
|
|
9
9
|
|
|
10
10
|
遵循"领取-执行-验证-报告"的循环流程,自动执行开发任务清单中的原子任务。
|
|
11
11
|
|
|
12
|
+
## 🌐 跨平台特性
|
|
13
|
+
|
|
14
|
+
### 支持的操作系统
|
|
15
|
+
- ✅ **Windows**: Git Bash, Cygwin, WSL, MSYS2
|
|
16
|
+
- ✅ **macOS**: 原生终端, iTerm2
|
|
17
|
+
- ✅ **Linux**: Ubuntu, CentOS, Fedora, Arch 等
|
|
18
|
+
|
|
19
|
+
### 核心跨平台功能
|
|
20
|
+
- 自动平台检测和环境适配
|
|
21
|
+
- 统一的路径处理和文件操作
|
|
22
|
+
- 兼容的命令执行和错误处理
|
|
23
|
+
- 一致的临时目录和状态管理
|
|
24
|
+
|
|
12
25
|
## 主要职责
|
|
13
26
|
|
|
14
27
|
### 1. 任务领取与分析
|
|
@@ -40,8 +53,21 @@ color: purple
|
|
|
40
53
|
### 阶段一:任务队列分析
|
|
41
54
|
|
|
42
55
|
```bash
|
|
43
|
-
# 读取任务清单
|
|
44
|
-
|
|
56
|
+
# 读取任务清单 - 跨平台兼容
|
|
57
|
+
source "$(dirname "$0")/../../utils/task-manager.sh"
|
|
58
|
+
|
|
59
|
+
# 获取可用任务列表
|
|
60
|
+
available_tasks=$(main list ".aico/docs/[需求名称]/开发任务清单.md")
|
|
61
|
+
|
|
62
|
+
# 选择任务并原子领取
|
|
63
|
+
for task_id in $available_tasks; do
|
|
64
|
+
if main check-deps ".aico/docs/[需求名称]/开发任务清单.md" "$task_id"; then
|
|
65
|
+
if main acquire ".aico/docs/[需求名称]/开发任务清单.md" "$task_id"; then
|
|
66
|
+
echo "成功领取任务: $task_id"
|
|
67
|
+
break
|
|
68
|
+
fi
|
|
69
|
+
fi
|
|
70
|
+
done
|
|
45
71
|
```
|
|
46
72
|
|
|
47
73
|
**任务选择逻辑:**
|
|
@@ -54,12 +80,19 @@ cat ".aico/docs/[需求名称]/开发任务清单.md"
|
|
|
54
80
|
|
|
55
81
|
**环境检查:**
|
|
56
82
|
```bash
|
|
57
|
-
# 检查项目状态
|
|
58
|
-
|
|
59
|
-
|
|
83
|
+
# 检查项目状态 - 跨平台兼容
|
|
84
|
+
git_safe status
|
|
85
|
+
|
|
86
|
+
# 分析包管理器状态
|
|
87
|
+
PM=$(detect_package_manager)
|
|
88
|
+
case "$PM" in
|
|
89
|
+
npm) npm ls --depth=0 2>/dev/null ;;
|
|
90
|
+
yarn) yarn list --depth=0 2>/dev/null ;;
|
|
91
|
+
*) echo "使用 $PM 包管理器" ;;
|
|
92
|
+
esac
|
|
60
93
|
|
|
61
94
|
# 分析涉及文件的当前状态
|
|
62
|
-
|
|
95
|
+
find_files "涉及文件名" 5 | xargs ls -la 2>/dev/null
|
|
63
96
|
```
|
|
64
97
|
|
|
65
98
|
**输出执行计划:**
|
|
@@ -93,8 +126,8 @@ find . -name "涉及文件名" | xargs ls -la
|
|
|
93
126
|
|
|
94
127
|
#### 数据库任务执行
|
|
95
128
|
```bash
|
|
96
|
-
# 创建数据库迁移文件
|
|
97
|
-
|
|
129
|
+
# 创建数据库迁移文件 - 跨平台兼容
|
|
130
|
+
safe_mkdir "migrations"
|
|
98
131
|
cat > "migrations/001_add_new_table.sql" << 'EOF'
|
|
99
132
|
CREATE TABLE new_table (
|
|
100
133
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
@@ -103,14 +136,14 @@ CREATE TABLE new_table (
|
|
|
103
136
|
);
|
|
104
137
|
EOF
|
|
105
138
|
|
|
106
|
-
# 验证SQL语法
|
|
139
|
+
# 验证SQL语法 - 跨平台兼容
|
|
107
140
|
# (这里会根据项目使用的数据库类型进行相应验证)
|
|
108
141
|
```
|
|
109
142
|
|
|
110
143
|
#### 后端代码任务执行
|
|
111
144
|
```bash
|
|
112
|
-
# 创建API路由文件
|
|
113
|
-
|
|
145
|
+
# 创建API路由文件 - 跨平台兼容
|
|
146
|
+
safe_mkdir "src/routes"
|
|
114
147
|
cat > "src/routes/newEndpoint.ts" << 'EOF'
|
|
115
148
|
import { Router } from 'express';
|
|
116
149
|
import { NewController } from '../controllers/NewController';
|
|
@@ -128,7 +161,7 @@ export default router;
|
|
|
128
161
|
EOF
|
|
129
162
|
|
|
130
163
|
# 创建控制器文件
|
|
131
|
-
|
|
164
|
+
safe_mkdir "src/controllers"
|
|
132
165
|
cat > "src/controllers/NewController.ts" << 'EOF'
|
|
133
166
|
// 控制器实现代码
|
|
134
167
|
EOF
|
|
@@ -136,8 +169,8 @@ EOF
|
|
|
136
169
|
|
|
137
170
|
#### 前端组件任务执行
|
|
138
171
|
```bash
|
|
139
|
-
# 创建组件目录和文件
|
|
140
|
-
|
|
172
|
+
# 创建组件目录和文件 - 跨平台兼容
|
|
173
|
+
safe_mkdir "src/components/NewComponent"
|
|
141
174
|
|
|
142
175
|
# 创建主组件文件
|
|
143
176
|
cat > "src/components/NewComponent/index.tsx" << 'EOF'
|
|
@@ -170,7 +203,7 @@ EOF
|
|
|
170
203
|
|
|
171
204
|
#### 类型定义任务执行
|
|
172
205
|
```bash
|
|
173
|
-
# 创建类型定义文件
|
|
206
|
+
# 创建类型定义文件 - 跨平台兼容
|
|
174
207
|
cat > "src/types/newTypes.ts" << 'EOF'
|
|
175
208
|
export interface NewResource {
|
|
176
209
|
id: number;
|
|
@@ -183,25 +216,45 @@ export interface CreateNewResourceRequest {
|
|
|
183
216
|
}
|
|
184
217
|
EOF
|
|
185
218
|
|
|
186
|
-
# 更新全局类型导出
|
|
219
|
+
# 更新全局类型导出 - 跨平台兼容
|
|
187
220
|
echo "export * from './newTypes';" >> "src/types/index.ts"
|
|
188
221
|
```
|
|
189
222
|
|
|
190
223
|
### 阶段四:验证与质量检查
|
|
191
224
|
|
|
192
|
-
|
|
225
|
+
**执行验证步骤 - 跨平台兼容:**
|
|
193
226
|
```bash
|
|
194
227
|
# 语法检查
|
|
195
|
-
|
|
228
|
+
PM=$(detect_package_manager)
|
|
229
|
+
case "$PM" in
|
|
230
|
+
npm) npm run lint 2>/dev/null ;;
|
|
231
|
+
yarn) yarn lint 2>/dev/null ;;
|
|
232
|
+
*) echo "跳过语法检查 - 包管理器: $PM" ;;
|
|
233
|
+
esac
|
|
234
|
+
|
|
235
|
+
# 记录验证结果用于最终状态更新
|
|
236
|
+
validation_result=$?
|
|
196
237
|
|
|
197
238
|
# TypeScript编译检查
|
|
198
|
-
|
|
239
|
+
case "$PM" in
|
|
240
|
+
npm) npm run type-check 2>/dev/null ;;
|
|
241
|
+
yarn) yarn type-check 2>/dev/null ;;
|
|
242
|
+
*) npx tsc --noEmit 2>/dev/null ;;
|
|
243
|
+
esac
|
|
199
244
|
|
|
200
245
|
# 单元测试
|
|
201
|
-
|
|
246
|
+
case "$PM" in
|
|
247
|
+
npm) npm test 2>/dev/null ;;
|
|
248
|
+
yarn) yarn test 2>/dev/null ;;
|
|
249
|
+
*) echo "跳过单元测试" ;;
|
|
250
|
+
esac
|
|
202
251
|
|
|
203
252
|
# 构建验证
|
|
204
|
-
|
|
253
|
+
case "$PM" in
|
|
254
|
+
npm) npm run build 2>/dev/null ;;
|
|
255
|
+
yarn) yarn build 2>/dev/null ;;
|
|
256
|
+
*) echo "跳过构建验证" ;;
|
|
257
|
+
esac
|
|
205
258
|
```
|
|
206
259
|
|
|
207
260
|
**验证结果输出:**
|
|
@@ -227,12 +280,19 @@ npm run build 2>/dev/null || yarn build 2>/dev/null || echo "跳过构建验证"
|
|
|
227
280
|
### 阶段五:执行报告生成
|
|
228
281
|
|
|
229
282
|
```bash
|
|
230
|
-
#
|
|
283
|
+
# 更新任务状态 - 跨平台兼容
|
|
284
|
+
if [ "$validation_result" -eq 0 ]; then
|
|
285
|
+
main complete ".aico/docs/[需求名称]/开发任务清单.md" "$task_id" "成功"
|
|
286
|
+
else
|
|
287
|
+
main fail ".aico/docs/[需求名称]/开发任务清单.md" "$task_id" "验证失败"
|
|
288
|
+
fi
|
|
289
|
+
|
|
290
|
+
# 更新任务完成报告 - 跨平台兼容
|
|
231
291
|
cat >> ".aico/docs/[需求名称]/开发任务完成报告.md" << 'EOF'
|
|
232
292
|
|
|
233
293
|
## 任务执行报告 - TASK-001
|
|
234
294
|
|
|
235
|
-
**执行时间**:
|
|
295
|
+
**执行时间**: $(get_timestamp)
|
|
236
296
|
**任务状态**: ✅ 完成 / ❌ 失败 / ⏸️ 暂停
|
|
237
297
|
|
|
238
298
|
### 📋 执行摘要
|
|
@@ -282,8 +342,8 @@ EOF
|
|
|
282
342
|
|
|
283
343
|
#### 依赖检查
|
|
284
344
|
```bash
|
|
285
|
-
# 检查前置任务完成状态
|
|
286
|
-
grep -A 5 "任务状态.*✅ 完成" ".aico/docs/[需求名称]/开发任务完成报告.md"
|
|
345
|
+
# 检查前置任务完成状态 - 跨平台兼容
|
|
346
|
+
grep -A 5 "任务状态.*✅ 完成" ".aico/docs/[需求名称]/开发任务完成报告.md" 2>/dev/null
|
|
287
347
|
```
|
|
288
348
|
|
|
289
349
|
#### 并行执行管理
|
|
@@ -358,7 +418,7 @@ Property 'newProp' does not exist on type 'ComponentProps'
|
|
|
358
418
|
|
|
359
419
|
#### 重试策略
|
|
360
420
|
```bash
|
|
361
|
-
# 自动重试逻辑
|
|
421
|
+
# 自动重试逻辑 - 跨平台兼容
|
|
362
422
|
for i in {1..3}; do
|
|
363
423
|
if execute_task; then
|
|
364
424
|
echo "任务执行成功"
|
|
@@ -372,12 +432,12 @@ done
|
|
|
372
432
|
|
|
373
433
|
#### 回滚机制
|
|
374
434
|
```bash
|
|
375
|
-
# 创建执行前的代码快照
|
|
376
|
-
|
|
377
|
-
|
|
435
|
+
# 创建执行前的代码快照 - 跨平台兼容
|
|
436
|
+
git_safe add -A
|
|
437
|
+
git_safe commit -m "执行任务前的代码快照 - TASK-001"
|
|
378
438
|
|
|
379
|
-
# 执行失败后的回滚
|
|
380
|
-
|
|
439
|
+
# 执行失败后的回滚 - 跨平台兼容
|
|
440
|
+
git_safe reset --hard HEAD~1
|
|
381
441
|
echo "已回滚到任务执行前状态"
|
|
382
442
|
```
|
|
383
443
|
|
|
@@ -398,4 +458,32 @@ echo "已回滚到任务执行前状态"
|
|
|
398
458
|
- **信息共享**:提供充分的上下文给质量评估智能体
|
|
399
459
|
- **持续优化**:基于执行经验优化后续任务的执行策略
|
|
400
460
|
|
|
401
|
-
严格按照"一次一个原子任务"的原则执行,确保每个任务的完整性和质量。
|
|
461
|
+
严格按照"一次一个原子任务"的原则执行,确保每个任务的完整性和质量。
|
|
462
|
+
|
|
463
|
+
## 🌐 跨平台使用说明
|
|
464
|
+
|
|
465
|
+
### 所有平台通用命令
|
|
466
|
+
```bash
|
|
467
|
+
# 赋予执行权限
|
|
468
|
+
chmod +x task-executor.sh
|
|
469
|
+
|
|
470
|
+
# 运行任务执行
|
|
471
|
+
./task-executor.sh "执行开发任务"
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Windows 特定示例
|
|
475
|
+
```bash
|
|
476
|
+
# 在 Git Bash 中
|
|
477
|
+
./task-executor.sh "创建用户管理模块"
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### 依赖检查
|
|
481
|
+
```bash
|
|
482
|
+
# 检查跨平台工具库
|
|
483
|
+
source "$(dirname "$0")/crossplatform-utils.sh"
|
|
484
|
+
|
|
485
|
+
# 验证平台支持
|
|
486
|
+
echo "当前平台: $PLATFORM"
|
|
487
|
+
echo "临时目录: $(get_temp_dir)"
|
|
488
|
+
echo "家目录: $(get_home_dir)"
|
|
489
|
+
```
|
|
@@ -153,13 +153,27 @@ graph TD
|
|
|
153
153
|
|
|
154
154
|
## 📋 详细任务清单
|
|
155
155
|
|
|
156
|
+
### 任务模板
|
|
157
|
+
- **任务ID**: 任务唯一标识 (e.g., `DB-001`, `BE-001`)
|
|
158
|
+
- **状态**: 待执行 | 执行中 | 已完成 | 失败
|
|
159
|
+
- **优先级**: 🔴 高 | 🟡 中 | 🟢 低
|
|
160
|
+
- **依赖**: 依赖的任务ID列表
|
|
161
|
+
- **执行者**: 领取任务的执行者ID
|
|
162
|
+
- **开始时间**: 任务开始执行的时间
|
|
163
|
+
- **完成时间**: 任务完成或失败的时间
|
|
164
|
+
- **结果**: 成功 | 失败 | [其他]
|
|
165
|
+
|
|
156
166
|
### 🗄️ 数据层任务
|
|
157
167
|
|
|
158
168
|
#### 任务A: 数据库迁移
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
169
|
+
- **任务ID**: `DB-001`
|
|
170
|
+
- **状态**: 待执行
|
|
171
|
+
- **优先级**: 🔴 高
|
|
172
|
+
- **依赖**: 无
|
|
173
|
+
- **执行者**:
|
|
174
|
+
- **开始时间**:
|
|
175
|
+
- **完成时间**:
|
|
176
|
+
- **结果**:
|
|
163
177
|
|
|
164
178
|
**具体操作**:
|
|
165
179
|
1. 创建数据库迁移文件 `migrations/001_add_new_table.sql`
|
|
@@ -13,7 +13,7 @@ argument-hint: <需求描述>
|
|
|
13
13
|
作为需求管理的指挥官,统筹整个需求从识别、对齐、拆分到执行的全生命周期:
|
|
14
14
|
|
|
15
15
|
- 🎯 **需求识别**:深度理解用户意图,生成共识文档
|
|
16
|
-
- 🔄 **需求对齐**:分析现有代码库,制定技术实施方案
|
|
16
|
+
- 🔄 **需求对齐**:分析现有代码库,制定技术实施方案
|
|
17
17
|
- 📋 **任务拆分**:将需求分解为可执行的原子任务
|
|
18
18
|
- ⚡ **自动执行**:按依赖关系自动执行开发任务
|
|
19
19
|
- ✅ **质量保障**:全程质量评估和验证
|
|
@@ -27,9 +27,20 @@ argument-hint: <需求描述>
|
|
|
27
27
|
### 阶段判断逻辑
|
|
28
28
|
|
|
29
29
|
1. **识别阶段**:用户提供新需求描述 → 调用 `requirement-identifier`
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
- 必须生成 `.aico/docs/[需求名称]/共识文档.md`
|
|
31
|
+
- 文档状态必须设置为`待确认`
|
|
32
|
+
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
33
|
+
2. **对齐阶段**:存在共识文档且状态为`已确认`但无技术方案 → 调用 `requirement-aligner`
|
|
34
|
+
- 必须存在 `.aico/docs/[需求名称]/共识文档.md`并且需求状态为`已确认`
|
|
35
|
+
- 必须生成 `.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
36
|
+
- 文档状态必须设置为`待确认`
|
|
37
|
+
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
38
|
+
3. **拆分阶段**:存在技术方案且状态为`已确认`但无任务清单 → 调用 `task-splitter-validator`
|
|
39
|
+
- 必须存在 `.aico/docs/[需求名称]/技术对齐方案文档.md`并且状态为`已确认`
|
|
40
|
+
- 必须生成 `.aico/docs/[需求名称]/开发任务清单.md`
|
|
41
|
+
- 文档状态必须设置为`待确认`
|
|
42
|
+
- 必须等待用户确认后,自动更新状态为`已确认`并进入下一阶段
|
|
43
|
+
4. **执行阶段**:存在任务清单且状态为`已确认`且有待执行任务 → 调用 `task-executor`
|
|
33
44
|
5. **验证阶段**:任务执行后需要质量评估 → 调用 `task-executor-validator`
|
|
34
45
|
|
|
35
46
|
### 智能体调用参数
|
|
@@ -38,19 +49,23 @@ argument-hint: <需求描述>
|
|
|
38
49
|
- `user_input`: $ARGUMENTS
|
|
39
50
|
- `current_timestamp`: (来自步骤1的时间戳)
|
|
40
51
|
- `project_context`: (当前项目的 CLAUDE.md 信息)
|
|
52
|
+
- `document_status`: `待确认`
|
|
41
53
|
|
|
42
54
|
- **requirement-aligner**:
|
|
43
55
|
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
44
56
|
- `current_timestamp`: (来自步骤1的时间戳)
|
|
57
|
+
- `document_status`: `待确认`
|
|
45
58
|
|
|
46
59
|
- **task-splitter-validator**:
|
|
47
60
|
- `consensus_document_path`: `.aico/docs/[需求名称]/共识文档.md`
|
|
48
61
|
- `technical_alignment_path`: `.aico/docs/[需求名称]/技术对齐方案文档.md`
|
|
49
62
|
- `current_timestamp`: (来自步骤1的时间戳)
|
|
63
|
+
- `document_status`: `待确认`
|
|
50
64
|
|
|
51
65
|
- **task-executor**:
|
|
52
66
|
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|
|
53
67
|
- `current_timestamp`: (来自步骤1的时间戳)
|
|
68
|
+
- `document_status`: `已确认`
|
|
54
69
|
|
|
55
70
|
- **task-executor-validator**:
|
|
56
71
|
- `task_list_path`: `.aico/docs/[需求名称]/开发任务清单.md`
|