6aspec 3.0.0-dev.22 → 3.0.0-dev.25
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/.6aspec/rules/brown/subagents/implementer.md +5 -3
- package/.6aspec/rules/brown/subagents/spec-compliance-reviewer.md +4 -2
- package/.agents/skills/6aspec-brown-analyze/SKILL.md +1 -1
- package/.agents/skills/6aspec-brown-analyze/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-archive/agents/openai.yaml +6 -0
- package/.agents/skills/6aspec-brown-continue/agents/openai.yaml +6 -0
- package/.agents/skills/6aspec-brown-design/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-explore/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-ff/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-implement/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-list/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-new/agents/openai.yaml +6 -0
- package/.agents/skills/6aspec-brown-proposal/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-quick/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-review/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-rollback/agents/openai.yaml +6 -0
- package/.agents/skills/6aspec-brown-specs/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-status/agents/openai.yaml +7 -0
- package/.agents/skills/6aspec-brown-tasks/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-update/agents/openai.yaml +2 -0
- package/.agents/skills/6aspec-brown-verify/SKILL.md +1 -1
- package/.agents/skills/6aspec-brown-verify/agents/openai.yaml +5 -0
- package/.agents/skills/6aspec-review/SKILL.md +54 -24
- package/.agents/skills/6aspec-review/agents/openai.yaml +7 -0
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
主 agent 应在派发本 subagent 时明确一行:`skipTest:true` 或 `skipTest:false`(与用户命令中的 `--skipTest=true` / `--skipTest=false` 一致)。**文档与实现只认带 `=true` / `=false` 的写法**;裸写 `--skipTest` 无赋值视为未规范输入,主 agent 应让用户改用 `=true` 或 `=false`。
|
|
21
21
|
|
|
22
22
|
- **`skipTest:false` 或未传 `skipTest` 参数**:视为 **false**(标准测试模式),见下方职责第 6 条「`skipTest=false`」分支。
|
|
23
|
-
- **`skipTest:true
|
|
23
|
+
- **`skipTest:true`**:**最高优先级**。**不编写**单元测试,**不执行**任何测试类命令(含 `test`、`mvn test`、`gradle test`、`pytest`、`go test` 等);即使 TASK/specs 写有测试要求,仍以本次参数为准。仍须在报告中写清**手动/静态验证方式、回归点与残余风险**,并明确说明哪些自动化测试未执行。
|
|
24
24
|
|
|
25
25
|
## 你的职责
|
|
26
26
|
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
- **禁止**:把「本任务动到了 Repository/Mapper」**单独**当成必须写单测的理由;是否写单测取决于是否出现**非平凡逻辑**(分支、规则、补偿、复杂 SQL 行为),以及 TASK/specs 是否点名要自动化测试
|
|
45
45
|
|
|
46
46
|
**🚨 测试红线(绝对禁止)**:
|
|
47
|
-
-
|
|
47
|
+
- **禁止在测试中复制/重写被测业务逻辑来推导 expected**:不得使用与生产代码同构的筛选、聚合、分支或计算逻辑,在测试里先算出"期望结果"再断言;这类测试会与缺陷同源,缺乏验证价值。
|
|
48
|
+
- **允许参数化/表驱动/循环遍历用例,但 expected 必须外部给定**:期望值应来自固定测试夹具、明确枚举值或规则表,不得在断言前临时计算出与被测逻辑同构的结果。
|
|
48
49
|
- **测试必须调用被测类的真实方法**:通过断言其返回值,或通过 mock verify 断言其对依赖的调用行为来验证。合法结构示例:`given(mock).thenReturn(x)` → 调用 `service.realMethod(...)` → `assertEquals(expected, result)` 或 `verify(mock).someMethod(...)`。
|
|
49
50
|
7. 完成后自我审查,报告结果
|
|
50
51
|
|
|
@@ -64,8 +65,9 @@
|
|
|
64
65
|
- 合法的入口方法结构:解析入参 → 日志 → 调一次 Service → 返回结果。不符合此结构须重构后再报告。
|
|
65
66
|
|
|
66
67
|
**测试/验证**:
|
|
67
|
-
- 若 **`skipTest=true`**:是否已说明验证方式、回归点与残余风险?若 TASK/specs
|
|
68
|
+
- 若 **`skipTest=true`**:是否已说明验证方式、回归点与残余风险?若 TASK/specs 写有测试要求,是否已在报告中明确标注“本次按 skipTest=true 未编写/未执行自动化测试”及其影响?
|
|
68
69
|
- 若 **`skipTest=false`(含默认)** 且 TASK/specs **明确要求**补自动化测试:是否已补齐并覆盖关联 AC/Scenario?
|
|
70
|
+
- 若已补自动化测试:是否调用了被测类真实方法,且 expected 来自夹具/枚举/规则表,而非在测试内重写业务逻辑后再断言?
|
|
69
71
|
- 若为纯 Entity/DTO/SQL/脚本/**薄持久化**类交付且 **`skipTest=false`**:是否按 TASK 选定的方式(清单/预发 SQL/冒烟)完成验证说明,**避免**仅为 Repository 动过手就额外造单测?
|
|
70
72
|
|
|
71
73
|
发现问题立即修复,再报告。
|
|
@@ -92,11 +92,13 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
|
|
|
92
92
|
> - 若你发现“必须明确但 specs/TASK 没写清”的边界规则:记录为 **规格缺口风险**,不要仅因此判定不通过(不得在实现阶段临时发明规则)。
|
|
93
93
|
|
|
94
94
|
**5. 测试覆盖关键场景(Testing Adequacy,默认仅风险提示)**
|
|
95
|
+
- **优先级规则**:若主 agent 传入 **`skipTest:true`**,该参数在测试判定中**最高优先级**;无论 TASK/specs 是否写有补测试要求,都**不得**因缺少测试或测试无效而判定 ❌,仅记录测试覆盖风险与补充建议。
|
|
95
96
|
- 评估测试是否覆盖该任务涉及的关键 AC/Scenario。
|
|
96
97
|
- 评估是否覆盖关键边界场景(幂等/空值/并发)对应的用例或回归点。
|
|
98
|
+
- 若存在自动化测试:检查测试是否调用了被测类/方法(SUT)真实入口,且 expected 不是通过测试内同构业务逻辑临时推导;若通过"在测试里重写业务逻辑"获得 expected,则该测试视为无效测试。
|
|
97
99
|
- 如果 implementer 报告明确无测试,且你也未发现相关测试文件:仅记录为**风险提示**,不要仅因无测试而判定不通过。
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
+
- 仅当 **`skipTest:false`(含默认)** 且 TASK/specs.md **明确要求必须补测试**时,缺失测试才属于 Missing 并必须判定 ❌。
|
|
101
|
+
- 仅当 **`skipTest:false`(含默认)** 且 TASK/specs.md **明确要求必须补测试**时,若仅发现无效测试(如测试内重写业务逻辑)也按 Missing 判定 ❌;若未强制要求补测,则记录为测试覆盖风险并给出整改建议。
|
|
100
102
|
|
|
101
103
|
**任务类型与 4~5 的深度**:若 TASK 主要为 DDL、迁移、Entity/薄 Repository、配置类变更,4~5 **只做一眼扫过**;无异常则一句话带过,**不要**按业务服务级任务的标准穷举。
|
|
102
104
|
|
|
@@ -1,36 +1,66 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "6aspec-review"
|
|
3
|
-
description: "
|
|
3
|
+
description: "独立代码审查。用于审查指定 diff 文件或 git 提交范围内的代码变更,并输出完整审查报告。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 操作流程
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
对当前代码变更进行独立审查。好的
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
- `<description>`:变更描述(默认:"最近一次提交的变更")
|
|
12
|
-
- `--diff <file>`:unified diff 文件路径(优先)
|
|
13
|
-
- `--base <SHA>`:起始 commit(默认:HEAD~1)
|
|
14
|
-
- `--head <SHA>`:结束 commit(默认:HEAD)
|
|
15
|
-
- `--plan <file>`:需求/计划文件路径(可选)
|
|
10
|
+
## 步骤
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
- 若提供 `--diff`:读取该文件内容作为 `DIFF`
|
|
19
|
-
- 否则:使用 git 范围(`BASE_SHA`/`HEAD_SHA`)
|
|
20
|
-
- 若用户未指定:`BASE_SHA=HEAD~1`,`HEAD_SHA=HEAD`
|
|
21
|
-
- 可运行 `git log --oneline -10` 展示最近提交,便于用户确认范围
|
|
12
|
+
### 1. 解析输入
|
|
22
13
|
|
|
23
|
-
|
|
14
|
+
用户可以提供以下参数(均可选):
|
|
15
|
+
- `<description>` — 变更描述
|
|
16
|
+
- `--diff <file>` — 本次变更的 unified diff 文件路径(优先)
|
|
17
|
+
- `--base <SHA>` — 起始 commit(默认:HEAD~1)
|
|
18
|
+
- `--head <SHA>` — 结束 commit(默认:HEAD)
|
|
19
|
+
- `--plan <file>` — 需求/计划文件路径
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
变更描述:<description>
|
|
27
|
-
需求/计划:<--plan 文件路径 或 "无">
|
|
28
|
-
DIFF:<--diff 文件内容(如提供)>
|
|
29
|
-
BASE_SHA:<--base 或 HEAD~1>
|
|
30
|
-
HEAD_SHA:<--head 或 HEAD>
|
|
31
|
-
```
|
|
21
|
+
如果未提供 `--diff/--base/--head`,使用默认值(HEAD~1..HEAD)。
|
|
32
22
|
|
|
33
|
-
|
|
23
|
+
### 2. 确定变更来源
|
|
34
24
|
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
- 如果提供了 `--diff`:读取 diff 文件内容作为 `DIFF`,并直接进入步骤 3。
|
|
26
|
+
- 否则:使用 git 范围。
|
|
27
|
+
|
|
28
|
+
### 3. (可选)展示 git 范围
|
|
29
|
+
|
|
30
|
+
当使用 git 范围时:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
git log --oneline -10
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
显示最近 10 条 commit,帮助用户确认审查范围。
|
|
37
|
+
|
|
38
|
+
如果用户未指定 SHA,使用:
|
|
39
|
+
- BASE_SHA = HEAD~1
|
|
40
|
+
- HEAD_SHA = HEAD
|
|
41
|
+
|
|
42
|
+
### 4. 派发 6aspec-code-reviewer agent
|
|
43
|
+
|
|
44
|
+
调用 `6aspec-code-reviewer` agent,传入:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
变更描述:[用户提供的描述,或"最近一次提交的变更"]
|
|
48
|
+
需求/计划:[--plan 指定的文件路径,或"无"]
|
|
49
|
+
DIFF:[--diff 指定文件内容(如提供)]
|
|
50
|
+
BASE_SHA:[base SHA(如使用 git)]
|
|
51
|
+
HEAD_SHA:[head SHA(如使用 git)]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 5. 展示审查结果
|
|
55
|
+
|
|
56
|
+
直接展示 agent 返回的完整审查报告。
|
|
57
|
+
|
|
58
|
+
## 使用示例
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
/6aspec:review
|
|
62
|
+
/6aspec:review 实现了用户认证功能
|
|
63
|
+
/6aspec:review --diff /tmp/change.patch
|
|
64
|
+
/6aspec:review --base abc1234 --head def5678
|
|
65
|
+
/6aspec:review --plan 6aspecdoc/brown/add-user-auth/artifacts/specs.md
|
|
66
|
+
```
|