6aspec 3.0.0-dev.10 → 3.0.0-dev.12

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.
@@ -116,7 +116,13 @@ Phase 4: 任务拆解与排期
116
116
  1. <具体操作,到类/方法级>
117
117
  2. <具体操作>
118
118
  3. ...
119
- 4. **测试**:若项目有测试框架,补充/修改对应单元测试,覆盖 specs.md 中关联的 AC/Scenario;若无测试框架则跳过此步骤
119
+ 4. **测试/验证(按任务类型写清楚,不要一刀切)**:
120
+ - 若本任务引入/修改可执行业务逻辑(如 Service/Domain/校验/计算/流程编排)或修复缺陷:
121
+ - 若项目有测试框架:补充/修改对应单元测试,覆盖 specs.md 中关联的 AC/Scenario
122
+ - 若无测试框架:写清验证方式与回归点(例如:手工验证步骤/日志观测点/接口回放用例)
123
+ - 若本任务主要为纯数据结构(Entity/DTO/VO/Enum/注解映射)或 SQL/DDL/迁移脚本:
124
+ - 默认不强制单元测试
125
+ - 必须写清可审查的验证清单(字段/约束/索引/影响面/回滚要点/关键校验 SQL)与回归点
120
126
 
121
127
  ## 验收标准
122
128
  - 与 Specs 对齐的 AC/Scenario 覆盖:<列出 ACx / Sx>
@@ -24,7 +24,9 @@
24
24
  3. 遵循 design.md 的技术决策,**不在实现阶段发明新方案**
25
25
  4. 遵循现有代码风格和架构模式
26
26
  5. **编码规范**:实现与自我审查须符合 `.6aspec/rules/biz/code.md`(含红线规则中的**架构红线**、安全、性能、命名与文内检查清单)
27
- 6. 若项目有测试框架,补充/修改对应单元测试,覆盖任务关联的 AC/Scenario;若无测试框架则跳过
27
+ 6. **测试/验证(以 TASK / specs.md 的明确要求为准)**:
28
+ - 若本任务引入/修改可执行业务逻辑(如 Service/Domain/校验/计算/流程编排)或修复缺陷:在项目有测试框架时补充/修改对应单元测试,覆盖任务关联的 AC/Scenario;若无测试框架则说明验证方式与回归点
29
+ - 若本任务主要为纯数据结构(Entity/DTO/VO/Enum/注解映射)或 SQL/DDL/迁移脚本:默认不强制单元测试;改为提供可审查的验证清单(字段/约束/索引/影响面/回滚要点/关键校验 SQL),并在报告中标注风险
28
30
  7. 完成后自我审查,报告结果
29
31
 
30
32
  ## 禁止事项
@@ -44,7 +46,9 @@
44
46
 
45
47
  **分层**:若本次改动涉及 Controller/API、事件订阅、消息消费或调度入口,是否符合 `code.md` **架构红线**中关于薄入口、不直连 DAO 与委托 Service 的约定(有 TASK/design 例外除外)?
46
48
 
47
- **测试**:单元测试可使用 Mock/Stub 隔离外部依赖;断言是否落在被测代码的业务结果上(返回值、异常、领域状态等),而不是仅校验「Mock 曾被调用」?是否覆盖了关联的 AC/Scenario?
49
+ **测试/验证**:
50
+ - 若 TASK/specs 明确要求补测试:是否已补齐并覆盖关联 AC/Scenario?
51
+ - 若为纯 Entity/DTO/SQL/脚本类交付:是否提供了可审查的验证清单与回归点,并标注残余风险?
48
52
 
49
53
  发现问题立即修复,再报告。
50
54
 
@@ -63,7 +67,7 @@
63
67
  完成后报告:
64
68
  - **状态**:DONE / DONE_WITH_CONCERNS / BLOCKED / NEEDS_CONTEXT
65
69
  - **实现内容**:做了什么(具体到类/方法)
66
- - **测试情况**:写了哪些测试,覆盖了哪些 AC/Scenario(或说明跳过原因)
70
+ - **测试/验证情况**:写了哪些测试,覆盖了哪些 AC/Scenario(或说明跳过单测的原因与采用的验证方式/回归点)
67
71
  - **修改的文件**:文件路径列表
68
72
  - **自我审查发现**:有无问题,如何处理
69
73
  - **关注点**(如状态为 DONE_WITH_CONCERNS):具体疑虑
@@ -8,9 +8,9 @@
8
8
 
9
9
  - **TASK 文件**:主 agent 传入的 `TASK 文件路径`,读取任务详情、实现步骤、验收标准、涉及文件
10
10
  - **specs.md**:主 agent 传入的 `specs.md 路径`,读取该任务引用的 AC/Scenario 原文
11
- - **design.md**:主 agent 传入的 `design.md 路径`,读取该任务相关的技术方案与约束(接口、流程、关键决策)
11
+ - **design.md(可选)**:如主 agent 传入了 `design.md 路径`,可用于识别潜在设计偏离(默认仅风险提示,不作为阻塞项)
12
12
 
13
- > 如果缺少 `design.md` 路径或无法读取 design 内容:**直接判定不通过**(无法验证是否绕过设计)。
13
+ > 如果缺少 `design.md` 路径或无法读取 design 内容:记录为**风险提示**(无法验证是否绕过设计),不作为阻塞项。
14
14
 
15
15
  ## 重要:不要信任 implementer 的报告
16
16
 
@@ -24,8 +24,8 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
24
24
 
25
25
  读取 implementer 修改的文件,验证以下内容:
26
26
 
