6aspec 3.0.0-dev.16 → 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.
@@ -40,12 +40,29 @@
40
40
  - 各里程碑完成度(M0~Mn:已完成/总数)
41
41
  - 下一个可执行任务
42
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
+
43
58
  4. **执行任务(循环直到完成或阻塞)**
44
59
 
45
60
  对每个待完成的任务,按以下流程执行:
46
61
 
47
62
  **a. 派发 implementer agent**
48
63
 
64
+ 调用前:将对应的 `TASK-<序号>: 实现` 任务标记为 `in_progress`。
65
+
49
66
  调用 `6aspec-brown-implementer` agent,传入以下内容:
50
67
 
51
68
  ```
@@ -61,14 +78,16 @@
61
78
  ```
62
79
 
63
80
  **处理 agent 状态**:
64
- - `DONE`:进入 spec compliance review
65
- - `DONE_WITH_CONCERNS`:读取关注点,判断是否影响正确性;若影响则先处理,否则进入 review
81
+ - `DONE`:将 `TASK-<序号>: 实现` 标记为 `completed`,进入 spec compliance review
82
+ - `DONE_WITH_CONCERNS`:读取关注点,判断是否影响正确性;若影响则先处理,否则将 `TASK-<序号>: 实现` 标记为 `completed`,进入 review
66
83
  - `NEEDS_CONTEXT`:补充缺失信息后重新调用
67
84
  - `BLOCKED`:暂停,向用户报告阻塞原因和选项
68
85
  - **agent 开始前提问**:若 agent 在实现前提出疑问,主 agent 回答后重新调用(携带原有上下文 + 补充答案)
69
86
 
70
87
  **b. 派发 spec compliance reviewer agent**
71
88
 
89
+ 调用前:将对应的 `TASK-<序号>: Compliance Review` 任务标记为 `in_progress`。
90
+
72
91
  调用 `6aspec-brown-spec-compliance-reviewer` agent,传入以下内容:
73
92
 
74
93
  ```
@@ -84,7 +103,7 @@
84
103
  ```
85
104
 
86
105
  **处理 review 结果**:
87
- - `✅ 通过`:标记任务完成,继续下一个任务
106
+ - `✅ 通过`:将 `TASK-<序号>: Compliance Review` 标记为 `completed`,标记任务完成,继续下一个任务
88
107
  - `❌ 有问题`:重新调用 6aspec-brown-implementer agent 修复,传入**相同的 `skipTest:true|false` 行** + 原有上下文 + reviewer 的完整反馈(具体缺失/多余/偏差及文件路径);修复后再次调用 reviewer;**最多循环 3 次**
89
108
  - **超过 3 次仍未通过**:暂停,向用户报告每轮的问题和修复情况,让用户决定如何处理
90
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
- BASE_SHA=$(git rev-parse HEAD~1)
40
- HEAD_SHA=$(git rev-parse HEAD)
41
- git diff --stat ${BASE_SHA}..${HEAD_SHA}
42
- git diff ${BASE_SHA}..${HEAD_SHA}
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
- 4) **否则(既没有 DIFF,也无法使用 git)**:
46
- - 返回 `NEEDS_CONTEXT`,并要求调用方提供 `DIFF`(unified diff),或提供明确的变更文件列表 + 变更片段。
54
+ 将以上三部分合并为完整 diff 进行审查。如果三部分均为空,提示用户"当前工作区没有任何未提交的变更"。
55
+
56
+ 4) **否则(git 不可用)**:
57
+ - 提示用户"当前目录不是 git 仓库,请通过 --diff 参数提供 unified diff 文件"。
47
58
 
48
59
  ### 2. 读取需求(如果提供了文件路径)
49
60
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "6aspec",
3
- "version": "3.0.0-dev.16",
3
+ "version": "3.0.0-dev.18",
4
4
  "description": "6Aspec - 轻量级 spec 驱动开发框架,支持 Cursor 和 Claude Code",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {