@haaaiawd/anws 2.2.0 → 2.2.2
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/README.md +180 -343
- package/bin/cli.js +112 -112
- package/lib/changelog.js +258 -258
- package/lib/copy.js +116 -109
- package/lib/diff.js +11 -0
- package/lib/manifest.js +4 -1
- package/lib/update.js +319 -319
- package/package.json +4 -3
- package/templates/.agents/skills/anws-system/SKILL.md +9 -7
- package/templates/.agents/skills/code-reviewer/SKILL.md +102 -327
- package/templates/.agents/skills/concept-modeler/SKILL.md +19 -17
- package/templates/.agents/skills/craft-authoring/SKILL.md +123 -0
- package/templates/.agents/skills/e2e-testing-guide/SKILL.md +59 -0
- package/templates/.agents/skills/system-designer/SKILL.md +6 -6
- package/templates/.agents/skills/system-designer/references/system-design-template.md +17 -17
- package/templates/.agents/skills/task-planner/SKILL.md +113 -113
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +82 -82
- package/templates/.agents/workflows/blueprint.md +284 -284
- package/templates/.agents/workflows/challenge.md +450 -491
- package/templates/.agents/workflows/change.md +263 -286
- package/templates/.agents/workflows/craft.md +243 -664
- package/templates/.agents/workflows/design-system.md +624 -624
- package/templates/.agents/workflows/explore.md +400 -371
- package/templates/.agents/workflows/forge.md +444 -413
- package/templates/.agents/workflows/genesis.md +342 -395
- package/templates/.agents/workflows/probe.md +21 -16
- package/templates/.agents/workflows/quickstart.md +123 -138
- package/templates/AGENTS.md +149 -134
|
@@ -42,15 +42,15 @@ description: 当用户在 skills-only 环境中需要判断应该从哪个 anws
|
|
|
42
42
|
- `references/blueprint.md`
|
|
43
43
|
- 用途:将架构设计拆成可执行的 `05_TASKS.md`
|
|
44
44
|
- `references/challenge.md`
|
|
45
|
-
-
|
|
45
|
+
- 用途:在编码前(或需要时含 `src/`)对抗式审查;可组合 design-reviewer、task-reviewer、**code-reviewer**(`CODE` / `FULL` 或自适应升级)
|
|
46
46
|
- `references/forge.md`
|
|
47
|
-
- 用途:按 `05_TASKS.md`
|
|
47
|
+
- 用途:按 `05_TASKS.md` 执行编码;在验证与提交之间调用 **code-reviewer**(静态忠实度)及按需 **`e2e-testing-guide`**(浏览器/E2E 指南或实测)
|
|
48
48
|
- `references/change.md`
|
|
49
|
-
-
|
|
49
|
+
- 用途:在当前版本前提不变时微调任务/契约/验证承接;允许 **受控扩展** 下与用户原话或 `/forge` 回流对应的 **少量新任务**;**禁止**回填 `- [x]`、**禁止**运行或替代 **`code-reviewer`**
|
|
50
50
|
- `references/explore.md`
|
|
51
51
|
- 用途:做调研、探索、方案发散与收敛
|
|
52
52
|
- `references/craft.md`
|
|
53
|
-
-
|
|
53
|
+
- 用途:创建 workflow / skill / prompt;长模板、防护写法与自检清单在 **`craft-authoring`** skill(与 `/craft` 配套,路径随 target 投影到 `skills/craft-authoring/SKILL.md`)
|
|
54
54
|
- `references/upgrade.md`
|
|
55
55
|
- 用途:处理 `anws update` 之后的升级编排
|
|
56
56
|
|
|
@@ -70,12 +70,14 @@ description: 当用户在 skills-only 环境中需要判断应该从哪个 anws
|
|
|
70
70
|
1. 读取 `references/forge.md`
|
|
71
71
|
2. 检查 `.anws/v{N}/05_TASKS.md` 是否存在且任务已定义
|
|
72
72
|
3. 若缺任务清单,不得直接实现,先回到 `blueprint` 或 `genesis`
|
|
73
|
+
4. 若任务含 **E2E / 浏览器手动验证**:在执行路径上读取 **`e2e-testing-guide`** skill(同目录 `skills/e2e-testing-guide/SKILL.md`);投影环境下路径以目标 IDE 的 `skills/` 为准
|
|
74
|
+
5. 在提交前需要静态契约核对时:读取 **`code-reviewer`** skill。**若宿主支持子代理**(如 Task、并行子会话等)→ **优先委派子代理**按该 skill 专职执行(隔离上下文,输出结构以 skill 为准)。**若无子代理能力** → 由**当前会话**按同一 skill 完整执行(检查清单、证据与输出要求不得缩水)。
|
|
73
75
|
|
|
74
|
-
### Route 3: 请求是“微调现有任务 / 修正文案 /
|
|
76
|
+
### Route 3: 请求是“微调现有任务 / 修正文案 / 调整验收标准 / 受控补任务”
|
|
75
77
|
|
|
76
78
|
1. 读取 `references/change.md`
|
|
77
|
-
2.
|
|
78
|
-
3.
|
|
79
|
+
2. 判断变更是否仍属 `/change` 权限(含 **Q8 少量新任务**、契约/验证补全);若已改动需求/架构/ADR **前提** → `genesis`
|
|
80
|
+
3. **受控扩展**允许少量新任务(须可追溯用户原话或 forge 回流);**凭空加需求**或版本前提断裂 → `genesis`
|
|
79
81
|
|
|
80
82
|
### Route 4: 请求是“新项目 / 大重构 / 新版本 / 架构升级”
|
|
81
83
|
|
|
@@ -1,327 +1,102 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
4. **Missing Change Backflow**
|
|
105
|
-
- 代码里出现新公共契约、新错误语义、新配置结构,但没有走 `/change`
|
|
106
|
-
|
|
107
|
-
5. **Foundational Test Gaps**
|
|
108
|
-
- registry / parser / schema / diff / merge / planner / normalizer 等基础逻辑是否真的有单元测试承接
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## 推荐扫描顺序
|
|
113
|
-
|
|
114
|
-
1. README / 使用说明 / 配置示例 / 包管理清单
|
|
115
|
-
2. 入口点与路由注册
|
|
116
|
-
3. 认证 / 会话 / Token / 中间件 / 权限守卫
|
|
117
|
-
4. 核心业务模块、服务、数据模型、持久层
|
|
118
|
-
5. 管理 / 内部 / 调试端点
|
|
119
|
-
6. 测试文件与测试配置
|
|
120
|
-
7. 如适用,再看前端 UI 结构与视觉一致性
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 重点审查维度
|
|
125
|
-
|
|
126
|
-
### 1. 文档与静态可验证性
|
|
127
|
-
|
|
128
|
-
检查:
|
|
129
|
-
- 是否提供了清晰的启动 / 运行 / 测试 / 配置说明
|
|
130
|
-
- 文档中的入口、配置和项目结构在静态上是否基本一致
|
|
131
|
-
- 交付物是否提供了足够静态证据,使人工评审者无需先改核心代码即可尝试验证
|
|
132
|
-
|
|
133
|
-
若静态证据不足,不等于运行失败;应写成 `Cannot Confirm Statistically`。
|
|
134
|
-
|
|
135
|
-
### 2. Prompt / 契约到代码映射
|
|
136
|
-
|
|
137
|
-
先提炼:
|
|
138
|
-
- 核心业务目标
|
|
139
|
-
- 主流程
|
|
140
|
-
- 明确需求
|
|
141
|
-
- 重要隐含约束
|
|
142
|
-
|
|
143
|
-
然后映射到:
|
|
144
|
-
- 代码入口
|
|
145
|
-
- 核心模块
|
|
146
|
-
- 接口定义
|
|
147
|
-
- 数据模型
|
|
148
|
-
- 测试
|
|
149
|
-
- 文档
|
|
150
|
-
|
|
151
|
-
若代码大量偏离这些内容,应优先判为 **Task Drift** 或 **Contract Drift**。
|
|
152
|
-
|
|
153
|
-
### 3. 工程与架构质量
|
|
154
|
-
|
|
155
|
-
检查:
|
|
156
|
-
- 项目结构与模块划分是否与问题规模相匹配
|
|
157
|
-
- 是否具备基本可维护性和扩展空间,而不是临时堆砌
|
|
158
|
-
- 是否存在明显高度耦合、职责混乱或不合理大文件
|
|
159
|
-
|
|
160
|
-
### 4. 安全审查(强制)
|
|
161
|
-
|
|
162
|
-
必须分别评估:
|
|
163
|
-
- 认证入口
|
|
164
|
-
- 路由级鉴权
|
|
165
|
-
- 对象级鉴权
|
|
166
|
-
- 函数级权限控制
|
|
167
|
-
- 租户 / 用户数据隔离
|
|
168
|
-
- 管理 / 内部 / 调试端点保护
|
|
169
|
-
|
|
170
|
-
若证据不足,不得夸大为已证实缺陷;应标记为:
|
|
171
|
-
- `无法通过静态审查确认`
|
|
172
|
-
- 或 `疑似风险`
|
|
173
|
-
|
|
174
|
-
### 5. 测试与日志审查(强制)
|
|
175
|
-
|
|
176
|
-
必须评估:
|
|
177
|
-
- 是否存在单元测试与 API / 集成测试
|
|
178
|
-
- 静态上覆盖了什么
|
|
179
|
-
- 是否覆盖核心流程与重要失败路径
|
|
180
|
-
- 日志分类是否清晰
|
|
181
|
-
- 日志或响应中是否存在敏感信息泄漏风险
|
|
182
|
-
|
|
183
|
-
### 6. Test Coverage Assessment(强制)
|
|
184
|
-
|
|
185
|
-
重点围绕高风险与核心需求做覆盖映射:
|
|
186
|
-
- 核心 happy path
|
|
187
|
-
- 输入校验失败
|
|
188
|
-
- 未认证 401
|
|
189
|
-
- 未授权 403
|
|
190
|
-
- 404 not found
|
|
191
|
-
- 对象级鉴权
|
|
192
|
-
- 租户 / 用户隔离
|
|
193
|
-
- 空数据 / 极值 / 时间字段 / 并发 / 重复请求 / 回滚(如适用)
|
|
194
|
-
- 敏感日志泄漏
|
|
195
|
-
|
|
196
|
-
不要求臃肿全量矩阵,但必须说明哪些高风险点:
|
|
197
|
-
- `sufficient`
|
|
198
|
-
- `basically covered`
|
|
199
|
-
- `insufficient`
|
|
200
|
-
- `missing`
|
|
201
|
-
- `not applicable`
|
|
202
|
-
- `cannot confirm`
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## 六大章节组织规则
|
|
207
|
-
|
|
208
|
-
虽然你的实际扫描顺序可以按风险优先进行,但最终报告必须按以下顺序组织:
|
|
209
|
-
|
|
210
|
-
1. **文档与静态可验证性**
|
|
211
|
-
2. **Prompt / 契约贴合度**
|
|
212
|
-
3. **工程与架构质量**
|
|
213
|
-
4. **安全审查**
|
|
214
|
-
5. **测试与日志审查**
|
|
215
|
-
6. **Test Coverage Assessment**
|
|
216
|
-
|
|
217
|
-
对每个章节都要给出:
|
|
218
|
-
- 结论:Pass / Partial Pass / Fail / 不适用 / Cannot Confirm Statistically
|
|
219
|
-
- 理由:与 Prompt / 契约和代码绑定的简明说明
|
|
220
|
-
- 证据:`file:line`
|
|
221
|
-
- 如静态证据不足,可补一句人工验证建议
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## 严重度分级
|
|
226
|
-
|
|
227
|
-
| 等级 | 判定标准 | 所需行动 |
|
|
228
|
-
|:----:|---------|---------|
|
|
229
|
-
| **Critical** 🔴 | 根本性矛盾或不可能交付。不解决无法继续。 | P0 — 必须在 forge / 验收前修复 |
|
|
230
|
-
| **High** 🟠 | 大概率导致严重返工、契约失真或安全/测试失守。 | P1 — 在继续交付前修复 |
|
|
231
|
-
| **Medium** 🟡 | 有明显质量隐患,但存在可控变通空间。 | P2 — 尽快修复 |
|
|
232
|
-
| **Low** 🟢 | 轻微不一致或可后续收敛项。 | P3 — 跟踪改进 |
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## 输出格式
|
|
237
|
-
|
|
238
|
-
按以下结构生成适合纳入 `07_CHALLENGE_REPORT.md` 的代码审查部分:
|
|
239
|
-
|
|
240
|
-
```markdown
|
|
241
|
-
## 🧪 代码审查发现
|
|
242
|
-
|
|
243
|
-
### 总结结论
|
|
244
|
-
- Overall conclusion: Pass / Partial Pass / Fail / Cannot Confirm Statistically
|
|
245
|
-
|
|
246
|
-
### 审查范围与静态验证边界
|
|
247
|
-
- 审查了什么
|
|
248
|
-
- 没有审查什么
|
|
249
|
-
- 有意未执行什么
|
|
250
|
-
- 哪些结论需要人工验证
|
|
251
|
-
|
|
252
|
-
### 规范来源与仓库映射摘要
|
|
253
|
-
- 核心业务目标 / 主流程 / 主要约束
|
|
254
|
-
- 提炼出的关键承诺
|
|
255
|
-
- 映射到的主要实现区域
|
|
256
|
-
|
|
257
|
-
### 分章节审查结果
|
|
258
|
-
- 文档与静态可验证性
|
|
259
|
-
- Prompt / 契约贴合度
|
|
260
|
-
- 工程与架构质量
|
|
261
|
-
- 安全审查
|
|
262
|
-
- 测试与日志审查
|
|
263
|
-
- Test Coverage Assessment
|
|
264
|
-
|
|
265
|
-
> 每个章节内部都应明确写出:结论 / 理由 / 证据 /(如需要)人工验证建议。
|
|
266
|
-
|
|
267
|
-
### 分类发现摘要
|
|
268
|
-
|
|
269
|
-
| 类型 | 发现数 | Critical | High | Medium | Low |
|
|
270
|
-
|------|:------:|:--------:|:----:|:------:|:---:|
|
|
271
|
-
| Contract Drift | — | — | — | — | — |
|
|
272
|
-
| Task Drift | — | — | — | — | — |
|
|
273
|
-
| Test Drift | — | — | — | — | — |
|
|
274
|
-
| Missing Change Backflow | — | — | — | — | — |
|
|
275
|
-
| Foundational Test Gaps | — | — | — | — | — |
|
|
276
|
-
|
|
277
|
-
### Issues / Suggestions
|
|
278
|
-
|
|
279
|
-
#### CR-01 [标题]
|
|
280
|
-
- **Severity**: High
|
|
281
|
-
- **Conclusion**: [一句话结论]
|
|
282
|
-
- **Evidence**: `src/...:12`, `.anws/v{N}/05_TASKS.md:88`
|
|
283
|
-
- **Impact**: [为什么这是实质问题]
|
|
284
|
-
- **Minimum actionable fix**: [最小修复建议]
|
|
285
|
-
|
|
286
|
-
### 安全审查摘要
|
|
287
|
-
|
|
288
|
-
| 项目 | 结论 | 理由 | 证据 |
|
|
289
|
-
|------|------|------|------|
|
|
290
|
-
| 认证入口 | Pass / Partial / Fail / Cannot Confirm | ... | `file:line` |
|
|
291
|
-
| 路由级鉴权 | ... | ... | ... |
|
|
292
|
-
| 对象级鉴权 | ... | ... | ... |
|
|
293
|
-
| 函数级权限控制 | ... | ... | ... |
|
|
294
|
-
| 租户 / 数据隔离 | ... | ... | ... |
|
|
295
|
-
| 管理 / 调试端点保护 | ... | ... | ... |
|
|
296
|
-
|
|
297
|
-
### 测试与日志审查
|
|
298
|
-
- 单元测试
|
|
299
|
-
- API / 集成测试
|
|
300
|
-
- 日志分类 / 可观测性
|
|
301
|
-
- 日志 / 响应中的敏感信息泄漏风险
|
|
302
|
-
|
|
303
|
-
### Test Coverage Assessment
|
|
304
|
-
|
|
305
|
-
| Requirement / Risk Point | 对应测试 | 关键断言 / Fixture / Mock | 覆盖结论 | Gap | Minimum Test Addition |
|
|
306
|
-
|--------------------------|---------|---------------------------|---------|-----|-----------------------|
|
|
307
|
-
| 未认证 401 | `test/auth.test.js:20` | `expect(status).toBe(401)` | sufficient | — | — |
|
|
308
|
-
| 对象级鉴权 | — | — | missing | 缺对象所有权断言 | 增加非 owner 访问测试 |
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
> [!NOTE]
|
|
312
|
-
> **输出风格要求**:
|
|
313
|
-
> - 保持与 `design-reviewer`、`task-reviewer` 同样的“高信号摘要 + 核心发现”风格
|
|
314
|
-
> - 重点写根因级问题,不要把报告膨胀成低价值逐项 checklist
|
|
315
|
-
> - 如某一章节不适用,写“不适用”;如静态证据不足,写 `Cannot Confirm Statistically`
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## 审查质量清单
|
|
320
|
-
|
|
321
|
-
交付前确认:
|
|
322
|
-
- [ ] 每个强结论都有 `file:line` 证据
|
|
323
|
-
- [ ] 没有把静态推断伪装成运行时事实
|
|
324
|
-
- [ ] 发现聚焦根因,而不是重复表层症状
|
|
325
|
-
- [ ] 判断以 Prompt / 契约为依据,而不是泛化个人偏好
|
|
326
|
-
- [ ] 安全、测试、日志三项已显式审查
|
|
327
|
-
- [ ] 对无法确认的项使用了 `Cannot Confirm Statistically` 或等价说明
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
## name: code-reviewer
|
|
4
|
+
|
|
5
|
+
description: 纯静态「契约忠实度 / 实现侧证据」审查:对照 PRD、ADR、系统设计与 05_TASKS,围绕契约闭合、任务兑现、架构健康、安全边界、验证证据与回流一致性产出可追溯结论;供 /challenge(CODE/FULL)与 /forge(3.4.5)共用。
|
|
6
|
+
|
|
7
|
+
# Code Reviewer — 实现侧证据层
|
|
8
|
+
|
|
9
|
+
你是 **CODE REVIEWER**。你的职责不是泛化 PR review,也不是风格打分,而是用纯静态证据回答:
|
|
10
|
+
|
|
11
|
+
> **实现是否忠实兑现了已经写入 PRD / ADR / System Design / 05_TASKS 的承诺?如果没有,风险在哪里,证据是什么?**
|
|
12
|
+
|
|
13
|
+
## 硬边界(必须遵守)
|
|
14
|
+
|
|
15
|
+
- **纯静态**:不启动项目、不跑 Docker、不自动执行测试、不修改代码、不连外部服务。
|
|
16
|
+
- **不夸大**:运行时、网络、浏览器、外部集成相关结论只能写 **无法通过静态审查确认** 或 **需人工验证**。
|
|
17
|
+
- **证据**:Critical / High / Pass / Fail 等强结论必须带 `**path:line`**。无证据则降级为「疑似」或「无法确认」。
|
|
18
|
+
- **锚点**:判断必须回到 PRD / ADR / System Design / `05_TASKS.md` / 本轮任务描述。
|
|
19
|
+
|
|
20
|
+
## 严重级别(与质疑报告对齐)
|
|
21
|
+
|
|
22
|
+
使用 **Critical / High / Medium / Low**(与 `/challenge` 一致)。其中 **Critical** 对应「若不修复则不应继续合并或交付」的阻断级问题(其它流程里的 Blocker 口径与此对齐即可)。
|
|
23
|
+
|
|
24
|
+
## 激活时机
|
|
25
|
+
|
|
26
|
+
- `**/challenge`**:`REVIEW_MODE` = `CODE` / `FULL`,或从 design/task 审查**自适应升级**到实现侧。
|
|
27
|
+
- `**/forge`**:Step **3.4.5** 提交前门禁(默认 **波次级频控**,见 `forge` workflow)。
|
|
28
|
+
|
|
29
|
+
## 执行形态(宿主能力)
|
|
30
|
+
|
|
31
|
+
- **有子代理**:若环境提供子代理 / Task / 并行会话等能力,**优先**启动**子代理**专职跑本 skill(与编码/导航会话隔离上下文,减少串话);**产出格式、Lens、证据规则仍以本文件为准**,子代理不得自行删减。
|
|
32
|
+
- **无子代理**:由**当前会话**按本 skill **完整**执行;**不得**以「没有子代理」为理由降低证据或跳过 Lens。
|
|
33
|
+
|
|
34
|
+
## 必读输入
|
|
35
|
+
|
|
36
|
+
1. `src/`(或仓库约定的实现根)
|
|
37
|
+
2. `{TARGET_DIR}/01_PRD.md`、`02_ARCHITECTURE_OVERVIEW.md`、`03_ADR/`、`04_SYSTEM_DESIGN/`
|
|
38
|
+
3. `{TARGET_DIR}/05_TASKS.md`
|
|
39
|
+
4. 若存在:`{TARGET_DIR}/07_CHALLENGE_REPORT.md`
|
|
40
|
+
|
|
41
|
+
缺失输入时收缩范围,并在输出中写明。
|
|
42
|
+
|
|
43
|
+
## 思维顺序(风险优先,结论回到契约)
|
|
44
|
+
|
|
45
|
+
推荐先扫:README/配置 → 入口/路由/CLI → 认证鉴权 → 核心业务/数据模型 → 管理/调试端点 → 测试/日志 → UI(如适用)。
|
|
46
|
+
|
|
47
|
+
## 审查面(Anws Review Lenses)
|
|
48
|
+
|
|
49
|
+
最终报告不强制套固定章节。按发现组织即可,但适用时必须覆盖以下 Lens;不适用则一句话说明。
|
|
50
|
+
|
|
51
|
+
### Lens 1: 契约忠实度(Contract Fidelity)
|
|
52
|
+
|
|
53
|
+
公共 API / CLI 行为 / 配置键 / 文件布局 / 错误语义是否与 PRD、ADR、System Design 一致?代码是否引入了未回流的新公共契约?
|
|
54
|
+
典型发现:`Contract Drift`、`Undocumented Contract`、`Static Verifiability Gap`。
|
|
55
|
+
|
|
56
|
+
### Lens 2: 任务兑现与交付闭合(Task Fulfillment)
|
|
57
|
+
|
|
58
|
+
`05_TASKS.md` 的输出、验收标准和边界是否有真实实现/测试/文档产物承接?Mock / Stub / Hardcode 是否有明确边界,是否可能误用于正式路径?
|
|
59
|
+
典型发现:`Task Drift`、`Acceptance Gap`、`Mock Boundary Risk`。
|
|
60
|
+
|
|
61
|
+
### Lens 3: 架构适配与复杂度健康(Architecture Fit)
|
|
62
|
+
|
|
63
|
+
模块边界、依赖方向、数据模型、状态流是否符合 Architecture / System Design?是否出现单文件堆叠、过度抽象、高耦合或难测实现?UI 只查影响可用性的结构与交互,不做纯审美扣分。
|
|
64
|
+
典型发现:`Architecture Drift`、`Complexity Risk`、`Maintainability Gap`。
|
|
65
|
+
|
|
66
|
+
### Lens 4: 静态运行风险与安全边界(Runtime Risk from Static Evidence)
|
|
67
|
+
|
|
68
|
+
从代码静态证据检查输入校验、错误路径、边界态、重复/并发、清理/回滚,以及认证入口、路由/对象/函数级鉴权、租户隔离、管理端保护、密钥/PII 泄露。
|
|
69
|
+
安全问题优先;没有直接证据时写「疑似」或「无法确认」。
|
|
70
|
+
典型发现:`Safety Gap`、`Auth Boundary Gap`、`Input/Error Path Risk`、`Sensitive Data Exposure`。
|
|
71
|
+
|
|
72
|
+
### Lens 5: 验证证据与可观测性(Verification Evidence)
|
|
73
|
+
|
|
74
|
+
测试/验证入口是否存在?核心需求与高风险点是否有最小覆盖映射?断言是否过弱或可能 false positive?日志是否能排障且不泄密?
|
|
75
|
+
覆盖结论用:`sufficient` / `basically covered` / `insufficient` / `missing` / `not applicable` / `cannot confirm`。
|
|
76
|
+
典型发现:`Test Drift`、`Foundational Test Gap`、`Observability Gap`。
|
|
77
|
+
|
|
78
|
+
### Lens 6: 回流一致性与交接证据(Backflow & Handoff)
|
|
79
|
+
|
|
80
|
+
新公共行为是否同步 README / CLI help / changelog / ADR / System Design / task 状态?导出入口、manifest、registry、安装/更新路径是否一致?交接信息是否足够?
|
|
81
|
+
典型发现:`Missing Change Backflow`、`Documentation Drift`、`Handoff Gap`。
|
|
82
|
+
|
|
83
|
+
## 输出结构(精简)
|
|
84
|
+
|
|
85
|
+
1. **总结结论**:Pass / Partial Pass / Fail / Cannot Confirm(静态意义下)。
|
|
86
|
+
2. **审查范围与静态边界**:读了什么、未读什么、故意未执行什么、哪些需人工验证。
|
|
87
|
+
3. **契约 → 代码映射摘要**:核心承诺 → 对应实现区域(短)。
|
|
88
|
+
4. **Lens 结果摘要**:每个适用 Lens 一行结论 + 证据。
|
|
89
|
+
5. **Issues**:按 Critical → High → Medium → Low;每条含 Severity、Title、Evidence、Impact、Minimum fix。
|
|
90
|
+
6. **安全 / 测试覆盖补充**:仅列高风险缺口和无法静态确认的边界。
|
|
91
|
+
|
|
92
|
+
## 纪律(输出强结论前自检)
|
|
93
|
+
|
|
94
|
+
- 是否有直接 `**path:line`**?
|
|
95
|
+
- 这是静态事实,还是在暗示运行时行为?
|
|
96
|
+
- 报的是根因还是重复症状?
|
|
97
|
+
- 判断是否锚定在 PRD/任务/ADR,而非个人偏好?
|
|
98
|
+
- 不确定时是否写成 **无法通过静态审查确认**?
|
|
99
|
+
|
|
100
|
+
## 跳过协议
|
|
101
|
+
|
|
102
|
+
若无 `src/` 或范围不适用:输出 `Code review skipped` + 原因一行;不得虚构审查结果。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
## name: concept-modeler
|
|
3
4
|
description: 当用户需求模糊、术语不清晰时使用。通过交互式追问澄清领域概念,提取实体、流程和暗物质。由 /genesis Step 1 调用。
|
|
4
|
-
---
|
|
5
5
|
|
|
6
6
|
# 领域建模师 (Domain Modeler)
|
|
7
7
|
|
|
@@ -16,11 +16,13 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
16
16
|
**这个技能是什么**: 通过与用户交互,澄清模糊需求,建立领域模型(实体、流程、暗物质)。
|
|
17
17
|
|
|
18
18
|
**何时调用**:
|
|
19
|
+
|
|
19
20
|
- `/genesis` Step 1: 需求澄清阶段
|
|
20
21
|
- 用户需求使用模糊术语("同步"、"列表"、"管理")
|
|
21
22
|
- 需要建立 Ubiquitous Language
|
|
22
23
|
|
|
23
24
|
**何时不调用**:
|
|
25
|
+
|
|
24
26
|
- 需求已经清晰、术语已定义
|
|
25
27
|
- 纯技术实现讨论(无需领域建模)
|
|
26
28
|
|
|
@@ -44,12 +46,14 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
44
46
|
> [!IMPORTANT]
|
|
45
47
|
> 你**必须**先扫描用户需求,识别以下类别的模糊点:
|
|
46
48
|
>
|
|
47
|
-
>
|
|
48
|
-
> |
|
|
49
|
+
>
|
|
50
|
+
> | 类别 | 检查问题 |
|
|
51
|
+
> | -------- | --------------------------------------------- |
|
|
49
52
|
> | **实体模糊** | "列表"是什么?`Wishlist`?`ShoppingCart`?`TodoList`? |
|
|
50
|
-
> | **动词模糊** | "同步"是单向/双向?实时/批量?失败策略?
|
|
51
|
-
> | **暗物质**
|
|
52
|
-
> | **边界模糊** | 谁能访问?数据量多大?并发要求?
|
|
53
|
+
> | **动词模糊** | "同步"是单向/双向?实时/批量?失败策略? |
|
|
54
|
+
> | **暗物质** | 用户只描述 Happy Path——错误处理?持久化?认证? |
|
|
55
|
+
> | **边界模糊** | 谁能访问?数据量多大?并发要求? |
|
|
56
|
+
>
|
|
53
57
|
|
|
54
58
|
**内部产出**: 生成候选问题队列(最多 5 个),按影响排序。**不输出队列**。
|
|
55
59
|
|
|
@@ -61,6 +65,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
61
65
|
|
|
62
66
|
> [!IMPORTANT]
|
|
63
67
|
> **追问规则**:
|
|
68
|
+
>
|
|
64
69
|
> - 最多问 **5 个问题**
|
|
65
70
|
> - 每个问题必须是**多选题**或**短回答(≤5 词)**
|
|
66
71
|
> - 每次只输出**一个问题**
|
|
@@ -95,6 +100,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
95
100
|
#### 2.3 停止条件
|
|
96
101
|
|
|
97
102
|
停止追问当:
|
|
103
|
+
|
|
98
104
|
- 所有关键模糊点已澄清
|
|
99
105
|
- 用户说 "done"、"好了"、"继续"
|
|
100
106
|
- 已问满 5 个问题
|
|
@@ -109,6 +115,7 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
109
115
|
> **每个答案接受后立即更新**,不要等所有问题结束。
|
|
110
116
|
|
|
111
117
|
**更新规则**:
|
|
118
|
+
|
|
112
119
|
1. 实体澄清 → 更新 `entities` 列表
|
|
113
120
|
2. 动词澄清 → 更新 `flows` 列表
|
|
114
121
|
3. 暗物质识别 → 更新 `missing_components` 列表
|
|
@@ -159,18 +166,13 @@ description: 当用户需求模糊、术语不清晰时使用。通过交互式
|
|
|
159
166
|
|
|
160
167
|
## 📋 完成标准
|
|
161
168
|
|
|
162
|
-
|
|
163
|
-
- ✅ 澄清了关键模糊术语(记录到 glossary)
|
|
164
|
-
- ✅ 识别了核心实体和关系
|
|
165
|
-
- ✅ 发现了用户没说的暗物质组件
|
|
166
|
-
- ✅ 领域模型保存到 `.anws/v{N}/concept_model.json`
|
|
167
|
-
- ✅ 用户确认术语理解正确
|
|
168
|
-
</completion_criteria>
|
|
169
|
+
- ✅ 澄清了关键模糊术语(记录到 glossary) - ✅ 识别了核心实体和关系 - ✅ 发现了用户没说的暗物质组件 - ✅ 领域模型保存到 `.anws/v{N}/concept_model.json` - ✅ 用户确认术语理解正确
|
|
169
170
|
|
|
170
171
|
---
|
|
171
172
|
|
|
172
173
|
## Collaboration
|
|
173
174
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
- **Before**: 用户提供的模糊需求描述
|
|
176
|
+
- **After**: `spec-writer` 基于澄清后的需求生成 PRD
|
|
177
|
+
- **Synergy**: 你的领域模型为后续架构设计提供清晰的术语基础
|
|
178
|
+
|