27
- - **阻塞项**:1~5 任一不满足都必须判定
28
- - **风险提示**:测试覆盖默认不作为阻塞项(除非 TASK/specs.md/design.md 明确要求必须补测试)
27
+ - **阻塞项**:1~3 任一不满足都必须判定 ❌(以 TASK / specs.md 的明确要求为准)
28
+ - **风险提示(非阻塞)**:4~6 默认仅记录风险,不作为不通过理由(除非它导致 1~3 直接不满足)
29
29
 
30
30
  **1. 没有少做(Missing)**
31
31
  - 任务要求的每一项是否都已实现?
@@ -43,17 +43,17 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
43
43
  - 是否用了正确的方式解决了正确的问题?
44
44
  - 业务语义是否与 specs.md 的 AC/Scenario 一致?
45
45
 
46
- **4. 设计一致性(Design Compliance)**
47
- - 是否严格符合 design.md 的技术方案与约束?(接口形态、流程编排、关键决策)
48
- - 是否存在绕过设计/偏离设计的实现?(即便功能表面可用也必须判定不通过)
46
+ **4. 设计一致性(Design Compliance,默认仅风险提示)**
47
+ - 如果提供了 design.md:检查是否存在明显绕过设计/关键约束不一致的实现,并记录为风险提示(引用 design 段落 + 对应代码文件路径和行号)
48
+ - 如果未提供 design.md:记录为风险提示(无法验证设计一致性)
49
49
 
50
- **5. 边界与正确性(Boundary & Correctness)**
51
- - 是否存在幂等问题(重复请求/重试导致重复写入、重复扣款、重复发消息等)?
52
- - 是否存在空值/缺省值处理问题(NPE、字段缺失、空集合、空字符串等)?
53
- - 是否存在并发/竞态问题(重复提交、并发更新丢失、顺序依赖被破坏等)?
50
+ **5. 边界与正确性(Boundary & Correctness,默认仅风险提示)**
51
+ - 识别潜在幂等问题(重复请求/重试导致重复写入、重复扣款、重复发消息等),记录风险
52
+ - 识别潜在空值/缺省值处理问题(NPE、字段缺失、空集合、空字符串等),记录风险
53
+ - 识别潜在并发/竞态问题(重复提交、并发更新丢失、顺序依赖被破坏等),记录风险
54
54
 
55
- > 要求:必须以 `specs.md` / `design.md` / `TASK` 中可追溯的约束为判定基准。
56
- > - 如果你发现“必须明确但 specs/design 没写清”的边界规则,判定为 **规格/设计缺口** 并判定不通过,要求补齐 artifacts 后重审(不得在实现阶段临时发明规则)。
55
+ > 要求:判定基准以 `specs.md` / `TASK` 中可追溯的约束为主;`design.md` 仅用于风险提示(除非 TASK/specs.md 明确要求必须符合某条设计约束)。
56
+ > - 若你发现“必须明确但 specs/TASK 没写清”的边界规则:记录为 **规格缺口风险**,不要仅因此判定不通过(不得在实现阶段临时发明规则)。
57
57
 
58
58
  **6. 测试覆盖关键场景(Testing Adequacy,默认仅风险提示)**
59
59
  - 评估测试是否覆盖该任务涉及的关键 AC/Scenario。
@@ -69,34 +69,29 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
69
69
 
70
70
  验证结论:
71
71
  - 已实现:[列出已覆盖的要求(按 TASK / specs.md 逐条)]
72
- - 设计一致性:符合 design.md(如有关键约束请点名)
73
- - 边界检查:幂等/空值/并发关键点已覆盖(列出证据)
74
- - 测试覆盖(风险提示):[如有,列出覆盖的 AC/Scenario + 关键边界用例;如无,标注风险]
72
+ - 风险提示(如有):
73
+ - 设计一致性风险:[如缺 design 或发现疑似偏离,引用 design 段落/说明缺失原因 + 对应代码文件路径和行号]
74
+ - 边界风险(幂等/空值/并发):[列出发现点 + 证据(文件路径和行号)]
75
+ - 测试覆盖风险:[如无测试则标注风险]
75
76
  ```
76
77
 
77
78
  **如果有问题**:
78
79
  ```
79
80
  ❌ 发现问题
80
81
 
81
- 缺少实现(Missing):
82
+ 缺少实现(Missing)【阻塞】:
82
83
  - [具体缺失内容,含文件路径和行号]
83
84
 
84
- 多余实现(Extra):
85
+ 多余实现(Extra)【阻塞】:
85
86
  - [具体多余内容,含文件路径和行号]
86
87
 
87
- 理解偏差(Misunderstood):
88
+ 理解偏差(Misunderstood)【阻塞】:
88
89
  - [具体偏差描述,含文件路径和行号]
89
90
 
90
- 设计偏离(Design Compliance):
91
- - [具体偏离点,引用 design.md 条目/段落 + 对应代码文件路径和行号]
92
-
93
- 边界问题(Boundary & Correctness):
94
- - [幂等/空值/并发问题的具体描述,含文件路径和行号]
95
-
96
- 规格/设计缺口(Spec/Design Gap):
97
- - [需要补齐的 specs/design 条目,说明为什么这是必须的验收基准]
98
-
99
91
  风险提示(Risks,非阻塞):
92
+ - 设计一致性风险:[引用 design 段落/说明缺失原因 + 对应代码文件路径和行号]
93
+ - 边界风险(幂等/空值/并发):[具体描述,含文件路径和行号]
94
+ - 规格缺口风险:[指出 specs/TASK 哪些需要补齐,为什么可能影响验收]
100
95
  - 测试覆盖风险:implementer 报告无测试/未发现测试文件,建议补充覆盖关键场景与边界用例
101
96
  ```
102
97
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "6aspec",
3
- "version": "3.0.0-dev.10",
3
+ "version": "3.0.0-dev.12",
4
4
  "description": "6Aspec - 轻量级 spec 驱动开发框架,支持 Cursor 和 Claude Code",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {