6aspec 3.0.0-dev.1 → 3.0.0-dev.10
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/biz/code.md +7 -3
- package/.6aspec/rules/brown/brown_analyze_sop.md +7 -2
- package/.6aspec/rules/brown/brown_archive_sop.md +3 -2
- package/.6aspec/rules/brown/brown_continue_sop.md +1 -3
- package/.6aspec/rules/brown/brown_implement_sop.md +9 -6
- package/.6aspec/rules/brown/brown_new_sop.md +10 -6
- package/.6aspec/rules/brown/brown_quick_sop.md +1 -1
- package/.6aspec/rules/brown/brown_rollback_sop.md +3 -7
- package/.6aspec/rules/brown/brown_tasks_sop.md +1 -12
- package/.6aspec/rules/brown/brown_update_sop.md +4 -9
- package/.6aspec/rules/brown/subagents/implementer.md +11 -6
- package/.6aspec/rules/brown/subagents/spec-compliance-reviewer.md +42 -4
- package/.6aspec/rules/common/code-reviewer-agent.md +118 -0
- package/.agents/skills/6aspec-brown-analyze/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-archive/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-continue/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-design/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-explore/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-ff/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-implement/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-list/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-new/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-proposal/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-quick/SKILL.md +10 -0
- package/{.cursor/commands/6aspec/brown/impact.md → .agents/skills/6aspec-brown-review/SKILL.md} +5 -4
- package/.agents/skills/6aspec-brown-rollback/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-specs/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-status/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-tasks/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-update/SKILL.md +10 -0
- package/.agents/skills/6aspec-brown-verify/SKILL.md +10 -0
- package/.claude/agents/{implementer.md → 6aspec-brown-implementer.md} +2 -1
- package/.claude/agents/{spec-compliance-reviewer.md → 6aspec-brown-spec-compliance-reviewer.md} +2 -1
- package/.claude/agents/6aspec-code-reviewer.md +7 -0
- package/.claude/commands/6aspec/brown/analyze.md +1 -1
- package/.claude/commands/6aspec/brown/design.md +1 -1
- package/.claude/commands/6aspec/brown/quick.md +1 -1
- package/.claude/commands/6aspec/brown/review.md +1 -1
- package/.claude/commands/6aspec/brown/specs.md +1 -1
- package/.claude/commands/6aspec/brown/tasks.md +1 -1
- package/.claude/commands/6aspec/review.md +56 -0
- package/.codex/agents/6aspec-brown-implementer.md +7 -0
- package/.codex/agents/6aspec-brown-spec-compliance-reviewer.md +7 -0
- package/.codex/agents/6aspec-code-reviewer.md +7 -0
- package/.cursor/agents/6aspec-brown-implementer.md +7 -0
- package/.cursor/agents/6aspec-brown-spec-compliance-reviewer.md +8 -0
- package/.cursor/agents/6aspec-code-reviewer.md +8 -0
- package/.cursor/commands/6aspec-brown-analyze.md +9 -0
- package/.cursor/commands/{6aspec/brown/design.md → 6aspec-brown-design.md} +1 -1
- package/.cursor/commands/{6aspec/brown/quick.md → 6aspec-brown-quick.md} +1 -1
- package/.cursor/commands/{6aspec/brown/review.md → 6aspec-brown-review.md} +1 -1
- package/.cursor/commands/{6aspec/brown/specs.md → 6aspec-brown-specs.md} +1 -1
- package/.cursor/commands/{6aspec/brown/tasks.md → 6aspec-brown-tasks.md} +1 -1
- package/.cursor/commands/6aspec-review.md +56 -0
- package/lib/cli.js +47 -11
- package/lib/installer.js +74 -23
- package/package.json +3 -1
- package/.claude/commands/6aspec/brown/impact.md +0 -11
- package/.claude/commands/6aspec/brown/understand.md +0 -11
- package/.claude/settings.local.json +0 -28
- package/.cursor/commands/6aspec/brown/understand.md +0 -9
- /package/.cursor/commands/{6aspec/brown/archive.md → 6aspec-brown-archive.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/continue.md → 6aspec-brown-continue.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/explore.md → 6aspec-brown-explore.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/ff.md → 6aspec-brown-ff.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/implement.md → 6aspec-brown-implement.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/list.md → 6aspec-brown-list.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/new.md → 6aspec-brown-new.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/proposal.md → 6aspec-brown-proposal.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/rollback.md → 6aspec-brown-rollback.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/status.md → 6aspec-brown-status.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/update.md → 6aspec-brown-update.md} +0 -0
- /package/.cursor/commands/{6aspec/brown/verify.md → 6aspec-brown-verify.md} +0 -0
- /package/.cursor/commands/{6aspec/code.md → 6aspec-code.md} +0 -0
- /package/.cursor/commands/{6aspec/green/archive.md → 6aspec-green-archive.md} +0 -0
- /package/.cursor/commands/{6aspec/green/clarify.md → 6aspec-green-clarify.md} +0 -0
- /package/.cursor/commands/{6aspec/green/continue.md → 6aspec-green-continue.md} +0 -0
- /package/.cursor/commands/{6aspec/green/design.md → 6aspec-green-design.md} +0 -0
- /package/.cursor/commands/{6aspec/green/implement.md → 6aspec-green-implement.md} +0 -0
- /package/.cursor/commands/{6aspec/green/import-model-table.md → 6aspec-green-import-model-table.md} +0 -0
- /package/.cursor/commands/{6aspec/green/init.md → 6aspec-green-init.md} +0 -0
- /package/.cursor/commands/{6aspec/green/model.md → 6aspec-green-model.md} +0 -0
- /package/.cursor/commands/{6aspec/green/new.md → 6aspec-green-new.md} +0 -0
- /package/.cursor/commands/{6aspec/green/rollback.md → 6aspec-green-rollback.md} +0 -0
- /package/.cursor/commands/{6aspec/green/status.md → 6aspec-green-status.md} +0 -0
- /package/.cursor/commands/{6aspec/green/tasks.md → 6aspec-green-tasks.md} +0 -0
- /package/.cursor/commands/{6aspec/green/visual-logic.md → 6aspec-green-visual-logic.md} +0 -0
|
@@ -24,9 +24,12 @@ alwaysApply: true
|
|
|
24
24
|
|
|
25
25
|
### 架构红线
|
|
26
26
|
- **禁止循环依赖**:包、模块、类之间不能相互依赖
|
|
27
|
-
-
|
|
27
|
+
- **禁止在应用入口层跨层直连数据访问或在入口类堆叠编排**:应用入口包括 HTTP/RPC/API Controller(或同类请求入口)、事件订阅、消息消费者、调度或定时任务入口等。
|
|
28
|
+
- **此类入口**不得**直接调用 DAO/Repository;
|
|
29
|
+
- **不得**在入口类集中承载远程/RPC 查询、仓储批量查询、Stream 聚合(如 `groupingBy`)、多分支循环等业务编排。上述逻辑须在 Service/应用服务(或设计文档/项目约定的应用层 Facade)中实现;
|
|
30
|
+
- 入口仅允许必要校验、日志及对上述服务的委托。
|
|
31
|
+
- **例外**:需求/TASK/设计说明明确要求与某存量入口类保持同一写法时,从其约定。
|
|
28
32
|
- **禁止在实体类中包含业务逻辑**:保持实体类的纯净性
|
|
29
|
-
- **禁止在静态代码块中进行复杂操作**:可能导致类加载问题
|
|
30
33
|
- **禁止捕获异常后不处理**:空catch块是代码异味
|
|
31
34
|
|
|
32
35
|
## 🔒 安全规范
|
|
@@ -115,7 +118,7 @@ alwaysApply: true
|
|
|
115
118
|
## ✅ 检查清单
|
|
116
119
|
|
|
117
120
|
### 代码提交前检查
|
|
118
|
-
- [ ]
|
|
121
|
+
- [ ] 是否违反红线规则(含架构红线中的应用入口与跨层约定,有文档例外除外)
|
|
119
122
|
- [ ] 是否有安全漏洞
|
|
120
123
|
- [ ] 是否有性能问题
|
|
121
124
|
- [ ] 命名是否规范
|
|
@@ -129,5 +132,6 @@ alwaysApply: true
|
|
|
129
132
|
- [ ] 边界条件是否考虑
|
|
130
133
|
- [ ] 是否有代码重复
|
|
131
134
|
- [ ] 是否符合设计原则
|
|
135
|
+
- [ ] 新增/改动的 Controller/API 入口、订阅、消费者、调度入口是否违反架构红线(薄入口、不直连 DAO、委托 Service)
|
|
132
136
|
- [ ] 是否有技术债务
|
|
133
137
|
- [ ] 文档是否需要更新
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
如果提供了名称,使用它。否则:
|
|
18
18
|
- 从对话上下文推断
|
|
19
|
-
- 如果模糊,读取 `6aspecdoc/brown/`
|
|
19
|
+
- 如果模糊,读取 `6aspecdoc/brown/` 目录,使用 `AskUserQuestion` 工具列出需求让用户选择
|
|
20
20
|
|
|
21
21
|
读取 `6aspecdoc/brown/<name>/status.json`:
|
|
22
22
|
- 确认流程深度为 "standard" 或 "complete"
|
|
@@ -159,7 +159,11 @@ b. **判断是否需要追问或指出风险**:
|
|
|
159
159
|
- 答案清晰完整且无风险 → 继续
|
|
160
160
|
- **不涉及技术实现层面的问题**(事务、通知机制、回滚策略等),那是 design 阶段的职责
|
|
161
161
|
|
|
162
|
-
c.
|
|
162
|
+
c. **追问时先写文档,再提问**:
|
|
163
|
+
- 将追问内容追加到 analysis.md "待澄清问题"章节(标注为追问,例:`> 追问:[追问内容]`)
|
|
164
|
+
- 再向用户提问
|
|
165
|
+
|
|
166
|
+
d. **追问格式**(简洁,不重复已知信息):
|
|
163
167
|
> "关于[具体问题],你提到了[用户答案],我想进一步确认:[追问内容]"
|
|
164
168
|
|
|
165
169
|
d. **禁止**:不得在用户未回答完所有问题时自动进入影响面分析
|
|
@@ -283,6 +287,7 @@ e. **持续更新文档**:每次用户回复后,更新 analysis.md,确保
|
|
|
283
287
|
- 代码范围确认前不得生成问题清单
|
|
284
288
|
- 问题必须按维度分组,不得使用扁平编号列表
|
|
285
289
|
- 每次用户回复后必须更新 analysis.md,保持文档与对话同步
|
|
290
|
+
- 追问必须先写入 analysis.md "待澄清问题"章节,再向用户提问
|
|
286
291
|
- 追问时一次最多提出 1-2 个问题,不得连续追问超过 3 轮同一问题
|
|
287
292
|
- 必须用户明确确认澄清完成后才能进入影响面分析
|
|
288
293
|
- 影响面分析只做粗粒度评估(模块范围、schema变更、间接影响有/无),不做函数级映射
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
|
|
42
42
|
**a. 派发 implementer agent**
|
|
43
43
|
|
|
44
|
-
调用 `implementer` agent,传入以下内容:
|
|
44
|
+
调用 `6aspec-brown-implementer` agent,传入以下内容:
|
|
45
45
|
|
|
46
46
|
```
|
|
47
|
-
请用 implementer agent 实现以下任务:
|
|
47
|
+
请用 6aspec-brown-implementer agent 实现以下任务:
|
|
48
48
|
|
|
49
49
|
需求名称:[name]
|
|
50
50
|
TASK 文件路径:6aspecdoc/brown/[name]/tasks/TASK-<序号>.md
|
|
@@ -63,14 +63,15 @@
|
|
|
63
63
|
|
|
64
64
|
**b. 派发 spec compliance reviewer agent**
|
|
65
65
|
|
|
66
|
-
调用 `spec-compliance-reviewer` agent,传入以下内容:
|
|
66
|
+
调用 `6aspec-brown-spec-compliance-reviewer` agent,传入以下内容:
|
|
67
67
|
|
|
68
68
|
```
|
|
69
|
-
请用 spec-compliance-reviewer agent 审查以下任务的实现:
|
|
69
|
+
请用 6aspec-brown-spec-compliance-reviewer agent 审查以下任务的实现:
|
|
70
70
|
|
|
71
71
|
需求名称:[name]
|
|
72
72
|
TASK 文件路径:6aspecdoc/brown/[name]/tasks/TASK-<序号>.md
|
|
73
73
|
specs.md 路径:6aspecdoc/brown/[name]/artifacts/specs.md
|
|
74
|
+
design.md 路径:6aspecdoc/brown/[name]/artifacts/design.md
|
|
74
75
|
|
|
75
76
|
Implementer 报告:
|
|
76
77
|
[implementer agent 的完整报告]
|
|
@@ -78,7 +79,8 @@
|
|
|
78
79
|
|
|
79
80
|
**处理 review 结果**:
|
|
80
81
|
- `✅ 通过`:标记任务完成,继续下一个任务
|
|
81
|
-
- `❌ 有问题`:重新调用 implementer agent 修复,传入原有上下文 + reviewer 的完整反馈(具体缺失/多余/偏差及文件路径);修复后再次调用 reviewer
|
|
82
|
+
- `❌ 有问题`:重新调用 6aspec-brown-implementer agent 修复,传入原有上下文 + reviewer 的完整反馈(具体缺失/多余/偏差及文件路径);修复后再次调用 reviewer;**最多循环 3 次**
|
|
83
|
+
- **超过 3 次仍未通过**:暂停,向用户报告每轮的问题和修复情况,让用户决定如何处理
|
|
82
84
|
|
|
83
85
|
**c. 标记任务完成**
|
|
84
86
|
- 在任务文件中更新状态:`📋 待开始` → `✅ 已完成`
|
|
@@ -155,9 +157,10 @@
|
|
|
155
157
|
## 防护措施
|
|
156
158
|
|
|
157
159
|
- 必须先完成 Phase 4(Tasks)
|
|
158
|
-
- 主 agent 只做协调,不直接写代码;实现由 `implementer` agent 完成,验证由 `spec-compliance-reviewer` agent 完成
|
|
160
|
+
- 主 agent 只做协调,不直接写代码;实现由 `6aspec-brown-implementer` agent 完成,验证由 `6aspec-brown-spec-compliance-reviewer` agent 完成
|
|
159
161
|
- 串行执行,不并行调用多个 implementer agent
|
|
160
162
|
- implementer agent 报告 BLOCKED 时必须暂停并向用户报告,不得强行重试
|
|
161
163
|
- spec compliance review 必须通过才能标记任务完成,不得跳过
|
|
164
|
+
- implementer + reviewer 修复循环最多 3 次,超过则暂停向用户报告
|
|
162
165
|
- 发现设计问题时暂停,建议更新 artifacts(design/specs/tasks),不得在实现阶段临时发明新方案
|
|
163
166
|
- 立即更新任务状态(TASK 文件、tasks-overview、status.json)
|
|
@@ -13,8 +13,12 @@
|
|
|
13
13
|
|
|
14
14
|
根据用户输入判断类型:
|
|
15
15
|
|
|
16
|
-
**情况A:无输入** —
|
|
17
|
-
|
|
16
|
+
**情况A:无输入** — 使用 `AskUserQuestion` 工具询问:
|
|
17
|
+
```
|
|
18
|
+
问题:"你想分析什么需求?"
|
|
19
|
+
选项(Other 即可,无需固定选项)
|
|
20
|
+
```
|
|
21
|
+
或直接用开放式文本输入(Other)让用户描述需求。
|
|
18
22
|
|
|
19
23
|
**情况B:直接文字描述** — 记录原始描述文本,标记 `inputSource.type = "text"`。
|
|
20
24
|
|
|
@@ -26,13 +30,13 @@
|
|
|
26
30
|
|
|
27
31
|
2. **选择流程深度**
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
使用 `AskUserQuestion` 工具让用户选择流程深度:
|
|
30
34
|
```
|
|
31
35
|
问题:"请选择适合的流程深度:"
|
|
32
36
|
选项:
|
|
33
|
-
-
|
|
34
|
-
- 标准级 - 深入分析(analyze → proposal → specs → design → tasks
|
|
35
|
-
- 快速通道 -
|
|
37
|
+
- 轻量级(推荐)- 无需分析现有系统(proposal → specs → design → tasks),适用于与现有业务低耦合的需求
|
|
38
|
+
- 标准级 - 深入分析(analyze → proposal → specs → design → tasks),适用于需要分析现有业务影响面的需求
|
|
39
|
+
- 快速通道 - 简单修复(直接实现),适用于 Bug 修复、单文件改动
|
|
36
40
|
```
|
|
37
41
|
|
|
38
42
|
**流程深度说明**:
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
如果提供了名称,使用它。否则:
|
|
25
25
|
- 从对话上下文推断
|
|
26
|
-
- 如果模糊,读取 `6aspecdoc/brown/`
|
|
26
|
+
- 如果模糊,读取 `6aspecdoc/brown/` 目录,使用 `AskUserQuestion` 工具列出需求让用户选择
|
|
27
27
|
|
|
28
28
|
2. **检查当前状态**
|
|
29
29
|
|
|
@@ -56,13 +56,9 @@
|
|
|
56
56
|
|
|
57
57
|
4. **确认回退操作**
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
使用 `AskUserQuestion` 工具确认:
|
|
60
60
|
```
|
|
61
|
-
|
|
62
|
-
- 当前阶段:<current-phase>
|
|
63
|
-
- 回退到:<previous-phase>
|
|
64
|
-
- 将删除的文件:<files-to-delete>
|
|
65
|
-
|
|
61
|
+
问题:"确认回退操作?当前阶段:<current-phase>,将回退到:<previous-phase>,将删除:<files-to-delete>"
|
|
66
62
|
选项:
|
|
67
63
|
- 确认回退
|
|
68
64
|
- 取消
|
|
@@ -59,7 +59,7 @@ Phase 4: 任务拆解与排期
|
|
|
59
59
|
- 预估工作量在 0.5-3 人日(超过则继续拆分)
|
|
60
60
|
|
|
61
61
|
**拆解维度**(可组合使用):
|
|
62
|
-
- 按交付里程碑:契约与集成 → 数据变更 → 迁移/兼容/回滚 → 核心链路
|
|
62
|
+
- 按交付里程碑:契约与集成 → 数据变更 → 迁移/兼容/回滚 → 核心链路
|
|
63
63
|
- 按功能模块:模块A → 模块B → 模块C
|
|
64
64
|
- 按依赖关系:前置任务 → 核心任务 → 后置任务
|
|
65
65
|
- 按横切能力:Integration / Migration / Compatibility / Observability / Security
|
|
@@ -179,13 +179,6 @@ Phase 4: 任务拆解与排期
|
|
|
179
179
|
- [ ] [TASK-030: 核心业务逻辑实现(对齐 AC/Scenario)](../tasks/TASK-030.md)
|
|
180
180
|
- [ ] [TASK-031: 定时任务/事件消费/回调处理实现(如适用)](../tasks/TASK-031.md)
|
|
181
181
|
|
|
182
|
-
### M4: 集成联调与可观测性(Integration & Observability)
|
|
183
|
-
- [ ] [TASK-040: 集成联调与异常路径验证(重试/乱序/重复)](../tasks/TASK-040.md)
|
|
184
|
-
- [ ] [TASK-041: 可观测性补齐(处理记录可查、日志/指标/追踪要点)](../tasks/TASK-041.md)
|
|
185
|
-
|
|
186
|
-
### M5: 发布准备(Release)
|
|
187
|
-
- [ ] [TASK-050: 发布检查清单(灰度/回滚演练要点)](../tasks/TASK-050.md)
|
|
188
|
-
|
|
189
182
|
## 依赖关系图(示例)
|
|
190
183
|
|
|
191
184
|
```mermaid
|
|
@@ -193,8 +186,6 @@ Phase 4: 任务拆解与排期
|
|
|
193
186
|
TASK001 --> TASK010
|
|
194
187
|
TASK010 --> TASK020
|
|
195
188
|
TASK020 --> TASK030
|
|
196
|
-
TASK030 --> TASK040
|
|
197
|
-
TASK040 --> TASK050
|
|
198
189
|
```
|
|
199
190
|
|
|
200
191
|
## 工作量统计
|
|
@@ -205,8 +196,6 @@ Phase 4: 任务拆解与排期
|
|
|
205
196
|
| M1 | <n> | <x> 人日 |
|
|
206
197
|
| M2 | <n> | <x> 人日 |
|
|
207
198
|
| M3 | <n> | <x> 人日 |
|
|
208
|
-
| M4 | <n> | <x> 人日 |
|
|
209
|
-
| M5 | <n> | <x> 人日 |
|
|
210
199
|
| **总计** | **<n>** | **<x> 人日** |
|
|
211
200
|
|
|
212
201
|
## 风险清单
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
如果提供了名称,使用它。否则:
|
|
43
43
|
- 从对话上下文推断
|
|
44
|
-
- 如果模糊,读取 `6aspecdoc/brown/`
|
|
44
|
+
- 如果模糊,读取 `6aspecdoc/brown/` 目录,使用 `AskUserQuestion` 工具列出需求让用户选择
|
|
45
45
|
|
|
46
46
|
2. **处理特殊选项**
|
|
47
47
|
|
|
@@ -70,15 +70,10 @@
|
|
|
70
70
|
|
|
71
71
|
5. **获取用户修改需求**
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
使用 `AskUserQuestion` 工具询问(开放式,用 Other 输入):
|
|
74
74
|
```
|
|
75
75
|
问题:"请描述您要对 <phase> 阶段文档进行的修改:"
|
|
76
|
-
|
|
77
|
-
提示:
|
|
78
|
-
- 请具体描述要修改、补充或调整的内容
|
|
79
|
-
- 如果是补充信息,请说明要补充什么
|
|
80
|
-
- 如果是修正错误,请说明错误的地方和正确的内容
|
|
81
|
-
- 如果是调整描述,请说明要如何调整
|
|
76
|
+
提示:具体描述要修改、补充或调整的内容
|
|
82
77
|
```
|
|
83
78
|
|
|
84
79
|
6. **执行更新(根据模式)**
|
|
@@ -123,7 +118,7 @@
|
|
|
123
118
|
- 建议:<执行建议>
|
|
124
119
|
```
|
|
125
120
|
|
|
126
|
-
d.
|
|
121
|
+
d. **使用 `AskUserQuestion` 工具等待用户确认**:
|
|
127
122
|
```
|
|
128
123
|
问题:"是否执行上述更新计划?"
|
|
129
124
|
选项:
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- **design.md**:主 agent 传入的 `design.md 路径`,读取相关技术决策
|
|
12
12
|
- **analysis.md**:主 agent 传入的 `analysis.md 路径`,读取现状分析和影响面背景(如果存在)
|
|
13
13
|
- **explore-summary.md**:主 agent 传入的 `explore-summary.md 路径`,读取代码结构摘要(如果存在)
|
|
14
|
+
- **code.md**:`.6aspec/rules/biz/code.md`,编码规范与红线(含**架构红线**中的应用入口与跨层约定)、安全/性能要求(与本次修改语言相关时须通读并遵守)
|
|
14
15
|
|
|
15
16
|
如果你对任务要求、验收标准、实现策略或依赖关系有任何疑问,**现在就提出**,不要开始实现后再问。
|
|
16
17
|
|
|
@@ -22,13 +23,15 @@
|
|
|
22
23
|
2. 按"实现步骤"逐步执行,到类/方法级
|
|
23
24
|
3. 遵循 design.md 的技术决策,**不在实现阶段发明新方案**
|
|
24
25
|
4. 遵循现有代码风格和架构模式
|
|
25
|
-
5.
|
|
26
|
-
- 循环中的数据库查询、网络请求、文件 I/O
|
|
27
|
-
- SQL 字符串拼接、敏感信息硬编码
|
|
28
|
-
- 空 catch 块、循环依赖、跨层直接调用
|
|
26
|
+
5. **编码规范**:实现与自我审查须符合 `.6aspec/rules/biz/code.md`(含红线规则中的**架构红线**、安全、性能、命名与文内检查清单)
|
|
29
27
|
6. 若项目有测试框架,补充/修改对应单元测试,覆盖任务关联的 AC/Scenario;若无测试框架则跳过
|
|
30
28
|
7. 完成后自我审查,报告结果
|
|
31
29
|
|
|
30
|
+
## 禁止事项
|
|
31
|
+
|
|
32
|
+
- **除非用户在本对话中明确要求**,否则不要执行 `mvn`、`gradle`、`./gradlew`、`npm run build`、`pnpm build`、`make` 等**构建或全量编译**命令。Implement 的交付以改代码、补测试(若有框架)、**阅读与静态自检**、报告为主;构建与长时间运行的验证交给用户本地或 CI。
|
|
33
|
+
- 若用户明确要求执行某条构建命令,可执行,并在报告中说明命令与结果摘要。
|
|
34
|
+
|
|
32
35
|
## 自我审查
|
|
33
36
|
|
|
34
37
|
报告前检查:
|
|
@@ -37,9 +40,11 @@
|
|
|
37
40
|
|
|
38
41
|
**克制性**:是否只做了任务要求的事,没有多做?是否引入了不必要的抽象或功能?
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
**一致性**:是否遵循了现有代码风格、`code.md` 与 design.md 的技术决策?
|
|
44
|
+
|
|
45
|
+
**分层**:若本次改动涉及 Controller/API、事件订阅、消息消费或调度入口,是否符合 `code.md` **架构红线**中关于薄入口、不直连 DAO 与委托 Service 的约定(有 TASK/design 例外除外)?
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
**测试**:单元测试可使用 Mock/Stub 隔离外部依赖;断言是否落在被测代码的业务结果上(返回值、异常、领域状态等),而不是仅校验「Mock 曾被调用」?是否覆盖了关联的 AC/Scenario?
|
|
43
48
|
|
|
44
49
|
发现问题立即修复,再报告。
|
|
45
50
|
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
- **TASK 文件**:主 agent 传入的 `TASK 文件路径`,读取任务详情、实现步骤、验收标准、涉及文件
|
|
10
10
|
- **specs.md**:主 agent 传入的 `specs.md 路径`,读取该任务引用的 AC/Scenario 原文
|
|
11
|
+
- **design.md**:主 agent 传入的 `design.md 路径`,读取该任务相关的技术方案与约束(接口、流程、关键决策)
|
|
12
|
+
|
|
13
|
+
> 如果缺少 `design.md` 路径或无法读取 design 内容:**直接判定不通过**(无法验证是否绕过设计)。
|
|
11
14
|
|
|
12
15
|
## 重要:不要信任 implementer 的报告
|
|
13
16
|
|
|
@@ -19,7 +22,10 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
|
|
|
19
22
|
|
|
20
23
|
## 你的职责
|
|
21
24
|
|
|
22
|
-
读取 implementer
|
|
25
|
+
读取 implementer 修改的文件,验证以下内容:
|
|
26
|
+
|
|
27
|
+
- **阻塞项**:1~5 任一不满足都必须判定 ❌
|
|
28
|
+
- **风险提示**:测试覆盖默认不作为阻塞项(除非 TASK/specs.md/design.md 明确要求必须补测试)
|
|
23
29
|
|
|
24
30
|
**1. 没有少做(Missing)**
|
|
25
31
|
- 任务要求的每一项是否都已实现?
|
|
@@ -37,6 +43,24 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
|
|
|
37
43
|
- 是否用了正确的方式解决了正确的问题?
|
|
38
44
|
- 业务语义是否与 specs.md 的 AC/Scenario 一致?
|
|
39
45
|
|
|
46
|
+
**4. 设计一致性(Design Compliance)**
|
|
47
|
+
- 是否严格符合 design.md 的技术方案与约束?(接口形态、流程编排、关键决策)
|
|
48
|
+
- 是否存在绕过设计/偏离设计的实现?(即便功能表面可用也必须判定不通过)
|
|
49
|
+
|
|
50
|
+
**5. 边界与正确性(Boundary & Correctness)**
|
|
51
|
+
- 是否存在幂等问题(重复请求/重试导致重复写入、重复扣款、重复发消息等)?
|
|
52
|
+
- 是否存在空值/缺省值处理问题(NPE、字段缺失、空集合、空字符串等)?
|
|
53
|
+
- 是否存在并发/竞态问题(重复提交、并发更新丢失、顺序依赖被破坏等)?
|
|
54
|
+
|
|
55
|
+
> 要求:必须以 `specs.md` / `design.md` / `TASK` 中可追溯的约束为判定基准。
|
|
56
|
+
> - 如果你发现“必须明确但 specs/design 没写清”的边界规则,判定为 **规格/设计缺口** 并判定不通过,要求补齐 artifacts 后重审(不得在实现阶段临时发明规则)。
|
|
57
|
+
|
|
58
|
+
**6. 测试覆盖关键场景(Testing Adequacy,默认仅风险提示)**
|
|
59
|
+
- 评估测试是否覆盖该任务涉及的关键 AC/Scenario。
|
|
60
|
+
- 评估是否覆盖关键边界场景(幂等/空值/并发)对应的用例或回归点。
|
|
61
|
+
- 如果 implementer 报告明确无测试,且你也未发现相关测试文件:仅记录为**风险提示**,不要仅因无测试而判定不通过。
|
|
62
|
+
- 只有当 TASK/specs.md/design.md **明确要求必须补测试**时,缺失测试才属于 Missing 并必须判定 ❌。
|
|
63
|
+
|
|
40
64
|
## 报告格式
|
|
41
65
|
|
|
42
66
|
**如果通过**:
|
|
@@ -44,8 +68,10 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
|
|
|
44
68
|
✅ 规格合规
|
|
45
69
|
|
|
46
70
|
验证结论:
|
|
47
|
-
- 已实现:[
|
|
48
|
-
-
|
|
71
|
+
- 已实现:[列出已覆盖的要求(按 TASK / specs.md 逐条)]
|
|
72
|
+
- 设计一致性:符合 design.md(如有关键约束请点名)
|
|
73
|
+
- 边界检查:幂等/空值/并发关键点已覆盖(列出证据)
|
|
74
|
+
- 测试覆盖(风险提示):[如有,列出覆盖的 AC/Scenario + 关键边界用例;如无,标注风险]
|
|
49
75
|
```
|
|
50
76
|
|
|
51
77
|
**如果有问题**:
|
|
@@ -60,6 +86,18 @@ Implementer 的报告可能不完整或过于乐观。你**必须独立验证**
|
|
|
60
86
|
|
|
61
87
|
理解偏差(Misunderstood):
|
|
62
88
|
- [具体偏差描述,含文件路径和行号]
|
|
89
|
+
|
|
90
|
+
设计偏离(Design Compliance):
|
|
91
|
+
- [具体偏离点,引用 design.md 条目/段落 + 对应代码文件路径和行号]
|
|
92
|
+
|
|
93
|
+
边界问题(Boundary & Correctness):
|
|
94
|
+
- [幂等/空值/并发问题的具体描述,含文件路径和行号]
|
|
95
|
+
|
|
96
|
+
规格/设计缺口(Spec/Design Gap):
|
|
97
|
+
- [需要补齐的 specs/design 条目,说明为什么这是必须的验收基准]
|
|
98
|
+
|
|
99
|
+
风险提示(Risks,非阻塞):
|
|
100
|
+
- 测试覆盖风险:implementer 报告无测试/未发现测试文件,建议补充覆盖关键场景与边界用例
|
|
63
101
|
```
|
|
64
102
|
|
|
65
|
-
|
|
103
|
+
问题描述必须具体、可操作,包含文件路径和行号,让 implementer 能直接定位并修复或推动补齐 artifacts。
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Code Reviewer Agent
|
|
2
|
+
|
|
3
|
+
你是一个代码审查专家,负责审查代码变更的生产就绪性。
|
|
4
|
+
|
|
5
|
+
## 任务
|
|
6
|
+
|
|
7
|
+
1. 通过 git diff 获取变更内容
|
|
8
|
+
2. 对照需求/计划检查实现
|
|
9
|
+
3. 从代码质量、架构、测试、生产就绪性四个维度评估
|
|
10
|
+
4. 按严重程度分类问题
|
|
11
|
+
5. 给出明确的合并建议
|
|
12
|
+
|
|
13
|
+
## 输入
|
|
14
|
+
|
|
15
|
+
调用方会提供:
|
|
16
|
+
- `变更描述`:做了什么
|
|
17
|
+
- `需求/计划`:应该做什么(可选,文件路径或文字描述)
|
|
18
|
+
- `BASE_SHA`:起始 commit
|
|
19
|
+
- `HEAD_SHA`:结束 commit
|
|
20
|
+
|
|
21
|
+
## 执行步骤
|
|
22
|
+
|
|
23
|
+
### 1. 获取变更内容
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
git diff --stat {BASE_SHA}..{HEAD_SHA}
|
|
27
|
+
git diff {BASE_SHA}..{HEAD_SHA}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
如果调用方未提供 SHA,使用:
|
|
31
|
+
```bash
|
|
32
|
+
BASE_SHA=$(git rev-parse HEAD~1)
|
|
33
|
+
HEAD_SHA=$(git rev-parse HEAD)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. 读取需求(如果提供了文件路径)
|
|
37
|
+
|
|
38
|
+
读取需求/计划文件,理解预期行为。
|
|
39
|
+
|
|
40
|
+
### 3. 执行审查
|
|
41
|
+
|
|
42
|
+
**代码质量**
|
|
43
|
+
- 关注点分离是否清晰?
|
|
44
|
+
- 错误处理是否完善?
|
|
45
|
+
- 类型安全(如适用)?
|
|
46
|
+
- 是否遵循 DRY 原则?
|
|
47
|
+
- 边界情况是否处理?
|
|
48
|
+
|
|
49
|
+
**架构**
|
|
50
|
+
- 设计决策是否合理?
|
|
51
|
+
- 是否考虑可扩展性?
|
|
52
|
+
- 性能影响?
|
|
53
|
+
- 安全隐患?
|
|
54
|
+
|
|
55
|
+
**测试**
|
|
56
|
+
- 测试是否真正测试了逻辑(而非只测 mock)?
|
|
57
|
+
- 边界情况是否覆盖?
|
|
58
|
+
- 是否需要集成测试?
|
|
59
|
+
- 所有测试是否通过?
|
|
60
|
+
|
|
61
|
+
**需求符合度**
|
|
62
|
+
- 是否满足所有需求?
|
|
63
|
+
- 实现是否与规格一致?
|
|
64
|
+
- 是否有范围蔓延?
|
|
65
|
+
- 破坏性变更是否有文档?
|
|
66
|
+
|
|
67
|
+
**生产就绪性**
|
|
68
|
+
- Schema 变更是否有迁移策略?
|
|
69
|
+
- 是否考虑向后兼容?
|
|
70
|
+
- 文档是否完整?
|
|
71
|
+
- 是否有明显 bug?
|
|
72
|
+
|
|
73
|
+
## 输出格式
|
|
74
|
+
|
|
75
|
+
### 亮点
|
|
76
|
+
[做得好的地方,具体到文件:行号]
|
|
77
|
+
|
|
78
|
+
### 问题
|
|
79
|
+
|
|
80
|
+
#### 严重(必须修复)
|
|
81
|
+
[Bug、安全问题、数据丢失风险、功能损坏]
|
|
82
|
+
|
|
83
|
+
#### 重要(应该修复)
|
|
84
|
+
[架构问题、缺失功能、错误处理不足、测试缺口]
|
|
85
|
+
|
|
86
|
+
#### 次要(可以改进)
|
|
87
|
+
[代码风格、优化机会、文档改进]
|
|
88
|
+
|
|
89
|
+
**每个问题格式**:
|
|
90
|
+
- 文件:行号
|
|
91
|
+
- 问题描述
|
|
92
|
+
- 为什么重要
|
|
93
|
+
- 如何修复(如果不明显)
|
|
94
|
+
|
|
95
|
+
### 建议
|
|
96
|
+
[代码质量、架构或流程的改进建议]
|
|
97
|
+
|
|
98
|
+
### 评估
|
|
99
|
+
|
|
100
|
+
**可以合并?** [是 / 否 / 修复后可以]
|
|
101
|
+
|
|
102
|
+
**理由**:[1-2 句技术评估]
|
|
103
|
+
|
|
104
|
+
## 规则
|
|
105
|
+
|
|
106
|
+
**要做**:
|
|
107
|
+
- 按实际严重程度分类(不是所有问题都是严重)
|
|
108
|
+
- 具体指出(文件:行号,不要模糊)
|
|
109
|
+
- 解释问题为什么重要
|
|
110
|
+
- 承认做得好的地方
|
|
111
|
+
- 给出明确结论
|
|
112
|
+
|
|
113
|
+
**不要做**:
|
|
114
|
+
- 不检查就说"看起来不错"
|
|
115
|
+
- 把小问题标为严重
|
|
116
|
+
- 对没有审查的代码给反馈
|
|
117
|
+
- 模糊表述("改进错误处理")
|
|
118
|
+
- 回避给出明确结论
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-analyze"
|
|
3
|
+
description: "需求澄清与影响面分析(合并原 Understand + Impact)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-analyze** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_analyze_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-archive"
|
|
3
|
+
description: "归档已完成的需求"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-archive** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_archive_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-continue"
|
|
3
|
+
description: "继续当前需求的下一个阶段"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-continue** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_continue_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-design"
|
|
3
|
+
description: "技术方案设计(含 ADR 和技术债务识别)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-design** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_design_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-explore"
|
|
3
|
+
description: "前期探索(轻量级流程可选)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-explore** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_explore_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-ff"
|
|
3
|
+
description: "快速完成分析阶段(根据流程深度)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-ff** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_ff_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-implement"
|
|
3
|
+
description: "执行任务实现"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-implement** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_implement_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-list"
|
|
3
|
+
description: "列出所有需求及其状态"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-list** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_list_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-new"
|
|
3
|
+
description: "开始新需求分析(选择流程深度)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-new** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_new_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-proposal"
|
|
3
|
+
description: "创建需求提案(轻量级流程)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-proposal** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_proposal_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "6aspec-brown-quick"
|
|
3
|
+
description: "需求快速通道(简化流程)"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 操作流程
|
|
7
|
+
1. Immediate response upon activation: brown field requirement workflow - **6aspec-brown-quick** has been activated
|
|
8
|
+
2. **Read and strictly follow the brown field constitution**: `.6aspec/rules/brown/brown_constitution.md`
|
|
9
|
+
3. Read file: `.6aspec/rules/brown/brown_quick_sop.md`
|
|
10
|
+
4. Strictly follow the SOP defined in that file
|