6aspec 3.0.0-dev.15 → 3.0.0-dev.18
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.
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
1. **选择需求并检查状态**
|
|
19
19
|
|
|
20
20
|
- 从用户本次命令中解析 `--skipTest=true` / `--skipTest=false`;若未出现则记为 `false`
|
|
21
|
+
- 如果用户在命令中指定了特定任务(如"只实现 TASK-001"、"实现 TASK-002 和 TASK-003"),记录为**指定任务模式**,只将这些任务加入执行队列;仍需在步骤 3 检查其前置依赖是否已完成,若未完成则提示用户并暂停。未指定则为**全量模式**,按原有里程碑优先 + 依赖优先全量执行。
|
|
21
22
|
|
|
22
23
|
- 读取 `6aspecdoc/brown/<name>/status.json`
|
|
23
24
|
- 确认 `phases.tasks` 为 “done”
|
|
@@ -39,12 +40,29 @@
|
|
|
39
40
|
- 各里程碑完成度(M0~Mn:已完成/总数)
|
|
40
41
|
- 下一个可执行任务
|
|
41
42
|
|
|
43
|
+
**建立任务列表(外部状态锚点)**:
|
|
44
|
+
|
|
45
|
+
为每个待执行的 TASK,依次调用 `TaskCreate` 建立两个子任务,顺序为:
|
|
46
|
+
```
|
|
47
|
+
TASK-<序号>: 实现
|
|
48
|
+
TASK-<序号>: Compliance Review
|
|
49
|
+
```
|
|
50
|
+
例如有 TASK-001、TASK-002 待执行,则建立:
|
|
51
|
+
- `TASK-001: 实现`
|
|
52
|
+
- `TASK-001: Compliance Review`
|
|
53
|
+
- `TASK-002: 实现`
|
|
54
|
+
- `TASK-002: Compliance Review`
|
|
55
|
+
|
|
56
|
+
> 目的:任务列表作为外部状态锚点,防止 implementer subagent 返回后因"完成感"跳过 compliance review 步骤。
|
|
57
|
+
|
|
42
58
|
4. **执行任务(循环直到完成或阻塞)**
|
|
43
59
|
|
|
44
60
|
对每个待完成的任务,按以下流程执行:
|
|
45
61
|
|
|
46
62
|
**a. 派发 implementer agent**
|
|
47
63
|
|
|
64
|
+
调用前:将对应的 `TASK-<序号>: 实现` 任务标记为 `in_progress`。
|
|
65
|
+
|
|
48
66
|
调用 `6aspec-brown-implementer` agent,传入以下内容:
|
|
49
67
|
|
|
50
68
|
```
|
|
@@ -60,14 +78,16 @@
|
|
|
60
78
|
```
|
|
61
79
|
|
|
62
80
|
**处理 agent 状态**:
|
|
63
|
-
- `DONE
|
|
64
|
-
- `DONE_WITH_CONCERNS
|
|
81
|
+
- `DONE`:将 `TASK-<序号>: 实现` 标记为 `completed`,进入 spec compliance review
|
|
82
|
+
- `DONE_WITH_CONCERNS`:读取关注点,判断是否影响正确性;若影响则先处理,否则将 `TASK-<序号>: 实现` 标记为 `completed`,进入 review
|
|
65
83
|
- `NEEDS_CONTEXT`:补充缺失信息后重新调用
|
|
66
84
|
- `BLOCKED`:暂停,向用户报告阻塞原因和选项
|
|
67
85
|
- **agent 开始前提问**:若 agent 在实现前提出疑问,主 agent 回答后重新调用(携带原有上下文 + 补充答案)
|
|
68
86
|
|
|
69
87
|
**b. 派发 spec compliance reviewer agent**
|
|
70
88
|
|
|
89
|
+
调用前:将对应的 `TASK-<序号>: Compliance Review` 任务标记为 `in_progress`。
|
|
90
|
+
|
|
71
91
|
调用 `6aspec-brown-spec-compliance-reviewer` agent,传入以下内容:
|
|
72
92
|
|
|
73
93
|
```
|
|
@@ -83,7 +103,7 @@
|
|
|
83
103
|
```
|
|
84
104
|
|
|
85
105
|
**处理 review 结果**:
|
|
86
|
-
- `✅
|
|
106
|
+
- `✅ 通过`:将 `TASK-<序号>: Compliance Review` 标记为 `completed`,标记任务完成,继续下一个任务
|
|
87
107
|
- `❌ 有问题`:重新调用 6aspec-brown-implementer agent 修复,传入**相同的 `skipTest:true|false` 行** + 原有上下文 + reviewer 的完整反馈(具体缺失/多余/偏差及文件路径);修复后再次调用 reviewer;**最多循环 3 次**
|
|
88
108
|
- **超过 3 次仍未通过**:暂停,向用户报告每轮的问题和修复情况,让用户决定如何处理
|
|
89
109
|
|
|
@@ -35,15 +35,26 @@ git diff {BASE_SHA}..{HEAD_SHA}
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
3) **否则,如果未提供 SHA 但 git 可用**:
|
|
38
|
+
|
|
39
|
+
收集工作区所有未提交的变更(不包含已 commit 的代码):
|
|
40
|
+
|
|
38
41
|
```bash
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
# 已追踪文件的修改(未 add)
|
|
43
|
+
git diff
|
|
44
|
+
|
|
45
|
+
# 已 add 但未 commit 的变更
|
|
46
|
+
git diff --cached
|
|
47
|
+
|
|
48
|
+
# 未追踪的新文件(未 add),转成 unified diff 格式
|
|
49
|
+
git ls-files --others --exclude-standard | while read f; do
|
|
50
|
+
diff -u /dev/null "$f" || true
|
|
51
|
+
done
|
|
43
52
|
```
|
|
44
53
|
|
|
45
|
-
|
|
46
|
-
|
|
54
|
+
将以上三部分合并为完整 diff 进行审查。如果三部分均为空,提示用户"当前工作区没有任何未提交的变更"。
|
|
55
|
+
|
|
56
|
+
4) **否则(git 不可用)**:
|
|
57
|
+
- 提示用户"当前目录不是 git 仓库,请通过 --diff 参数提供 unified diff 文件"。
|
|
47
58
|
|
|
48
59
|
### 2. 读取需求(如果提供了文件路径)
|
|
49
60
|
|