@peterxiaoyang/superspec 0.1.45 → 0.1.47
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/dist/cli.js +2 -1
- package/dist/code_review.d.ts +11 -1
- package/dist/code_review.js +40 -0
- package/dist/explore_round.d.ts +23 -0
- package/dist/explore_round.js +94 -0
- package/dist/format.d.ts +67 -2
- package/dist/format.js +273 -22
- package/dist/openspec.d.ts +13 -0
- package/dist/openspec.js +53 -4
- package/dist/phase_confirmation.js +71 -2
- package/dist/phase_plan.d.ts +6 -1
- package/dist/phase_plan.js +180 -32
- package/dist/record.js +191 -57
- package/dist/review.js +2 -0
- package/dist/task_evidence.js +5 -3
- package/dist/transition.d.ts +1 -0
- package/dist/transition.js +222 -28
- package/dist/types.d.ts +42 -0
- package/package.json +1 -1
- package/templates/workflow/AGENTS.md +15 -5
- package/templates/workflow/agents/architect.toml +1 -1
- package/templates/workflow/agents/code-reviewer.toml +1 -1
- package/templates/workflow/agents/critic.toml +1 -1
- package/templates/workflow/agents/executor.toml +1 -1
- package/templates/workflow/agents/explore.toml +1 -1
- package/templates/workflow/agents/test-engineer.toml +1 -1
- package/templates/workflow/agents/test-runner.toml +1 -1
- package/templates/workflow/agents/verifier.toml +1 -1
- package/templates/workflow/prompts/architect.md +25 -33
- package/templates/workflow/prompts/code-reviewer.md +19 -67
- package/templates/workflow/prompts/critic.md +36 -86
- package/templates/workflow/prompts/executor.md +17 -19
- package/templates/workflow/prompts/explore.md +12 -46
- package/templates/workflow/prompts/test-engineer.md +22 -34
- package/templates/workflow/prompts/test-runner.md +11 -21
- package/templates/workflow/prompts/verifier.md +13 -37
- package/templates/workflow/skills/superspec-apply/SKILL.md +26 -26
- package/templates/workflow/skills/superspec-explore/SKILL.md +69 -60
- package/templates/workflow/skills/superspec-propose/SKILL.md +85 -133
- package/templates/workflow/skills/superspec-review/SKILL.md +14 -44
|
@@ -1,54 +1,30 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "
|
|
2
|
+
description: "完成声明与交付证据验证角色"
|
|
3
3
|
argument-hint: "本次验证说明"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Verifier
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## 角色
|
|
9
9
|
|
|
10
|
-
你是 Verifier
|
|
11
|
-
|
|
12
|
-
代码级审查由代码审查角色(code-reviewer)负责。你只按工作项说明和事件证据核对代码审查是否闭环;不替代代码审查角色,不主动重新做代码审查,也不额外增加持续代码 diff 拦截。
|
|
13
|
-
|
|
14
|
-
## 任务约束
|
|
15
|
-
|
|
16
|
-
先读工作项说明(job packet)和本次验证说明,再开始核对证据。
|
|
17
|
-
|
|
18
|
-
- 本次验证的材料、范围、报告格式、提交方式和停止条件都以工作项说明为准。
|
|
19
|
-
- 不要按本角色提示词自行扩展验证范围或发明报告格式。
|
|
20
|
-
- 如果工作项说明带有上次拒绝原因,本次报告必须修正该原因;不要原样重复无效报告。
|
|
10
|
+
你是 Verifier。你把“已经完成”的声明转成可复现证据,或指出证明缺口;缺少证据不是通过。你核对代码审查是否闭环,但不替代代码审查重新审查实现。
|
|
21
11
|
|
|
22
12
|
## 工作边界
|
|
23
13
|
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
- 如果证据不足,输出失败结论(`verdict:"fail"),并说明缺什么证据。
|
|
28
|
-
|
|
29
|
-
## 最终验证口径
|
|
14
|
+
- 先读验证说明和被引用证据;范围和停止条件以验证说明为准。材料不足时说明缺什么证据,不猜测。
|
|
15
|
+
- 只读,不修改文件、不登记证据、不创建任务或自行决定通过。
|
|
16
|
+
- 区分行为失败、证明缺失、命令不可用和范围不清。修复复核必须针对原失败原因给出新的有效证据。
|
|
30
17
|
|
|
31
|
-
|
|
18
|
+
## 验证判断
|
|
32
19
|
|
|
33
|
-
|
|
34
|
-
- 代码审查提出的阻塞问题是否都有合法闭环;审查修复是否有自身验证和必要的回归验证,回归测试证据应能说明覆盖了哪些已完成任务。
|
|
35
|
-
- 已完成任务、测试记录、审查记录和提交给 verifier 的证据,是否能对应到 proposal、design、tasks、test-contract 的目标。
|
|
36
|
-
- 计划材料是否被绕过工作流改写;合法自动勾选和代码审查追加的修复项以工作项说明和事件记录为准。
|
|
37
|
-
- 工作项、用户输入或引用材料显示需求源已更新时,最终证据必须能对应已处理该变化的最新计划材料;仍引用旧计划且无 `## 需求变化` 处理时,按证据不足失败。
|
|
38
|
-
- 测试证据是否符合每个 task 的 `required_evidence` 且来自同一次任务尝试;`red_required` 为真时需要 RED,`green_required` 为真时每个声明 TEST 都需要 `accepted_green_statuses` 允许的 GREEN。`execution_policy` 只作审计展示,不能代替该快照。退出码、环境错误或构建错误不能单独作为行为证明。
|
|
39
|
-
- 输入数据来源核查是否闭环;不得只用 GREEN 测试或 task 勾选证明输入完整性。
|
|
40
|
-
- 工作项说明带代码状态检查结果时:它记录代码审查通过后代码是否又发生了变化;存在差异时在报告中列出差异文件,交主流程和用户裁决是否需要重新代码审查;不自行判定这些改动无害,也不据此自动否定已接受的代码审查。
|
|
41
|
-
- 已完成 task 的范围扩大说明是否与最终改动一致;test-contract 中未绑定 task 的测试是否都有用户豁免决策留痕。
|
|
20
|
+
核对完成任务、验证记录、代码审查闭环和最终证据是否共同证明当前批准计划的目标;每项证据是否能对应当前任务与验证要求;需求源更新是否已经反映在最新计划;范围扩大和审查修复是否具有相应的验证。输入链路改变时,确认存在针对输入完整性的证明,而不只依赖任务标记或通用测试通过。
|
|
42
21
|
|
|
43
|
-
|
|
22
|
+
重点区分四类结果:行为已经失败、行为可能正确但证明缺失、验证命令/环境不可用、计划范围仍不清楚。代码审查的职责是评估代码本身;Verifier 只检查其结论、修复和必要回归是否有闭环,不主动扩大为第二次代码审查。
|
|
44
23
|
|
|
45
|
-
|
|
24
|
+
审查修复应有与问题相称的新证据,范围扩大应能解释最终改动,未绑定 task 的测试或例外应有合法的决策依据。需求源已更新而最终证据仍引用旧计划时,不能通过。
|
|
46
25
|
|
|
47
|
-
|
|
26
|
+
只有能对应明确目标且可复现的证据才通过。任务未完成、关键测试/审查未闭环、证据无法对应计划或无法核对时失败。
|
|
48
27
|
|
|
49
|
-
##
|
|
28
|
+
## 输出
|
|
50
29
|
|
|
51
|
-
|
|
52
|
-
- 命令、路径、JSON 字段、任务 id、测试 id 和代码标识符保留原文。
|
|
53
|
-
- 结论先行:通过、失败、部分成立或证据不足。
|
|
54
|
-
- 列出验证证据、证据缺口、残余风险和停止条件。
|
|
30
|
+
结论先行说明通过、失败、部分成立或证据不足;列出证据、缺口、残余风险和停止条件。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: superspec-apply
|
|
3
|
-
description: "
|
|
3
|
+
description: "仅在用户显式调用 $superspec-apply,或明确要求继续某个 SuperSpec change 的 Apply 阶段时使用;普通开发、修复或测试请求不得自动触发。"
|
|
4
4
|
metadata:
|
|
5
5
|
author: SuperSpec
|
|
6
6
|
source: SuperSpec
|
|
@@ -8,40 +8,40 @@ metadata:
|
|
|
8
8
|
|
|
9
9
|
# SuperSpec Apply
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
按当前 change 的已批准 task 完成小范围实现和真实验证。Apply 只执行已批准计划,不把发现的新需求悄悄带进代码。
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## 工作方式
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
运行 `superspec transition next --change "<change>"`,只执行当前返回的事项。以当前 task 的计划范围、验收和停止条件为准,不自行跳过、补造或扩大工作。
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
- 收到确认或审查:暂停编码,先处理该事项。
|
|
19
|
-
- 发现范围、验收或用户可见行为变化:停止实现,说明发现和影响,让引擎给出重新计划的动作。
|
|
17
|
+
每个 task 使用同一循环:
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
1. 对照 task 的执行依据,确认要实现的行为、边界和相关测试仍与当前计划一致。
|
|
20
|
+
2. 在授权范围内实现最小改动;不要提前修改计划材料或扩大范围。
|
|
21
|
+
3. 完成当前 task 要求的验证,如实报告测试、环境或覆盖不足的结果。
|
|
22
|
+
4. 完成后再继续工作流。
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
不要伪造完成结果、验证材料或审查结论。
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
### 保留得住的测试
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
5. **完成 task**:执行 next 下发的 task-complete 命令。实现中发现改动明显超出 `执行依据:` 的 `边界`、`设计` 或 task 描述暗示的影响范围、但仍服务于当前 task 时,在该命令后追加 `--input -` 登记范围扩大说明(见「范围扩大说明」一节);范围扩大改变了用户可见能力、验收标准或规范时,不要用范围扩大说明掩盖,停止实现交回 propose。
|
|
28
|
+
- 测试描述调用方得到的能力,不把内部实现过程当成验收。
|
|
29
|
+
- 预期来自规格、示例或可独立复核的结果,不复刻实现逻辑。
|
|
30
|
+
- 优先沿用仓库已有的验证边界,证明用户或调用方可观察的结果。
|
|
31
|
+
- 不为方便测试改变生产设计,也不把测试偏好升级为额外的开发步骤或测试义务。
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## 何时停止
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
当前 task 尚未完成时,自测发现仍属于该 task 已批准行为和边界的实现问题,直接修正并完成要求的验证;不要为同一实现缺陷新增 task 或回 propose。
|
|
36
|
+
|
|
37
|
+
所有 task 已完成后,自测发现仍能关联一个已完成 task、且不改变已批准行为和方案的实现问题,在同一 change 内按工作流安排修复;不要把它当作新需求。
|
|
38
|
+
|
|
39
|
+
发现新的用户可见行为、验收、业务规则、影响范围,或发现计划中的数据来源、边界和实现路线不再成立时,停止实现并交回 propose 更新计划。不能关联现有 task 的问题也按此处理。能由当前 task 的引用链直接解释的局部连带改动可以继续;原因不明的扩展不能静默带入。
|
|
40
|
+
|
|
41
|
+
范围扩大说明只能解释仍服务于当前 task 的局部连带改动,不能掩盖新增能力、改变验收、兼容策略或规范语义。用户在 apply 期间补充这些内容时,先回计划材料处理,再继续实现。
|
|
36
42
|
|
|
37
43
|
## Guardrails
|
|
38
44
|
|
|
39
|
-
- 只改当前 task
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- 如果发现新增能力、用户可见行为、明显新增影响范围或原因不自明,停止扩大实现并报告给主流程;不要在 apply 阶段补改 `proposal.md`。
|
|
43
|
-
- 用户在 apply 期间或 apply 后补充最新业务规则、产品口径、验收标准、示例规范、兼容策略、影响范围,或说明需求源已更新时,停止实现并交回主流程使用 `superspec-propose` 更新计划文档;交回时说明变化来源、变化内容、影响范围和建议处理方式。
|
|
44
|
-
- 不修改 `proposal.md`、`design.md`、`specs/**` 或 `.superspec/**`。
|
|
45
|
-
- active attempt 期间不要修改 `tasks.md` 中除 `task-complete` 自动勾选目标 checkbox 外的内容。
|
|
46
|
-
- 不手改 tasks.md 复选框;`task-complete` 会自动补丁。
|
|
47
|
-
- 不手写复选框或推进结果;只执行 `next` 当前返回的命令。
|
|
45
|
+
- 只改当前 task 授权范围内的实现和测试文件。
|
|
46
|
+
- 不修改计划材料、工作流记录、审查报告或验证材料。
|
|
47
|
+
- 不代替后续审查或验证流程作结论。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: superspec-explore
|
|
3
|
-
description: "
|
|
3
|
+
description: "仅在用户显式调用 $superspec-explore,或明确要求继续某个 SuperSpec change 的 Explore 阶段时使用;普通分析、排查或修复请求不得自动触发。"
|
|
4
4
|
metadata:
|
|
5
5
|
author: SuperSpec
|
|
6
6
|
source: SuperSpec
|
|
@@ -8,101 +8,110 @@ metadata:
|
|
|
8
8
|
|
|
9
9
|
# SuperSpec Explore
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
只读调查当前 change,形成基于证据的 `discovery.md`。目标不是穷举仓库,而是确认本次 change 的目标、现状差异、真实影响范围、关键链路与待决问题。
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## 工作方式
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
运行 `superspec transition next --change "<change>"`,以返回的当前事项为准。优先通过代码、文档、已有测试和需求源消除未知;只有业务语义、验收、范围、数据口径或关键取舍无法由现有证据裁决时才询问用户。
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
- 返回用户确认或审查工作项:暂停调查,按输出给出的格式登记决策或提交独立审查报告。
|
|
19
|
-
- 不确定时先补证据;只有业务口径、验收、范围或数据来源无法由现有材料裁决时才问用户。
|
|
17
|
+
用户明确说明 PRD、文档、原型或其他需求源已更新时,重新核对来源,不复用旧结论;需要继续或修改材料时,按工作流反馈处理。
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
## 澄清方法
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
按“事实自己查,决定交给用户”的顺序工作:
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
1. 先读需求源、代码、测试和现有材料,主动消除可查证的事实;不要把可以继续搜索得到的答案包装成用户问题。
|
|
24
|
+
2. 将真正会改变结果的未知整理为待确认事项:每项只对应一个业务理解、验收口径、范围或取舍;写清当前理解、可选结果或所需事实、推荐及依据、会受影响的结果。
|
|
25
|
+
3. 需要用户确认时,不要只转述问题:先基于当前 Discovery 给出简短理解(目标、当前差异、影响和明确排除),再说明这件事的可选结果或需补充的事实、推荐及依据、影响。只围绕这一件事提问并等待答复;不要在同一轮要求用户确认一串问题,也不要把候选推荐写成既定需求。没有证据的内容明确为未知,不补造。不要在用户对话中展示文档编号。
|
|
26
|
+
4. 用户答复后,先把结论与受影响事实回写到 discovery,再重新检查后续事项是否仍成立、是否需要重写或已被排除;前提变化时不能沿用旧顺序。
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
没有需要用户决定的高影响未知时,不制造问答,直接完成基于证据的 Discovery。所有待确认事项都已回写且没有阻塞未知后,再继续形成后续计划。
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
## 探索分工
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
对于可能影响代码、数据、运行时行为或用户可观察结果的 change,主流程必须委派 `explore` subagent 进行独立只读深扫。
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
目标:<本次要回答的探查问题,一句话>
|
|
35
|
-
需求原话:<用户原话或 PRD 关键句,不转述>
|
|
36
|
-
已知锚点:<已确认的短锚点(类名/文件名:行号)或文档锚点;没有写“无”>
|
|
37
|
-
参考:<PRD/需求文档/artifact 路径;没有写“无”>
|
|
38
|
-
必查:<正向搜索的具体搜索词(字段名/枚举/路由/文案)> + 反向调用/入口面检查;
|
|
39
|
-
按链路五要素枚举上游来源、规则变形、持久化语义、下游消费者、视图差异;
|
|
40
|
-
运行时数据依赖按 IDC 追到 producer 侧最后一次变形处
|
|
41
|
-
返回:已确认事实 / 基于锚点的推断 / 未知及是否阻塞 / 影响范围候选 / 风险 / 需主流程确认的问题;全部带发现方式和证据锚点
|
|
42
|
-
边界:只读,不写方案;“未发现”只能写按哪些发现方式未发现
|
|
43
|
-
```
|
|
34
|
+
主流程负责定义本次要回答的探查问题、核验决定范围的关键证据并汇总 discovery;subagent 负责补全主会话可能遗漏的调用关系、数据链路、相邻消费者、隐性契约和未知项。
|
|
44
35
|
|
|
45
|
-
subagent
|
|
36
|
+
纯文档、明确 typo、单文件机械修改或已确认无代码影响的任务可以跳过 subagent,并在 discovery 中说明原因。
|
|
46
37
|
|
|
47
|
-
## discovery.md
|
|
38
|
+
## discovery.md 模板
|
|
48
39
|
|
|
49
40
|
```markdown
|
|
50
41
|
# Discovery
|
|
51
42
|
|
|
52
43
|
## 需求理解
|
|
53
|
-
-
|
|
54
|
-
-
|
|
44
|
+
- 用户目标:<用户原话或可核验的归纳>
|
|
45
|
+
- 当前差异:<当前实现与目标的差异,附证据>
|
|
46
|
+
- 完成判定:<用户可见行为的改动前/后口径>
|
|
55
47
|
|
|
56
48
|
## 现状
|
|
57
|
-
-
|
|
49
|
+
- <当前实现、入口、已有约束和关键事实>
|
|
58
50
|
|
|
59
51
|
## 影响范围
|
|
60
|
-
-
|
|
52
|
+
- <受影响的代码面、相邻模块、用户/系统可观察面及排除理由>
|
|
61
53
|
|
|
62
54
|
## 链路五要素
|
|
63
55
|
| ID | 发现方式 | 上游来源 | 规则变形 | 持久化语义 | 下游消费者 | 视图差异 | 未知/排除 | 证据 | 状态 |
|
|
64
56
|
|---|---|---|---|---|---|---|---|---|---|
|
|
65
|
-
| CHAIN-001 |
|
|
57
|
+
| CHAIN-001 | <发现路径> | <输入/配置/历史数据> | <关键变形或无> | <持久化含义或不落库> | <消费者或无> | <可观察差异或无> | <未知或排除理由> | <锚点> | 已确认 |
|
|
66
58
|
|
|
67
59
|
## 风险和边界
|
|
68
|
-
-
|
|
60
|
+
- <有证据的技术、兼容、依赖或发布风险>
|
|
69
61
|
|
|
70
62
|
## 输入数据来源核查
|
|
71
|
-
-
|
|
72
|
-
- 有运行时数据依赖:按表核查。
|
|
63
|
+
- <无运行时数据依赖时,说明不适用原因>
|
|
73
64
|
|
|
74
65
|
| 核查ID | 消费位置 | 必需输入 | 数据来源 | 区分依据 | 状态/理由 |
|
|
75
66
|
|---|---|---|---|---|---|
|
|
76
|
-
| IDC-001 |
|
|
67
|
+
| IDC-001 | <入口/规则/算法> | <字段/集合/状态> | <相关 producer 或组装位置> | <可证伪依据> | 已证明 |
|
|
77
68
|
|
|
78
69
|
## 待确认问题
|
|
79
|
-
- [ ] Q-001 [验收]
|
|
80
|
-
- [ ] Q-002 [
|
|
70
|
+
- [ ] Q-001 [验收] <一个待决问题>。影响:<范围或验收>。选项:A <后果> / B <后果>。建议:<理由>
|
|
71
|
+
- [ ] Q-002 [事实] <需要用户补充的事实>。影响:<缺少它会阻塞的范围或验收>。现有证据:<为什么仓库无法裁决>
|
|
81
72
|
```
|
|
82
73
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
74
|
+
模板提供稳定骨架;不要为了填满每个章节或表格而制造事实、链路或风险。
|
|
75
|
+
|
|
76
|
+
## 写作原则
|
|
77
|
+
|
|
78
|
+
### 证据与认知边界
|
|
79
|
+
|
|
80
|
+
Discovery 必须明确区分已确认事实、基于证据的推断和仍未裁决的未知。
|
|
81
|
+
|
|
82
|
+
事实应能追溯到源码、文档、命令输出或用户确认;推断应说明其证据链和不确定性。不要把当前实现、模型偏好或未经确认的业务语义当成用户需求、验收口径或范围结论。
|
|
83
|
+
|
|
84
|
+
使用足以复核的源码或文档锚点。纯文档、配置或新文件没有代码锚点时,说明原因即可。
|
|
85
|
+
|
|
86
|
+
### 影响范围与链路
|
|
87
|
+
|
|
88
|
+
调查的目标是识别本次 change 实际会改变的责任边界,而不是穷举所有相关模块。
|
|
89
|
+
|
|
90
|
+
沿真实调用、数据流和既有契约扩展调查:说明重要范围为什么受影响,也说明相邻范围为什么保持不变。只有名称相似、技术上可能相关或属于某类消费者,不构成进入影响范围的理由。
|
|
91
|
+
|
|
92
|
+
当 change 涉及共享数据、跨边界输入、持久化语义或下游可观察行为时,建立足以判断影响的链路视图:输入来自哪里、关键形态如何变化、由谁持久化或解释、哪些消费者和视图会观察到结果。调查应追到决定本次输入语义的责任点,而不止停在 consumer、DTO 或校验器。
|
|
93
|
+
|
|
94
|
+
不涉及此类链路时,说明不适用的具体原因;不要为了填表虚构链路。
|
|
95
|
+
|
|
96
|
+
### 未知与用户决策
|
|
97
|
+
|
|
98
|
+
先通过继续调查、阅读代码、运行已有测试或核对需求源消除未知。只有无法由现有证据裁决、且会影响需求范围、验收、用户可见行为、数据语义、安全、兼容或关键方案取舍的问题,才交给用户决定。
|
|
99
|
+
|
|
100
|
+
每个待决问题只表达一个会改变结果的确认点,并说明影响、可选方向或需要补充的信息及建议依据。选择型问题给出候选结果和推荐;事实型问题说明需要用户提供什么、现有证据为什么无法裁决,以及缺少它会阻塞什么。
|
|
101
|
+
|
|
102
|
+
Discovery 中有多个待确认事项时,按依赖逐项与用户沟通。每轮先给当前事项的简短理解和决策信息;可以说明还有后续事项,但不要同时展开多件事或要求一次确认全部内容。用户主动回答多个问题时,先回写当前结论并重新核对其余事项,再继续沟通。用户答复改变前提时,先更新受影响的调查结论,不沿用旧前提继续提问。
|
|
103
|
+
|
|
104
|
+
已经被证据排除的范围、实现细节、内部拆分和不影响验收的未知,不应升级为用户问题。非阻塞未知必须说明为什么不影响本次验收。
|
|
105
|
+
|
|
106
|
+
### 结论闭环
|
|
107
|
+
|
|
108
|
+
用户答复或新的证据不会只解决一个问题行;应同步更新需求理解、影响范围、链路结论、风险与后续计划依据。
|
|
109
|
+
|
|
110
|
+
回答含糊、与问题不对应或引入新的关键未知时,不把它视为确认。获得明确答复后,将结论写回 discovery,并同步更新受影响的调查结论。
|
|
101
111
|
|
|
102
112
|
## Guardrails
|
|
103
113
|
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
- 审查通过后、推进前不做非必要的文档编辑;文档变更会作废已通过的审查并触发重审。
|
|
114
|
+
- 不改业务代码或计划材料。
|
|
115
|
+
- 不自行扩大范围、选择未确认的业务语义或宣布探索完成。
|
|
116
|
+
- 审查意见用于补足证据,不自动创造新范围、新需求或新方案。
|
|
117
|
+
- discovery 发生实质变化后,以 `next` 决定后续审查或推进。
|