@peterxiaoyang/superspec 0.1.4 → 0.1.6
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/adapters/codex/agents/architect.toml +4 -148
- package/adapters/codex/agents/code-reviewer.toml +4 -166
- package/adapters/codex/agents/critic.toml +5 -106
- package/adapters/codex/agents/executor.toml +13 -0
- package/adapters/codex/agents/test-engineer.toml +4 -154
- package/adapters/codex/agents/test-runner.toml +13 -0
- package/adapters/codex/agents/verifier.toml +4 -110
- package/adapters/codex/install-map.json +20 -0
- package/dist/src/apply_worker_chain.d.ts +57 -0
- package/dist/src/apply_worker_chain.js +1188 -0
- package/dist/src/cli.js +13 -0
- package/dist/src/cli_args.d.ts +13 -1
- package/dist/src/cli_args.js +237 -12
- package/dist/src/core.d.ts +1 -0
- package/dist/src/core.js +1 -0
- package/dist/src/evidence.js +152 -0
- package/dist/src/gates.d.ts +2 -1
- package/dist/src/gates.js +275 -21
- package/dist/src/i18n.js +4 -3
- package/dist/src/install_engine.d.ts +17 -0
- package/dist/src/install_engine.js +125 -2
- package/dist/src/packet_measure.d.ts +43 -0
- package/dist/src/packet_measure.js +417 -0
- package/dist/src/packet_render.d.ts +4 -0
- package/dist/src/packet_render.js +1623 -0
- package/dist/src/packet_schema.d.ts +56 -0
- package/dist/src/packet_schema.js +1 -0
- package/dist/src/project_init.js +7 -49
- package/dist/src/tasks.d.ts +10 -0
- package/dist/src/tasks.js +86 -0
- package/dist/src/util.d.ts +11 -3
- package/dist/src/util.js +27 -6
- package/package.json +2 -2
- package/schemas/install-manifest.schema.json +17 -0
- package/templates/workflow/prompts/architect.md +16 -109
- package/templates/workflow/prompts/code-reviewer.md +20 -134
- package/templates/workflow/prompts/critic.md +18 -75
- package/templates/workflow/prompts/executor.md +32 -0
- package/templates/workflow/prompts/test-engineer.md +16 -126
- package/templates/workflow/prompts/test-runner.md +33 -0
- package/templates/workflow/prompts/verifier.md +20 -77
- package/templates/workflow/skills/superspec-apply/SKILL.md +102 -78
- package/templates/workflow/skills/superspec-archive/SKILL.md +41 -37
- package/templates/workflow/skills/superspec-explore/SKILL.md +63 -77
- package/templates/workflow/skills/superspec-propose/SKILL.md +64 -85
- package/templates/workflow/skills/superspec-review/SKILL.md +76 -233
|
@@ -10,85 +10,109 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
## 语言规则 / Language
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- 保留命令、路径、JSON 字段、gate 名、task/test id、代码标识符和外部 API 名称的原文。
|
|
15
|
-
- 当 OpenSpec 模板要求固定标题或字段时,保留模板结构,只将正文内容写成中文。
|
|
16
|
-
- 对话窗口里的解释、总结、提问和下一步说明必须使用中文;除命令、路径、字段名、代码标识符外,不要夹带英文说明词。
|
|
17
|
-
- 对话窗口、AskUserQuestion 文案、进度更新和最终总结不得裸露内部证据种类、字段名或 reason code;用户确认记录、审查问题记录、审查轮次编号、问题唯一标识等都只用中文业务说法。原始协议名只允许写在证据 JSON、代码、测试、精确命令输出或用户明确要求的诊断片段中。
|
|
18
|
-
- 本 skill 文档中的内部协议名只用于落盘证据或运行 guard;写给用户时必须先翻译成中文业务动作,例如“记录用户确认”“记录审查问题”“完成最终审查判断”。
|
|
13
|
+
- 默认使用简体中文写人类可读内容;命令、路径、字段名、gate 名、task/test id、代码标识符保留原文。
|
|
19
14
|
- 用户可见文案不得使用“裁决”描述用户动作;统一说“确认”“范围取舍”“处理方式选择”或“用户确认记录”。
|
|
20
|
-
-
|
|
21
|
-
-
|
|
15
|
+
- 不把内部证据种类、reason code、JSON 字段大全直接转述给用户;需要诊断时才引用原文。
|
|
16
|
+
- 普通 workflow 命令使用 `--format agent`;`--format json` 只用于诊断,不作为默认上下文。
|
|
22
17
|
|
|
23
18
|
## 命令执行 / Shell
|
|
24
19
|
|
|
25
|
-
- Windows PowerShell
|
|
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
|
-
|
|
20
|
+
- Windows PowerShell 中使用 `.cmd` shim:`superspec.cmd ...`、`openspec.cmd ...`;不要运行 `superspec.ps1` 或 `openspec.ps1`。
|
|
21
|
+
- 其他 shell 使用文档中的 `superspec ...`、`openspec ...` 命令。
|
|
22
|
+
|
|
23
|
+
## 阶段职责
|
|
24
|
+
|
|
25
|
+
Apply 按 OpenSpec tasks 执行实现,负责 RED/GREEN 证据、任务勾选和 review request-changes 后的 reopen 修复。不扩大范围,不改 proposal package 语义。
|
|
26
|
+
|
|
27
|
+
## 第一条必跑命令
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
superspec guard workflow-packet --change "<change>" --gate apply_ready --format agent
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
遇到任何 guard `block` 就停止。未 allowed 前不要编辑实现。
|
|
34
|
+
|
|
35
|
+
## OpenSpec 边界
|
|
36
|
+
|
|
37
|
+
- 直接使用 OpenSpec CLI surface,不读取 repo-local `openspec-*` skill 文本。
|
|
38
|
+
- task list、`contextFiles`、progress 和 dynamic instruction 来自:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
openspec instructions apply --change "<change>" --json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
不要自行发明 task list,也不要跳过 OpenSpec 返回的 context files。
|
|
45
|
+
|
|
46
|
+
## Task Guard 边界
|
|
47
|
+
|
|
48
|
+
实现编辑前读取 task packet:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
superspec guard workflow-packet --change "<change>" --gate task_edit --task-id "<task-id>" --format agent
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
勾选 task 前读取 completion packet:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
superspec guard workflow-packet --change "<change>" --gate task_complete --task-id "<task-id>" --format agent
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`task_edit` 未 allowed 不得编辑实现;`task_complete` 未 allowed 不得把 checkbox 改成 done。
|
|
61
|
+
|
|
62
|
+
## Reopen 边界
|
|
63
|
+
|
|
64
|
+
如果 review 给出 `request_changes_route:"reopen_tasks"`,先生成完整 reopen package,再检查:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
superspec guard workflow-packet --change "<change>" --gate task_reopen --task-id "<task-id>" --format agent
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
只有 `task_reopen` allowed 后,才允许把目标 task 从 checked 改回 unchecked 并重新 RED/GREEN。修完后写 `task_reopen_resolved`,再重新进入 review。若 route 是 `change_update`,停止 apply 并回 propose/change update。
|
|
71
|
+
|
|
72
|
+
## 用户确认边界
|
|
73
|
+
|
|
74
|
+
- apply isolation 和 execution mode 必须等待明确选择。
|
|
75
|
+
- 分支状态、dirty worktree、scope expands 或需要改变 task scope 时必须停止并确认。
|
|
76
|
+
- 不要使用默认值、历史偏好或沉默作为确认。
|
|
77
|
+
|
|
78
|
+
## Native Subagent 边界
|
|
79
|
+
|
|
80
|
+
Apply 主流程负责 evidence、审核接收、task checkbox 和 `task_complete`;worker report 只是 candidate。repo-local native agents 必须来自 `.codex/agents/*.toml` 与 `.codex/prompts/*.md`,不能由主线程自审替代。
|
|
81
|
+
|
|
82
|
+
可选 RED/characterization 测试 worker:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
superspec guard apply-test-packet --change "<change>" --task-id "<task-id>" --test-id "<test-id>" --phase red --format prompt
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
使用 `.codex/agents/test-runner.toml` / `.codex/prompts/test-runner.md` 执行 packet 指定命令。主线程审查 test-runner report 和 raw transcript,materialize 为 pinned refs 后,才写正式 `test_run` evidence。
|
|
89
|
+
|
|
90
|
+
可选 executor-worker chain:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
superspec guard apply-executor-packet --change "<change>" --task-id "<task-id>" --apply-worker-chain-ref "<active-chain-ref>" --format prompt
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
使用 `.codex/agents/executor.toml` / `.codex/prompts/executor.md`。先记录 packet 的 `chain_activation_template` 为 active `apply_worker_chain` evidence;缺 active marker 不得 spawn executor。executor 只能改 packet 声明的 implementation write scope,不能写正式 evidence、不能改 task checkbox、不能做 review/verification。
|
|
97
|
+
|
|
98
|
+
executor 返回后先 materialize executor report pinned ref,再生成 task-level review:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
superspec guard apply-code-review-packet --change "<change>" --task-id "<task-id>" --executor-report-ref "<ref>" --format prompt
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
用 `.codex/agents/code-reviewer.toml` 检查明显缺陷、scope/protected paths、executor report 与 diff 一致性、test/invariant mapping 和 suggested GREEN checks。code-reviewer report 不是 correctness proof。
|
|
105
|
+
|
|
106
|
+
code-review 审核通过后,GREEN 只走同一 executor-worker chain:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
superspec guard apply-test-packet --change "<change>" --task-id "<task-id>" --test-id "<test-id>" --phase green --task-code-review-report-ref "<ref>" --format prompt
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
GREEN report 经主线程审核通过并登记为正式 evidence 后,生成 post-GREEN verification:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
superspec guard apply-verify-packet --change "<change>" --task-id "<task-id>" --executor-report-ref "<ref>" --task-code-review-report-ref "<ref>" --green-test-run-evidence-ref "<ref>" --red-test-run-evidence-ref "<ref>" --format prompt
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
用 `.codex/agents/verifier.toml` 检查 RED/characterization -> executor -> code-review -> GREEN -> current worktree 的证据链和 freshness。verifier report 经主线程审核通过后写 closed `apply_worker_chain` evidence,再运行 `task_complete`。中途转串行 fallback 前,先写 abandoned `apply_worker_chain` evidence,并保留恢复或 serial takeover baseline proof。
|
|
@@ -10,52 +10,56 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
## 语言规则 / Language
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- 保留命令、路径、JSON 字段、gate 名、task/test id、代码标识符和外部 API 名称的原文。
|
|
15
|
-
- 当 OpenSpec 模板要求固定标题或字段时,保留模板结构,只将正文内容写成中文。
|
|
16
|
-
- 对话窗口里的解释、确认、总结和下一步说明必须使用中文;除命令、路径、字段名、代码标识符外,不要夹带英文说明词。
|
|
17
|
-
- 对话窗口、AskUserQuestion 文案、进度更新和最终总结不得裸露内部证据种类、字段名或 reason code;用户确认记录、审查问题记录、审查轮次编号、问题唯一标识等都只用中文业务说法。原始协议名只允许写在证据 JSON、代码、测试、精确命令输出或用户明确要求的诊断片段中。
|
|
18
|
-
- 本 skill 文档中的内部协议名只用于落盘证据或运行 guard;写给用户时必须先翻译成中文业务动作,例如“记录用户确认”“记录审查问题”“完成最终审查判断”。
|
|
13
|
+
- 默认使用简体中文写人类可读内容;命令、路径、字段名、gate 名、task/test id、代码标识符保留原文。
|
|
19
14
|
- 用户可见文案不得使用“裁决”描述用户动作;统一说“确认”“范围取舍”“处理方式选择”或“用户确认记录”。
|
|
20
|
-
-
|
|
21
|
-
-
|
|
15
|
+
- 不把内部证据种类、reason code、JSON 字段大全直接转述给用户;需要诊断时才引用原文。
|
|
16
|
+
- 普通 workflow 命令使用 `--format agent`;`--format json` 只用于诊断,不作为默认上下文。
|
|
22
17
|
|
|
23
18
|
## 命令执行 / Shell
|
|
24
19
|
|
|
25
|
-
- Windows PowerShell
|
|
26
|
-
-
|
|
20
|
+
- Windows PowerShell 中使用 `.cmd` shim:`superspec.cmd ...`、`openspec.cmd ...`;不要运行 `superspec.ps1` 或 `openspec.ps1`。
|
|
21
|
+
- 其他 shell 使用文档中的 `superspec ...`、`openspec ...` 命令。
|
|
27
22
|
|
|
28
|
-
##
|
|
23
|
+
## 阶段职责
|
|
29
24
|
|
|
30
|
-
|
|
31
|
-
- 主流程默认只读取 guard decision、archive preservation 摘要、OpenSpec archive 输出摘要,以及最终验证 archive 结果所需的最小 manifest 信息。
|
|
32
|
-
- raw log、长报告和历史 superseded evidence 默认只作为引用、hash 或摘要保留;不要把全文复制进对话上下文或新的 evidence。
|
|
25
|
+
Archive 在 `review_complete` allowed 后收尾:确认 archive readiness、保全 `.superspec` 证据快照、运行 OpenSpec archive,并验证归档后的 preservation。
|
|
33
26
|
|
|
34
|
-
|
|
27
|
+
## 第一条必跑命令
|
|
35
28
|
|
|
36
|
-
|
|
29
|
+
```text
|
|
30
|
+
superspec guard workflow-packet --change "<change>" --gate archive_ready --format agent
|
|
31
|
+
```
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
- Archive 仍是 native `openspec archive`:它会移动 change、**更新 main specs(delta->main sync)**,并默认 **validates**。当前 SuperSpec v1 固定使用 `openspec archive -y "<change>"`,不暴露 `--skip-specs` 分支,且不允许 `--no-validate`。
|
|
40
|
-
- SuperSpec 只检查 `archive_ready` 和 archived sidecar preservation;不重新实现移动、spec sync 或 validation。
|
|
41
|
-
- preservation manifest 必须覆盖 `.superspec/artifacts/business-invariants.md`、`.superspec/artifacts/test-contract.md`、`.superspec/evidence/invariants/`、`.superspec/evidence/test-contract/`、RED/GREEN evidence、review/verification evidence,以及 archive evidence 本身。
|
|
42
|
-
- v1 archive control 通过显式 guard checks 和 preservation verification 执行。
|
|
33
|
+
遇到任何 guard `block` 就停止,不归档。
|
|
43
34
|
|
|
44
|
-
##
|
|
35
|
+
## OpenSpec 边界
|
|
45
36
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
superspec guard check-archive-ready --change "<change>" --format agent
|
|
50
|
-
```
|
|
51
|
-
生成的 manifest 是 archive 前证据快照,必须能追踪 business-invariants、test-contract 和对应 invariant review evidence 的 sha256。
|
|
52
|
-
3. 运行 native OpenSpec archive(移动 change、同步 delta->main specs、执行 validation):
|
|
53
|
-
```text
|
|
54
|
-
openspec archive -y "<change>"
|
|
55
|
-
```
|
|
56
|
-
4. 根据 manifest 验证 archived `.superspec/` preservation:
|
|
57
|
-
```text
|
|
58
|
-
superspec guard check-archived --change "<change>" --format agent
|
|
59
|
-
```
|
|
37
|
+
- 直接使用 OpenSpec CLI surface,不读取 repo-local `openspec-*` skill 文本。
|
|
38
|
+
- 归档动作使用 native OpenSpec CLI;SuperSpec 不重新实现移动、spec sync 或 validation。
|
|
39
|
+
- 当前 v1 固定使用 `openspec archive -y "<change>"`,不暴露 `--no-validate` 或 skip-specs 分支。
|
|
60
40
|
|
|
61
|
-
|
|
41
|
+
## 用户确认边界
|
|
42
|
+
|
|
43
|
+
`archive_ready` 最终确认必须等待明确选择。若 change 不应同步 specs,先回 propose/change update 调整方案,不在 archive 阶段跳过。
|
|
44
|
+
|
|
45
|
+
## 执行步骤
|
|
46
|
+
|
|
47
|
+
确认后运行会写 preservation manifest 的 readiness check:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
superspec guard check-archive-ready --change "<change>" --format agent
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
然后运行 OpenSpec archive:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
openspec archive -y "<change>"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
最后验证 archived sidecar preservation:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
superspec guard check-archived --change "<change>" --format agent
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`.superspec/artifacts/business-invariants.md`、`.superspec/artifacts/test-contract.md`、review/verification evidence、RED/GREEN evidence 和 archive evidence 必须能从 preservation manifest 追溯。
|
|
@@ -10,84 +10,70 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
## 语言规则 / Language
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- 保留命令、路径、JSON 字段、gate 名、task/test id、代码标识符和外部 API 名称的原文。
|
|
15
|
-
- 当 OpenSpec 模板要求固定标题或字段时,保留模板结构,只将正文内容写成中文。
|
|
16
|
-
- 对话窗口里的解释、问题说明、总结、提问和下一步说明必须使用中文;除命令、路径、字段名、代码标识符外,不要夹带英文说明词。
|
|
17
|
-
- 对话窗口、AskUserQuestion 文案、进度更新和最终总结不得裸露内部证据种类、字段名或 reason code;用户确认记录、审查问题记录、审查轮次编号、问题唯一标识等都只用中文业务说法。原始协议名只允许写在证据 JSON、代码、测试、精确命令输出或用户明确要求的诊断片段中。
|
|
18
|
-
- 本 skill 文档中的内部协议名只用于落盘证据或运行 guard;写给用户时必须先翻译成中文业务动作,例如“记录用户确认”“记录审查问题”“完成最终审查判断”。
|
|
13
|
+
- 默认使用简体中文写人类可读内容;命令、路径、字段名、gate 名、task/test id、代码标识符保留原文。
|
|
19
14
|
- 用户可见文案不得使用“裁决”描述用户动作;统一说“确认”“范围取舍”“处理方式选择”或“用户确认记录”。
|
|
20
|
-
-
|
|
21
|
-
-
|
|
15
|
+
- 不把内部证据种类、reason code、JSON 字段大全直接转述给用户;需要诊断时才引用原文。
|
|
16
|
+
- 普通 workflow 命令使用 `--format agent`;`--format json` 只用于诊断,不作为默认上下文。
|
|
22
17
|
|
|
23
18
|
## 命令执行 / Shell
|
|
24
19
|
|
|
25
|
-
- Windows PowerShell
|
|
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
|
-
7. 在 `.superspec/evidence/discovery/` 记录 critic evidence,包含 `execution_mode:"native_subagent"`、`agent_role`、`agent_id`、`output_ref`、`source_anchors` 和 `target_refs`。
|
|
86
|
-
8. 按确认循环处理 findings:写本轮审查问题记录;存在关键问题时**停下来向用户说明并等待用户确认**,再按用户确认更新探索记录 / 重跑 critic / 写新一轮记录,直到最新轮 clean 且问题清单里没有未处理完的问题。
|
|
87
|
-
9. 对探索结论、范围边界和进入 propose 的授权使用 AskUserQuestion,并等待明确选择;记录探索阶段人工确认 evidence(JSON 中为 `gate:"explore_complete"`、`kind:"human_confirmation"`、`created_by:"user"`),`confirmed_refs` 固定记录用户确认过的探索记录。
|
|
88
|
-
10. 运行进入阶段前检查(`check-enter`),验证 explore completion:
|
|
89
|
-
```text
|
|
90
|
-
superspec guard check-enter --change "<change>" --gate explore_complete --format agent
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
遇到任何 guard `block` 就停止。用户确认相关阻塞原因包括:缺少审查问题记录(`missing_review_digest`)、等待用户确认(`needs_user_decision_pending`)、历史 finding 未处理完(`finding_unresolved`)、用户确认未绑定(`user_decision_unbound`)、缺少 finding 问题清单(`ledger_injection_missing`)、审查轮次已达上限(`round_budget_exhausted`)等。它们的唯一合法出路是回到确认循环或升级给用户,不允许绕过。
|
|
20
|
+
- Windows PowerShell 中使用 `.cmd` shim:`superspec.cmd ...`、`openspec.cmd ...`;不要运行 `superspec.ps1` 或 `openspec.ps1`。
|
|
21
|
+
- 其他 shell 使用文档中的 `superspec ...`、`openspec ...` 命令。
|
|
22
|
+
|
|
23
|
+
## 阶段职责
|
|
24
|
+
|
|
25
|
+
Explore 只做需求澄清、代码事实调查、范围边界和风险记录。产物是 `openspec/changes/<change>/.superspec/artifacts/discovery.md`;不写 `proposal.md`、`specs/**`、`design.md`、`tasks.md`,也不改实现代码。
|
|
26
|
+
|
|
27
|
+
## 第一条必跑命令
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
superspec init --scope project --format agent
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
随后创建或打开 OpenSpec change,并读取当前上下文:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
openspec list --json
|
|
37
|
+
openspec status --change "<change>" --json
|
|
38
|
+
superspec guard check-init --change "<change>" --format agent
|
|
39
|
+
superspec guard workflow-packet --change "<change>" --gate explore_complete --format agent
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
遇到任何 guard `block` 就停止,按 packet 的 `next_action` 处理;不要绕过 guard。
|
|
43
|
+
|
|
44
|
+
## OpenSpec 边界
|
|
45
|
+
|
|
46
|
+
- 直接使用 OpenSpec CLI surface,不读取 repo-local `openspec-*` skill 文本。
|
|
47
|
+
- 用 `openspec list --json` 和 `openspec status --change "<change>" --json` 确认 change 结构、artifactPaths 和当前状态。
|
|
48
|
+
- OpenSpec 负责 change 结构和后续 artifact 语义;本阶段只补 SuperSpec discovery 证据。
|
|
49
|
+
- 如果发现需要正式方案、规格、设计或任务,先写入 discovery,再交给 `superspec-propose`。
|
|
50
|
+
|
|
51
|
+
## Native Subagent 边界
|
|
52
|
+
|
|
53
|
+
需求 critique 必须来自 repo-local `critic` native subagent。生成 prompt 时使用 packet,而不是把 disclosure 协议常驻在 skill 正文:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
superspec guard review-packet --change "<change>" --gate explore_complete --role critic --round 1 --format prompt
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
主流程整理审查问题时读取 main-thread packet:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
superspec guard review-packet --change "<change>" --gate explore_complete --role main-thread --round 1 --format agent
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
round > 1 的 reviewer prompt 必须使用 packet/ledger 注入;不要手写历史问题清单。
|
|
66
|
+
|
|
67
|
+
## 用户确认边界
|
|
68
|
+
|
|
69
|
+
- 关键范围、非目标、验收标准、业务语义或设计边界问题必须面向用户说明并等待明确确认。
|
|
70
|
+
- 探索结论、范围边界和进入 propose 的授权必须等待用户确认后再记录 evidence。
|
|
71
|
+
- 用户看到的文字要用中文业务语言;内部 JSON 名只写进证据、命令输出或诊断片段。
|
|
72
|
+
|
|
73
|
+
## 完成检查
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
superspec guard workflow-packet --change "<change>" --gate explore_complete --format agent
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
只有 packet 显示 allowed 后,才进入 `superspec-propose`。
|