6aspec 2.0.0-dev.9 → 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 +126 -28
- package/.6aspec/rules/biz/code_implementation_sop.md +77 -0
- package/.6aspec/rules/brown/brown_analyze_sop.md +294 -0
- package/.6aspec/rules/brown/brown_archive_sop.md +44 -78
- package/.6aspec/rules/brown/brown_constitution.md +11 -0
- package/.6aspec/rules/brown/brown_continue_sop.md +7 -16
- package/.6aspec/rules/brown/brown_design_sop.md +210 -95
- package/.6aspec/rules/brown/brown_explore_sop.md +314 -0
- package/.6aspec/rules/brown/brown_ff_sop.md +27 -64
- package/.6aspec/rules/brown/brown_impact_sop.md +101 -45
- package/.6aspec/rules/brown/brown_implement_sop.md +91 -58
- package/.6aspec/rules/brown/brown_list_sop.md +12 -12
- package/.6aspec/rules/brown/brown_new_sop.md +64 -81
- package/.6aspec/rules/brown/brown_proposal_sop.md +243 -76
- package/.6aspec/rules/brown/brown_quick_sop.md +6 -6
- package/.6aspec/rules/brown/brown_review_sop.md +4 -4
- package/.6aspec/rules/brown/brown_rollback_sop.md +29 -51
- package/.6aspec/rules/brown/brown_specs_sop.md +364 -120
- package/.6aspec/rules/brown/brown_status_sop.md +16 -32
- package/.6aspec/rules/brown/brown_tasks_sop.md +194 -87
- package/.6aspec/rules/brown/brown_understand_sop.md +97 -23
- package/.6aspec/rules/brown/brown_update_sop.md +278 -0
- package/.6aspec/rules/brown/brown_verify_sop.md +71 -309
- package/.6aspec/rules/brown/subagents/implementer.md +73 -0
- package/.6aspec/rules/brown/subagents/spec-compliance-reviewer.md +103 -0
- package/.6aspec/rules/common/code-reviewer-agent.md +118 -0
- package/.6aspec/rules/green/{6A_archive_sop.md → green_archive_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_clarify_sop.md → green_clarify_sop.md} +1 -1
- package/.6aspec/rules/green/{6A_code_implementation_sop.md → green_code_implementation_sop.md} +18 -3
- package/.6aspec/rules/green/{6A_continue_sop.md → green_continue_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_new_sop.md → green_new_sop.md} +90 -11
- package/.6aspec/rules/green/green_status_schema.md +4 -4
- package/.6aspec/rules/green/{6A_status_sop.md → green_status_sop.md} +3 -3
- package/.6aspec/rules/green/{6A_tasks_sop.md → green_tasks_sop.md} +1 -1
- 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/.agents/skills/6aspec-brown-review/SKILL.md +10 -0
- 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/6aspec-brown-implementer.md +7 -0
- package/.claude/agents/6aspec-brown-spec-compliance-reviewer.md +7 -0
- package/.claude/agents/6aspec-code-reviewer.md +7 -0
- package/.claude/commands/6aspec/brown/{impact.md → analyze.md} +11 -11
- package/.claude/commands/6aspec/brown/archive.md +11 -11
- package/.claude/commands/6aspec/brown/continue.md +11 -11
- package/.claude/commands/6aspec/brown/design.md +11 -11
- package/.claude/commands/6aspec/brown/{understand.md → explore.md} +11 -11
- package/.claude/commands/6aspec/brown/ff.md +11 -11
- package/.claude/commands/6aspec/brown/implement.md +11 -11
- package/.claude/commands/6aspec/brown/list.md +11 -11
- package/.claude/commands/6aspec/brown/new.md +11 -11
- package/.claude/commands/6aspec/brown/proposal.md +11 -11
- package/.claude/commands/6aspec/brown/quick.md +11 -11
- package/.claude/commands/6aspec/brown/review.md +11 -11
- package/.claude/commands/6aspec/brown/specs.md +1 -1
- package/.claude/commands/6aspec/brown/status.md +11 -11
- package/.claude/commands/6aspec/brown/tasks.md +11 -11
- package/.claude/commands/6aspec/brown/update.md +11 -0
- package/.claude/commands/6aspec/brown/verify.md +11 -11
- package/.claude/commands/6aspec/code.md +10 -0
- package/.claude/commands/6aspec/green/archive.md +1 -1
- package/.claude/commands/6aspec/green/clarify.md +2 -2
- package/.claude/commands/6aspec/green/continue.md +1 -1
- package/.claude/commands/6aspec/green/design.md +2 -2
- package/.claude/commands/6aspec/green/{execute-task.md → implement.md} +1 -1
- package/.claude/commands/6aspec/green/import-model-table.md +1 -1
- package/.claude/commands/6aspec/green/init.md +2 -2
- package/.claude/commands/6aspec/green/model.md +2 -2
- package/.claude/commands/6aspec/green/new.md +2 -2
- package/.claude/commands/6aspec/green/rollback.md +1 -1
- package/.claude/commands/6aspec/green/status.md +1 -1
- package/.claude/commands/6aspec/green/tasks.md +2 -2
- package/.claude/commands/6aspec/green/visual-logic.md +2 -2
- 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-explore.md +11 -0
- 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-brown-update.md +9 -0
- package/.cursor/commands/6aspec-code.md +8 -0
- package/.cursor/commands/{6aspec/green/archive.md → 6aspec-green-archive.md} +1 -1
- package/.cursor/commands/{6aspec/green/clarify.md → 6aspec-green-clarify.md} +2 -2
- package/.cursor/commands/{6aspec/green/continue.md → 6aspec-green-continue.md} +1 -1
- package/.cursor/commands/{6aspec/green/design.md → 6aspec-green-design.md} +2 -2
- package/.cursor/commands/{6aspec/green/execute-task.md → 6aspec-green-implement.md} +1 -1
- package/.cursor/commands/{6aspec/green/import-model-table.md → 6aspec-green-import-model-table.md} +1 -1
- package/.cursor/commands/{6aspec/green/init.md → 6aspec-green-init.md} +2 -2
- package/.cursor/commands/{6aspec/green/model.md → 6aspec-green-model.md} +2 -2
- package/.cursor/commands/{6aspec/green/new.md → 6aspec-green-new.md} +2 -2
- package/.cursor/commands/{6aspec/green/rollback.md → 6aspec-green-rollback.md} +1 -1
- package/.cursor/commands/{6aspec/green/status.md → 6aspec-green-status.md} +1 -1
- package/.cursor/commands/{6aspec/green/tasks.md → 6aspec-green-tasks.md} +2 -2
- package/.cursor/commands/{6aspec/green/visual-logic.md → 6aspec-green-visual-logic.md} +2 -2
- package/.cursor/commands/6aspec-review.md +56 -0
- package/README.md +1 -1
- package/lib/cli.js +49 -13
- package/lib/installer.js +93 -25
- package/package.json +3 -1
- package/.claude/settings.local.json +0 -8
- package/.cursor/commands/6aspec/brown/impact.md +0 -9
- package/.cursor/commands/6aspec/brown/understand.md +0 -9
- /package/.6aspec/rules/green/{6A_constitution.md → green_constitution.md} +0 -0
- /package/.6aspec/rules/green/{6A_design_sop.md → green_design_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_import_model_table_sop.md → green_import_model_table_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_init_event_list_sop.md → green_init_event_list_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_init_map_sop.md → green_init_map_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_model_sop.md → green_model_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_rollback_sop.md → green_rollback_sop.md} +0 -0
- /package/.6aspec/rules/green/{6A_visual_logic_sop.md → green_visual_logic_sop.md} +0 -0
- /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/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/verify.md → 6aspec-brown-verify.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 棕地需求 - Quick SOP
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
快速通道 - 适用于简单修复和小改动。
|
|
4
4
|
|
|
5
5
|
**输入**:`/6aspec:brown:quick` 后的参数是需求名称(kebab-case)或需求描述。
|
|
6
6
|
|
|
@@ -15,7 +15,7 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
15
15
|
|
|
16
16
|
1. **如果没有提供输入,询问需求内容**
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
使用 `AskUserQuestion` 工具询问(开放式,用 Other 输入):
|
|
19
19
|
> "你想快速处理什么需求?请描述要修复的问题或要做的改动。"
|
|
20
20
|
|
|
21
21
|
从描述中提取 kebab-case 名称。
|
|
@@ -27,10 +27,12 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
创建状态文件 `6aspecdoc/brown/<name>/status.json`:
|
|
30
|
+
|
|
31
|
+
**注意**:所有时间戳必须使用东八区(北京时间)格式:`yyyy-MM-dd HH:mm:ss`(例如:`2026-02-20 12:36:23`)
|
|
32
|
+
|
|
30
33
|
```json
|
|
31
34
|
{
|
|
32
35
|
"name": "<name>",
|
|
33
|
-
"priority": "P2",
|
|
34
36
|
"status": "quick_track",
|
|
35
37
|
"createdAt": "<timestamp>",
|
|
36
38
|
"lastModified": "<timestamp>",
|
|
@@ -43,7 +45,6 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
43
45
|
# <需求标题>
|
|
44
46
|
|
|
45
47
|
> **需求ID**: <name>
|
|
46
|
-
> **优先级**: P2(快速通道)
|
|
47
48
|
> **状态**: 🚀 快速处理中
|
|
48
49
|
> **创建时间**: <timestamp>
|
|
49
50
|
|
|
@@ -102,7 +103,6 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
102
103
|
```
|
|
103
104
|
## 快速处理完成:<name>
|
|
104
105
|
|
|
105
|
-
**优先级**: P2(快速通道)
|
|
106
106
|
**处理时间**: <时间戳>
|
|
107
107
|
|
|
108
108
|
### 修改内容
|
|
@@ -118,7 +118,7 @@ P2 需求快速通道 - 适用于简单修复和小改动。
|
|
|
118
118
|
- 或归档:运行 `/6aspec:brown:archive` 归档此需求
|
|
119
119
|
|
|
120
120
|
### 注意
|
|
121
|
-
|
|
121
|
+
快速通道跳过了详细的分析和设计阶段。
|
|
122
122
|
如果发现需求比预期复杂,建议使用完整流程(/6aspec:brown:new)。
|
|
123
123
|
```
|
|
124
124
|
|
|
@@ -20,7 +20,7 @@ Phase 7: 实施后评估
|
|
|
20
20
|
- `6aspecdoc/brown/<name>/requirement.md` - 原始需求
|
|
21
21
|
- `6aspecdoc/brown/<name>/artifacts/02-impact-analysis.md` - 预期影响
|
|
22
22
|
- `6aspecdoc/brown/<name>/artifacts/03-technical-design.md` - 技术方案
|
|
23
|
-
- `6aspecdoc/brown/<name>/artifacts/ADR-<name>.md` -
|
|
23
|
+
- `6aspecdoc/brown/<name>/artifacts/ADR-<name>.md` - 架构决策(如有)
|
|
24
24
|
|
|
25
25
|
3. **参考相关归档需求(可选)**
|
|
26
26
|
|
|
@@ -60,7 +60,7 @@ Phase 7: 实施后评估
|
|
|
60
60
|
- 用户反馈如何?
|
|
61
61
|
- 是否需要调整?
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
**架构决策回顾**(如有):
|
|
64
64
|
- 当初的架构决策是否正确?
|
|
65
65
|
- 有哪些经验教训?
|
|
66
66
|
- 需要更新 ADR 吗?
|
|
@@ -144,7 +144,7 @@ Phase 7: 实施后评估
|
|
|
144
144
|
调整计划(如需要):
|
|
145
145
|
<调整计划>
|
|
146
146
|
|
|
147
|
-
## 3.
|
|
147
|
+
## 3. 架构决策回顾(如有)
|
|
148
148
|
|
|
149
149
|
### 3.1 决策回顾
|
|
150
150
|
|
|
@@ -266,5 +266,5 @@ Phase 7: 实施后评估
|
|
|
266
266
|
- 必须先完成 Phase 6
|
|
267
267
|
- 评估必须基于实际数据,不能主观臆断
|
|
268
268
|
- 必须收集用户反馈
|
|
269
|
-
-
|
|
269
|
+
- 涉及架构决策的需求必须回顾架构决策
|
|
270
270
|
- 必须进行知识沉淀
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
**限制**:
|
|
13
13
|
- 只能一级一级往上退,不允许跨节点
|
|
14
14
|
- 只能回退已完成的阶段(状态为 "done")
|
|
15
|
-
-
|
|
15
|
+
- 不能回退第一个阶段(轻量级流程:proposal,标准级流程:analyze)
|
|
16
|
+
- 不能从实施阶段回退(implement),因为代码已修改,回退文档会导致文档和代码不一致
|
|
17
|
+
- 只允许在分析阶段回退(proposal、analyze、specs、design、tasks)
|
|
16
18
|
- 已归档的需求不能回退
|
|
17
19
|
|
|
18
20
|
**步骤**
|
|
@@ -21,7 +23,7 @@
|
|
|
21
23
|
|
|
22
24
|
如果提供了名称,使用它。否则:
|
|
23
25
|
- 从对话上下文推断
|
|
24
|
-
- 如果模糊,读取 `6aspecdoc/brown/`
|
|
26
|
+
- 如果模糊,读取 `6aspecdoc/brown/` 目录,使用 `AskUserQuestion` 工具列出需求让用户选择
|
|
25
27
|
|
|
26
28
|
2. **检查当前状态**
|
|
27
29
|
|
|
@@ -35,40 +37,28 @@
|
|
|
35
37
|
根据流程深度和当前阶段,确定上一个阶段:
|
|
36
38
|
|
|
37
39
|
**轻量级流程(lightweight)**:
|
|
38
|
-
-
|
|
40
|
+
- specs → proposal
|
|
41
|
+
- design → specs
|
|
39
42
|
- tasks → design
|
|
40
|
-
- implement → tasks
|
|
43
|
+
- ~~implement → tasks~~(禁止:代码已修改)
|
|
41
44
|
|
|
42
45
|
**标准级流程(standard)**:
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
- design →
|
|
46
|
+
- proposal → analyze
|
|
47
|
+
- specs → proposal
|
|
48
|
+
- design → specs
|
|
46
49
|
- tasks → design
|
|
47
|
-
- implement → tasks
|
|
48
|
-
|
|
49
|
-
**完整级流程(complete)**:
|
|
50
|
-
- specs → understand
|
|
51
|
-
- impact → specs
|
|
52
|
-
- design → impact
|
|
53
|
-
- tasks → design
|
|
54
|
-
- implement → tasks
|
|
55
|
-
- verify → implement
|
|
56
|
-
- review → verify
|
|
50
|
+
- ~~implement → tasks~~(禁止:代码已修改)
|
|
57
51
|
|
|
58
52
|
**边界情况**:
|
|
59
|
-
-
|
|
53
|
+
- 如果当前在第一个阶段(轻量级:proposal,标准级:analyze),提示无法回退
|
|
54
|
+
- 如果当前在实施阶段(implement),提示无法回退(代码已修改)
|
|
60
55
|
- 如果所有阶段都是 pending,提示没有可回退的阶段
|
|
61
56
|
|
|
62
57
|
4. **确认回退操作**
|
|
63
58
|
|
|
64
|
-
|
|
59
|
+
使用 `AskUserQuestion` 工具确认:
|
|
65
60
|
```
|
|
66
|
-
问题:"
|
|
67
|
-
说明:
|
|
68
|
-
- 当前阶段:<current-phase>
|
|
69
|
-
- 回退到:<previous-phase>
|
|
70
|
-
- 将删除的文件:<files-to-delete>
|
|
71
|
-
|
|
61
|
+
问题:"确认回退操作?当前阶段:<current-phase>,将回退到:<previous-phase>,将删除:<files-to-delete>"
|
|
72
62
|
选项:
|
|
73
63
|
- 确认回退
|
|
74
64
|
- 取消
|
|
@@ -83,29 +73,20 @@
|
|
|
83
73
|
**proposal**:
|
|
84
74
|
- `artifacts/proposal.md`
|
|
85
75
|
|
|
86
|
-
**
|
|
87
|
-
- `artifacts/
|
|
76
|
+
**analyze**:
|
|
77
|
+
- `artifacts/analysis.md`
|
|
88
78
|
|
|
89
79
|
**specs**:
|
|
90
80
|
- `artifacts/specs.md`
|
|
91
81
|
|
|
92
|
-
**impact**:
|
|
93
|
-
- `artifacts/impact-analysis.md`
|
|
94
|
-
|
|
95
82
|
**design**:
|
|
96
83
|
- `artifacts/design.md`
|
|
97
84
|
- `artifacts/ADR-*.md`(如果有)
|
|
98
85
|
|
|
99
86
|
**tasks**:
|
|
100
|
-
- `artifacts/tasks.md`
|
|
87
|
+
- `artifacts/tasks-overview.md`
|
|
101
88
|
- `tasks/*.md`(所有任务文件)
|
|
102
89
|
|
|
103
|
-
**verify**:
|
|
104
|
-
- `artifacts/verification-report.md`
|
|
105
|
-
|
|
106
|
-
**review**:
|
|
107
|
-
- `artifacts/post-implementation-review.md`
|
|
108
|
-
|
|
109
90
|
使用 bash 命令删除文件:
|
|
110
91
|
```bash
|
|
111
92
|
rm -f 6aspecdoc/brown/<name>/artifacts/<file>
|
|
@@ -116,34 +97,29 @@
|
|
|
116
97
|
更新 `6aspecdoc/brown/<name>/status.json`:
|
|
117
98
|
|
|
118
99
|
a. 将当前阶段的状态从 "done" 改为 "pending"
|
|
119
|
-
|
|
120
100
|
b. 将上一个阶段的状态保持 "done"(不变)
|
|
121
|
-
|
|
122
101
|
c. 将当前阶段之后的所有阶段状态保持 "blocked"
|
|
123
|
-
|
|
124
102
|
d. 更新 status 字段为 "<current-phase>_pending"
|
|
125
|
-
|
|
126
103
|
e. 从 artifacts 数组中移除当前阶段的文件名
|
|
127
|
-
|
|
128
104
|
f. 更新 lastModified 时间戳
|
|
129
105
|
|
|
130
|
-
|
|
106
|
+
示例(标准级从 tasks 回退到 design 完成的状态):
|
|
131
107
|
```json
|
|
132
108
|
{
|
|
133
109
|
"name": "example",
|
|
134
110
|
"flowDepth": "standard",
|
|
135
111
|
"status": "tasks_pending",
|
|
136
|
-
"createdAt": "2026-02-
|
|
137
|
-
"lastModified": "2026-02-
|
|
112
|
+
"createdAt": "2026-02-15 18:00:00",
|
|
113
|
+
"lastModified": "2026-02-15 18:30:00",
|
|
138
114
|
"phases": {
|
|
139
|
-
"
|
|
115
|
+
"analyze": "done",
|
|
116
|
+
"proposal": "done",
|
|
140
117
|
"specs": "done",
|
|
141
|
-
"impact": "done",
|
|
142
118
|
"design": "done",
|
|
143
119
|
"tasks": "pending",
|
|
144
120
|
"implement": "blocked"
|
|
145
121
|
},
|
|
146
|
-
"artifacts": ["
|
|
122
|
+
"artifacts": ["analysis.md", "proposal.md", "specs.md", "design.md"]
|
|
147
123
|
}
|
|
148
124
|
```
|
|
149
125
|
|
|
@@ -161,7 +137,6 @@
|
|
|
161
137
|
### 已删除的文件
|
|
162
138
|
- <file1>
|
|
163
139
|
- <file2>
|
|
164
|
-
- ...
|
|
165
140
|
|
|
166
141
|
### 当前状态
|
|
167
142
|
- <previous-phase>: done(已完成)
|
|
@@ -174,7 +149,9 @@
|
|
|
174
149
|
**防护措施**
|
|
175
150
|
- 必须确认需求未归档
|
|
176
151
|
- 必须确认当前阶段已完成(状态为 "done")
|
|
177
|
-
-
|
|
152
|
+
- 不能回退第一个阶段(轻量级:proposal,标准级:analyze)
|
|
153
|
+
- 不能从实施阶段回退(implement)
|
|
154
|
+
- 只允许在分析阶段回退(proposal、analyze、specs、design、tasks)
|
|
178
155
|
- 必须用户确认后才能执行回退
|
|
179
156
|
- 删除文件前检查文件是否存在
|
|
180
157
|
- 更新状态时保持一致性
|
|
@@ -183,6 +160,7 @@
|
|
|
183
160
|
|
|
184
161
|
- 如果需求不存在,提示创建新需求
|
|
185
162
|
- 如果需求已归档,提示先取消归档
|
|
186
|
-
-
|
|
163
|
+
- 如果当前在第一个阶段(轻量级:proposal,标准级:analyze),提示无法回退
|
|
164
|
+
- 如果当前在实施阶段(implement),提示无法回退,原因:代码已修改,回退文档会导致文档和代码不一致
|
|
187
165
|
- 如果所有阶段都是 pending,提示没有可回退的阶段
|
|
188
166
|
- 如果文件删除失败,提示错误信息但继续更新状态
|