@lininn/openflow 0.1.9 → 0.2.0
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 +7 -0
- package/README.zh-CN.md +7 -0
- package/dist/cli/init.js +1 -0
- package/dist/cli/status.js +1 -1
- package/dist/core/skill-generator.js +15 -10
- package/package.json +1 -1
- package/templates/SKILL.md +14 -9
- package/templates/amend.md +136 -0
- package/templates/build.md +4 -2
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ Re-generates project skills after upgrading the npm package.
|
|
|
65
65
|
| `/openflow proposal` | proposal | Lightweight capture — 3-5 questions to converge on requirements |
|
|
66
66
|
| `/openflow brainstorming` | brainstorming | Deep design — multi-round tradeoff exploration |
|
|
67
67
|
| `/openflow spec` | spec | Call OpenSpec to generate specs + auto-translate to plan-ready.md |
|
|
68
|
+
| `/openflow amend` | amend | Revise requirements/specs before close and update plan-ready.md |
|
|
68
69
|
| `/openflow build` | build | Call Superpowers to execute implementation |
|
|
69
70
|
| `/openflow close` | close | Verify consistency + archive |
|
|
70
71
|
|
|
@@ -117,6 +118,12 @@ User Requirements
|
|
|
117
118
|
└──────────┬───────────┘
|
|
118
119
|
│
|
|
119
120
|
┌──────────▼───────────┐
|
|
121
|
+
│ /openflow amend │
|
|
122
|
+
│ Requirement revision │
|
|
123
|
+
│ (only when needed) │
|
|
124
|
+
└──────────┬───────────┘
|
|
125
|
+
│
|
|
126
|
+
┌──────────▼───────────┐
|
|
120
127
|
│ /openflow close │
|
|
121
128
|
│ Verify + archive │
|
|
122
129
|
└──────────────────────┘
|
package/README.zh-CN.md
CHANGED
|
@@ -65,6 +65,7 @@ openflow update
|
|
|
65
65
|
| `/openflow proposal` | proposal | 轻量提问,3-5 问快速收敛需求 |
|
|
66
66
|
| `/openflow brainstorming` | brainstorming | 深度设计,多轮方案探索 |
|
|
67
67
|
| `/openflow spec` | spec | 调用 OpenSpec 生成规格 + 自动翻译 |
|
|
68
|
+
| `/openflow amend` | amend | close 前修订需求/规格并更新 plan-ready.md |
|
|
68
69
|
| `/openflow build` | build | 调用 Superpowers 执行实现 |
|
|
69
70
|
| `/openflow close` | close | 验证一致性 + 归档 |
|
|
70
71
|
|
|
@@ -117,6 +118,12 @@ Works without them: yes, with manual-file fallback
|
|
|
117
118
|
└──────────┬───────────┘
|
|
118
119
|
│
|
|
119
120
|
┌──────────▼───────────┐
|
|
121
|
+
│ /openflow amend │
|
|
122
|
+
│ 需求变更修订 │
|
|
123
|
+
│ (仅需要时) │
|
|
124
|
+
└──────────┬───────────┘
|
|
125
|
+
│
|
|
126
|
+
┌──────────▼───────────┐
|
|
120
127
|
│ /openflow close │
|
|
121
128
|
│ 验证一致性 + 归档 │
|
|
122
129
|
└──────────────────────┘
|
package/dist/cli/init.js
CHANGED
|
@@ -108,6 +108,7 @@ export const initCommand = new Command('init')
|
|
|
108
108
|
logger.info(' /openflow proposal Quick requirement capture');
|
|
109
109
|
logger.info(' /openflow brainstorming Deep design exploration');
|
|
110
110
|
logger.info(' /openflow spec Generate specs + translate');
|
|
111
|
+
logger.info(' /openflow amend Revise requirements before close');
|
|
111
112
|
logger.info(' /openflow build Execute implementation');
|
|
112
113
|
logger.info(' /openflow close Verify + archive');
|
|
113
114
|
logger.blank();
|
package/dist/cli/status.js
CHANGED
|
@@ -64,7 +64,7 @@ export const statusCommand = new Command('status')
|
|
|
64
64
|
const hasProposal = fs.existsSync(path.join(changeDir, 'proposal.md'));
|
|
65
65
|
let status = '';
|
|
66
66
|
if (hasPlanReady) {
|
|
67
|
-
status = '→ ready for /openflow build';
|
|
67
|
+
status = '→ ready for /openflow build or /openflow amend';
|
|
68
68
|
}
|
|
69
69
|
else if (hasProposal) {
|
|
70
70
|
status = '→ needs /openflow spec';
|
|
@@ -29,7 +29,7 @@ export function generateSkills(options) {
|
|
|
29
29
|
// Generate main SKILL.md
|
|
30
30
|
generateSkillFile(skillsDir, 'SKILL.md', depStatus);
|
|
31
31
|
// Generate phase files
|
|
32
|
-
const phases = ['proposal', 'brainstorming', 'spec', 'build', 'close'];
|
|
32
|
+
const phases = ['proposal', 'brainstorming', 'spec', 'amend', 'build', 'close'];
|
|
33
33
|
for (const phase of phases) {
|
|
34
34
|
generateSkillFile(skillsDir, `${phase}.md`, depStatus);
|
|
35
35
|
}
|
|
@@ -100,7 +100,7 @@ function getInlineTemplate(filename, depStatus) {
|
|
|
100
100
|
const templates = {
|
|
101
101
|
'SKILL.md': `---
|
|
102
102
|
name: openflow
|
|
103
|
-
description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow proposal 轻量提问、/openflow brainstorming 深度设计、/openflow spec 生成规格、/openflow build 执行实现、/openflow close 验证归档。串联需求规格与工程执行,消除格式鸿沟。"
|
|
103
|
+
description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow proposal 轻量提问、/openflow brainstorming 深度设计、/openflow spec 生成规格、/openflow amend 在归档前修订需求、/openflow build 执行实现、/openflow close 验证归档。串联需求规格与工程执行,消除格式鸿沟。"
|
|
104
104
|
---
|
|
105
105
|
|
|
106
106
|
# openflow - 工作流协调器
|
|
@@ -112,9 +112,10 @@ description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow propo
|
|
|
112
112
|
如果本轮没有显式 \`/openflow ...\` 子命令,但上一轮已经进入 openflow 任一阶段,并且用户是在补充范围、回答确认问题、说“继续”、修正需求、或说明新增/移除边界:
|
|
113
113
|
|
|
114
114
|
1. 默认继续上一 openflow 阶段,不把该回复当作普通编码请求
|
|
115
|
-
2. 如果上一阶段是 proposal、brainstorming 或
|
|
116
|
-
3.
|
|
117
|
-
4.
|
|
115
|
+
2. 如果上一阶段是 proposal、brainstorming、spec 或 amend,只能继续产出/更新 OpenSpec 文档和计划文档,不得修改任何代码或实现文件
|
|
116
|
+
3. 如果上一阶段是 build,但用户补充的是需求、验收条件或规格边界变更,切到 \`/openflow amend\`,不要直接改代码
|
|
117
|
+
4. 只有用户显式调用 \`/openflow build\`,或状态检测明确进入 build 阶段后,才允许修改代码或实现文件
|
|
118
|
+
5. 中断后恢复时,先重新读取当前阶段文件和 \`openspec/changes/\` 状态,再继续执行
|
|
118
119
|
|
|
119
120
|
典型场景:
|
|
120
121
|
- proposal 阶段整理需求后,用户补充“运营端也要做回显”。这仍是需求范围修正,必须继续 proposal 文档收敛,不能直接进入代码实现。
|
|
@@ -127,10 +128,11 @@ description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow propo
|
|
|
127
128
|
| proposal | \`openspec/changes/**/proposal.md\` | 任何代码或实现文件 |
|
|
128
129
|
| brainstorming | \`openspec/changes/**/proposal.md\` | 任何代码或实现文件 |
|
|
129
130
|
| spec | \`openspec/changes/**\`、\`plan-ready.md\` | 任何代码或实现文件 |
|
|
131
|
+
| amend | \`openspec/changes/**\`、\`plan-ready.md\`、\`docs/superpowers/plans/*.md\` | 代码、测试、其他实现文件 |
|
|
130
132
|
| build | 代码、测试、实现计划状态 | 规格文档(除非另开变更) |
|
|
131
133
|
| close | 归档、验证记录、\`close-issues.md\` | 代码、测试、其他实现文件 |
|
|
132
134
|
|
|
133
|
-
如果用户在 proposal/brainstorming/spec 阶段提出“就按这个做”“范围改成 X”“继续”等话术,不代表进入 build;必须先完成该阶段文档产物并提示下一步。
|
|
135
|
+
如果用户在 proposal/brainstorming/spec/amend 阶段提出“就按这个做”“范围改成 X”“继续”等话术,不代表进入 build;必须先完成该阶段文档产物并提示下一步。
|
|
134
136
|
|
|
135
137
|
## 子命令
|
|
136
138
|
|
|
@@ -139,6 +141,7 @@ description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow propo
|
|
|
139
141
|
| \`/openflow proposal\` | proposal | 轻量提问,快速收敛需求 |
|
|
140
142
|
| \`/openflow brainstorming\` | brainstorming | 深度设计,多轮探索 |
|
|
141
143
|
| \`/openflow spec\` | spec | 调用 OpenSpec 生成规格 + 翻译 |
|
|
144
|
+
| \`/openflow amend\` | amend | build/close 前受控修改需求、规格和计划 |
|
|
142
145
|
| \`/openflow build\` | build | 调用 Superpowers 执行实现 |
|
|
143
146
|
| \`/openflow close\` | close | 验证一致性 + 归档 |
|
|
144
147
|
|
|
@@ -165,10 +168,11 @@ description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow propo
|
|
|
165
168
|
根据子命令或状态检测结果,读取对应阶段文件并执行:
|
|
166
169
|
|
|
167
170
|
1. 如果这是上一 openflow 阶段的续接回复,先按“续接与中断恢复”保持阶段
|
|
168
|
-
2.
|
|
169
|
-
3.
|
|
170
|
-
4.
|
|
171
|
-
5.
|
|
171
|
+
2. 如果用户在 build 中明确提出需求变更、补充 spec、修改验收条件或重新生成规格,路由到 amend
|
|
172
|
+
3. 如果用户指定了子命令(如 \`/openflow build\`),优先按指定阶段执行,但检查前置条件
|
|
173
|
+
4. 如果用户只输入 \`/openflow\`,执行状态检测,自动路由到对应阶段
|
|
174
|
+
5. 读取当前 openflow skill 目录下的阶段文件:\`<阶段>.md\`(与本 \`SKILL.md\` 同目录;不要依赖 Claude 专属环境变量)
|
|
175
|
+
6. 按阶段文件中的流程执行,并遵守阶段写入边界
|
|
172
176
|
|
|
173
177
|
### 前置条件检查
|
|
174
178
|
|
|
@@ -177,6 +181,7 @@ description: "OpenSpec + Superpowers 工作流协调器。使用 /openflow propo
|
|
|
177
181
|
| proposal | 无 | — |
|
|
178
182
|
| brainstorming | 无 | — |
|
|
179
183
|
| spec | 需要有活跃变更目录或有用户需求 | "请先用 /openflow proposal 或 /openflow brainstorming 描述需求" |
|
|
184
|
+
| amend | 需要有活跃变更目录,通常需要 plan-ready.md | "还没有可修订的活跃变更,请先完成 /openflow spec" |
|
|
180
185
|
| build | 需要存在 plan-ready.md | "请先完成 /openflow spec 生成规格和翻译" |
|
|
181
186
|
| close | 需要实现已完成 | "实现尚未完成,请先用 /openflow build 执行" |
|
|
182
187
|
`,
|
package/package.json
CHANGED
package/templates/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openflow
|
|
3
|
-
description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow proposal for quick capture, /openflow brainstorming for deep design, /openflow spec to generate specs + translate, /openflow build to execute, /openflow close to verify and archive. Bridges requirements specs and engineering execution."
|
|
3
|
+
description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow proposal for quick capture, /openflow brainstorming for deep design, /openflow spec to generate specs + translate, /openflow amend to revise requirements before close, /openflow build to execute, /openflow close to verify and archive. Bridges requirements specs and engineering execution."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# openflow - 工作流协调器
|
|
@@ -12,9 +12,10 @@ description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow propos
|
|
|
12
12
|
如果本轮没有显式 `/openflow ...` 子命令,但上一轮已经进入 openflow 任一阶段,并且用户是在补充范围、回答确认问题、说“继续”、修正需求、或说明新增/移除边界:
|
|
13
13
|
|
|
14
14
|
1. 默认继续上一 openflow 阶段,不把该回复当作普通编码请求
|
|
15
|
-
2. 如果上一阶段是 proposal、brainstorming 或
|
|
16
|
-
3.
|
|
17
|
-
4.
|
|
15
|
+
2. 如果上一阶段是 proposal、brainstorming、spec 或 amend,只能继续产出/更新 OpenSpec 文档和计划文档,不得修改任何代码或实现文件
|
|
16
|
+
3. 如果上一阶段是 build,但用户补充的是需求、验收条件或规格边界变更,切到 `/openflow amend`,不要直接改代码
|
|
17
|
+
4. 只有用户显式调用 `/openflow build`,或状态检测明确进入 build 阶段后,才允许修改代码或实现文件
|
|
18
|
+
5. 中断后恢复时,先重新读取当前阶段文件和 `openspec/changes/` 状态,再继续执行
|
|
18
19
|
|
|
19
20
|
典型场景:
|
|
20
21
|
- proposal 阶段整理需求后,用户补充“运营端也要做回显”。这仍是需求范围修正,必须继续 proposal 文档收敛,不能直接进入代码实现。
|
|
@@ -27,10 +28,11 @@ description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow propos
|
|
|
27
28
|
| proposal | `openspec/changes/**/proposal.md` | 任何代码或实现文件 |
|
|
28
29
|
| brainstorming | `openspec/changes/**/proposal.md` | 任何代码或实现文件 |
|
|
29
30
|
| spec | `openspec/changes/**`、`plan-ready.md` | 任何代码或实现文件 |
|
|
31
|
+
| amend | `openspec/changes/**`、`plan-ready.md`、`docs/superpowers/plans/*.md` | 代码、测试、其他实现文件 |
|
|
30
32
|
| build | 代码、测试、实现计划状态 | 规格文档(除非另开变更) |
|
|
31
33
|
| close | 归档、验证记录、`close-issues.md` | 代码、测试、其他实现文件 |
|
|
32
34
|
|
|
33
|
-
如果用户在 proposal/brainstorming/spec 阶段提出“就按这个做”“范围改成 X”“继续”等话术,不代表进入 build;必须先完成该阶段文档产物并提示下一步。
|
|
35
|
+
如果用户在 proposal/brainstorming/spec/amend 阶段提出“就按这个做”“范围改成 X”“继续”等话术,不代表进入 build;必须先完成该阶段文档产物并提示下一步。
|
|
34
36
|
|
|
35
37
|
## 子命令
|
|
36
38
|
|
|
@@ -39,6 +41,7 @@ description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow propos
|
|
|
39
41
|
| `/openflow proposal` | proposal | 轻量提问,快速收敛需求 |
|
|
40
42
|
| `/openflow brainstorming` | brainstorming | 深度设计,多轮探索 |
|
|
41
43
|
| `/openflow spec` | spec | 调用 OpenSpec 生成规格 + 翻译 |
|
|
44
|
+
| `/openflow amend` | amend | build/close 前受控修改需求、规格和计划 |
|
|
42
45
|
| `/openflow build` | build | 调用 Superpowers 执行实现 |
|
|
43
46
|
| `/openflow close` | close | 验证一致性 + 归档 |
|
|
44
47
|
|
|
@@ -65,10 +68,11 @@ description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow propos
|
|
|
65
68
|
根据子命令或状态检测结果,读取对应阶段文件并执行:
|
|
66
69
|
|
|
67
70
|
1. 如果这是上一 openflow 阶段的续接回复,先按“续接与中断恢复”保持阶段
|
|
68
|
-
2.
|
|
69
|
-
3.
|
|
70
|
-
4.
|
|
71
|
-
5.
|
|
71
|
+
2. 如果用户在 build 中明确提出需求变更、补充 spec、修改验收条件或重新生成规格,路由到 amend
|
|
72
|
+
3. 如果用户指定了子命令(如 `/openflow build`),优先按指定阶段执行,但检查前置条件
|
|
73
|
+
4. 如果用户只输入 `/openflow`,执行状态检测,自动路由到对应阶段
|
|
74
|
+
5. 读取当前 openflow skill 目录下的阶段文件:`<阶段>.md`(与本 `SKILL.md` 同目录;不要依赖 Claude 专属环境变量)
|
|
75
|
+
6. 按阶段文件中的流程执行,并遵守阶段写入边界
|
|
72
76
|
|
|
73
77
|
### 前置条件检查
|
|
74
78
|
|
|
@@ -77,5 +81,6 @@ description: "OpenSpec + Superpowers workflow orchestrator. Use /openflow propos
|
|
|
77
81
|
| proposal | 无 | — |
|
|
78
82
|
| brainstorming | 无 | — |
|
|
79
83
|
| spec | 需要有活跃变更目录或有用户需求 | "请先用 /openflow proposal 或 /openflow brainstorming 描述需求" |
|
|
84
|
+
| amend | 需要有活跃变更目录,通常需要 plan-ready.md | "还没有可修订的活跃变更,请先完成 /openflow spec" |
|
|
80
85
|
| build | 需要存在 plan-ready.md | "请先完成 /openflow spec 生成规格和翻译" |
|
|
81
86
|
| close | 需要实现已完成 | "实现尚未完成,请先用 /openflow build 执行" |
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openflow/amend
|
|
3
|
+
description: Revise active OpenSpec requirements during build, regenerate plan-ready.md, and append implementation tasks without archiving the change
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Amend: 需求变更修订
|
|
7
|
+
|
|
8
|
+
## 目标
|
|
9
|
+
|
|
10
|
+
在 active change 已经进入 spec/build 后,发现需求遗漏或规格需要改变时,受控修改 OpenSpec 文档和执行计划,然后回到 `/openflow build` 继续实现。
|
|
11
|
+
|
|
12
|
+
## 适用场景
|
|
13
|
+
|
|
14
|
+
- build 过程中发现原需求漏了一个功能、边界或验收条件
|
|
15
|
+
- 用户明确说“修改需求”“补充 spec”“重新生成规格”“需求变更”
|
|
16
|
+
- close 前发现规格本身不完整,而不是代码没有按现有规格实现
|
|
17
|
+
|
|
18
|
+
不适用:
|
|
19
|
+
- 只是代码没有实现现有 spec → 继续 `/openflow build`
|
|
20
|
+
- 变更已经 close/archive → 开新的 `/openflow proposal` 或 `/openflow brainstorming`
|
|
21
|
+
- 只是文案、注释或实现细节调整,且不改变行为 → 继续当前实现阶段
|
|
22
|
+
|
|
23
|
+
## 前置条件
|
|
24
|
+
|
|
25
|
+
- `openspec/changes/<变更名>/` 下存在 active change
|
|
26
|
+
- 至少存在 `proposal.md`
|
|
27
|
+
- 通常应已存在 `plan-ready.md`;如果没有,优先回到 `/openflow spec`
|
|
28
|
+
|
|
29
|
+
如果没有 active change,提示:
|
|
30
|
+
> "还没有活跃变更。请先用 /openflow proposal 或 /openflow brainstorming 创建需求。"
|
|
31
|
+
|
|
32
|
+
如果变更已归档,提示:
|
|
33
|
+
> "该变更已经归档。归档后的需求调整应开启新的 /openflow proposal。"
|
|
34
|
+
|
|
35
|
+
## 流程
|
|
36
|
+
|
|
37
|
+
### 1. 确认当前变更
|
|
38
|
+
|
|
39
|
+
检查 `openspec/changes/` 下的 active change。
|
|
40
|
+
|
|
41
|
+
如果有多个,列出并让用户选择:
|
|
42
|
+
> "检测到多个活跃变更:[列表]。要修订哪个变更?"
|
|
43
|
+
|
|
44
|
+
读取当前变更的文档:
|
|
45
|
+
- `proposal.md`
|
|
46
|
+
- `design.md`(如果存在)
|
|
47
|
+
- `specs/**/spec.md`
|
|
48
|
+
- `tasks.md`(如果存在)
|
|
49
|
+
- `plan-ready.md`(如果存在)
|
|
50
|
+
- `docs/superpowers/plans/` 下对应实现计划(如果存在)
|
|
51
|
+
|
|
52
|
+
### 2. 判断是 amend 还是 build
|
|
53
|
+
|
|
54
|
+
先判断用户描述属于哪类:
|
|
55
|
+
|
|
56
|
+
| 情况 | 处理 |
|
|
57
|
+
|------|------|
|
|
58
|
+
| 现有 spec 已覆盖,只是代码未完成 | 回到 `/openflow build` |
|
|
59
|
+
| 新增/修改行为、验收条件、边界、非目标 | 继续 amend |
|
|
60
|
+
| 技术方案受影响 | 修改 `design.md` 并追加任务 |
|
|
61
|
+
| 不确定是否改变需求 | 问 1 个澄清问题 |
|
|
62
|
+
|
|
63
|
+
### 3. 修改 OpenSpec 文档
|
|
64
|
+
|
|
65
|
+
按影响范围更新:
|
|
66
|
+
|
|
67
|
+
- `proposal.md`:追加 `## Amendments`,记录本次需求变更的日期、原因和摘要
|
|
68
|
+
- `design.md`:仅当技术方案或约束变化时修改
|
|
69
|
+
- `specs/<capability>/spec.md`:使用 `ADDED`、`MODIFIED`、`REMOVED` 或 `RENAMED Requirements` 表达 delta
|
|
70
|
+
- `tasks.md`:追加新任务;不要重写或删除已完成任务
|
|
71
|
+
|
|
72
|
+
要求:
|
|
73
|
+
- 每个新增或修改的 requirement 必须至少有一个 `#### Scenario:`
|
|
74
|
+
- `MODIFIED Requirements` 必须包含完整的新 requirement 文本,不只写差异片段
|
|
75
|
+
- 已完成任务保留原 checkbox 状态
|
|
76
|
+
|
|
77
|
+
### 4. 校验 OpenSpec
|
|
78
|
+
|
|
79
|
+
如果 OpenSpec CLI 可用,运行:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
openspec validate <变更名> --strict
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
校验失败时,修正文档后重新校验。
|
|
86
|
+
|
|
87
|
+
### 5. 重新生成 plan-ready.md
|
|
88
|
+
|
|
89
|
+
根据修订后的 OpenSpec 文档更新 `plan-ready.md`。
|
|
90
|
+
|
|
91
|
+
规则:
|
|
92
|
+
- 保留原 `## 来源`
|
|
93
|
+
- 追加 `## Amendments`,记录本次修订来源和影响
|
|
94
|
+
- 保留已完成实现步骤的历史上下文
|
|
95
|
+
- 追加新的实现步骤,按执行依赖排序
|
|
96
|
+
- 不删除已经完成或正在执行的步骤,除非用户明确要求废弃并说明迁移方式
|
|
97
|
+
|
|
98
|
+
建议追加格式:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
## Amendments
|
|
102
|
+
|
|
103
|
+
### YYYY-MM-DD: <简短标题>
|
|
104
|
+
- 原因:<为什么需要改>
|
|
105
|
+
- 影响规格:<spec 路径>
|
|
106
|
+
- 影响任务:<tasks.md 条目>
|
|
107
|
+
|
|
108
|
+
## 追加实现步骤
|
|
109
|
+
|
|
110
|
+
### Task N: <任务名>
|
|
111
|
+
- 目标:<做什么>
|
|
112
|
+
- 改动文件:<哪些文件>
|
|
113
|
+
- 验证方式:<怎么验证>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 6. 同步详细实现计划
|
|
117
|
+
|
|
118
|
+
如果 `docs/superpowers/plans/YYYY-MM-DD-<变更名>.md` 已存在:
|
|
119
|
+
- 已勾选任务不动
|
|
120
|
+
- 未完成任务可按新需求调整
|
|
121
|
+
- 追加新 task,保留 checkbox
|
|
122
|
+
- 记录本次 amend 来源路径
|
|
123
|
+
|
|
124
|
+
如果详细实现计划还不存在:
|
|
125
|
+
- 不创建代码实现计划,提示下一步用 `/openflow build`
|
|
126
|
+
|
|
127
|
+
### 7. 提示下一步
|
|
128
|
+
|
|
129
|
+
> "需求变更已写入 OpenSpec,plan-ready.md 已更新。接下来继续 `/openflow build`。"
|
|
130
|
+
|
|
131
|
+
## 关键原则
|
|
132
|
+
|
|
133
|
+
- amend 阶段只允许修改规格、任务、plan-ready.md 和实现计划文档,不直接修改代码
|
|
134
|
+
- amend 是 close/archive 前的受控需求变更入口,不用于修代码
|
|
135
|
+
- 不把 build 中的自然语言补充直接当作实现指令;只要改变需求或验收条件,先 amend
|
|
136
|
+
- 已归档变更不可 amend,必须开启新 change
|
package/templates/build.md
CHANGED
|
@@ -11,7 +11,9 @@ description: Call Superpowers to execute implementation, supports checkpoint rec
|
|
|
11
11
|
|
|
12
12
|
## 中断续接规则
|
|
13
13
|
|
|
14
|
-
如果用户在 build 阶段被打断后继续回复、说“继续”、或补充实现细节,保持 build 阶段并从实现计划/checkbox 状态恢复。不要回到 proposal、brainstorming 或 spec
|
|
14
|
+
如果用户在 build 阶段被打断后继续回复、说“继续”、或补充实现细节,保持 build 阶段并从实现计划/checkbox 状态恢复。不要回到 proposal、brainstorming 或 spec。
|
|
15
|
+
|
|
16
|
+
如果用户明确要求修改需求、补充 spec、改变验收条件、改变功能边界或重新生成规格,停止实现并切到 `/openflow amend`。amend 完成后再回到 `/openflow build`。
|
|
15
17
|
|
|
16
18
|
## 前置条件
|
|
17
19
|
|
|
@@ -73,7 +75,7 @@ docs/superpowers/plans/YYYY-MM-DD-<变更名>.md
|
|
|
73
75
|
|
|
74
76
|
## 关键原则
|
|
75
77
|
|
|
76
|
-
- **不允许在 build 阶段修改规格文档** —
|
|
78
|
+
- **不允许在 build 阶段修改规格文档** — 发现需求遗漏或规格错误时切到 `/openflow amend`
|
|
77
79
|
- build 是唯一默认允许修改代码或实现文件的阶段;如果上一阶段不是 build,不要因为用户确认范围而自动写代码
|
|
78
80
|
- plan-ready.md 是锁定的设计决策,Superpowers 按计划展开执行,不重新理解需求
|
|
79
81
|
- 断点恢复依赖文件系统状态,不依赖 AI 的会话记忆
|