@shirayner/ace 0.1.3 → 0.1.4-snapshot.20260423234641
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/package.json +1 -1
- package/src/core/constants.js +2 -13
- package/templates/openspec/config.yaml +110 -120
- package/templates/openspec/dimensions.md +11 -0
- package/templates/openspec/experience-template.md +25 -0
- package/templates/openspec/evolution/adr.md +0 -23
- package/templates/openspec/evolution/glossary.md +0 -24
- package/templates/openspec/evolution/risk-map.md +0 -43
- package/templates/openspec/issues/design-issues.md +0 -218
- package/templates/openspec/issues/requirement-issues.md +0 -214
- package/templates/openspec/issues/retrospective-notes.md +0 -40
- package/templates/openspec/procedures/design-clarification-flow.md +0 -57
- package/templates/openspec/procedures/evolution-system.md +0 -128
- package/templates/openspec/procedures/interactive-clarification-protocol.md +0 -54
- package/templates/openspec/procedures/requirement-clarification-flow.md +0 -55
- package/templates/openspec/retrospective-template.md +0 -81
- package/templates/openspec/taxonomy/design-issue-taxonomy.md +0 -180
- package/templates/openspec/taxonomy/requirement-issue-taxonomy.md +0 -155
package/package.json
CHANGED
package/src/core/constants.js
CHANGED
|
@@ -52,19 +52,8 @@ export const ROLES = {
|
|
|
52
52
|
// Spec (project-level) constants
|
|
53
53
|
export const OPENSPEC_TEMPLATES_DIR = path.join(__dirname, '..', '..', 'templates', 'openspec');
|
|
54
54
|
export const SPEC_TEMPLATE_FILES = [
|
|
55
|
-
'
|
|
56
|
-
'
|
|
57
|
-
'issues/requirement-issues.md',
|
|
58
|
-
'issues/design-issues.md',
|
|
59
|
-
'issues/retrospective-notes.md',
|
|
60
|
-
'evolution/adr.md',
|
|
61
|
-
'evolution/glossary.md',
|
|
62
|
-
'evolution/risk-map.md',
|
|
63
|
-
'procedures/requirement-clarification-flow.md',
|
|
64
|
-
'procedures/design-clarification-flow.md',
|
|
65
|
-
'procedures/interactive-clarification-protocol.md',
|
|
66
|
-
'procedures/evolution-system.md',
|
|
67
|
-
'retrospective-template.md',
|
|
55
|
+
'dimensions.md',
|
|
56
|
+
'experience-template.md',
|
|
68
57
|
];
|
|
69
58
|
|
|
70
59
|
/**
|
|
@@ -1,150 +1,140 @@
|
|
|
1
1
|
schema: spec-driven
|
|
2
|
-
|
|
3
|
-
# =============================================================================
|
|
4
|
-
# aspec (ace-spec) 增强配置 v5 — 寄生模式
|
|
5
|
-
# =============================================================================
|
|
6
|
-
# aspec 通过 context 和 rules 注入 OpenSpec 工作流,不改变 OpenSpec schema。
|
|
7
|
-
# 核心目标:捕获需求/设计中的不确定性,避免基于假设实施带来的返工。
|
|
8
|
-
# =============================================================================
|
|
9
|
-
|
|
10
|
-
version: "5.0.3"
|
|
2
|
+
version: 8.0.0
|
|
11
3
|
language: zh
|
|
12
4
|
|
|
13
5
|
context: |
|
|
14
6
|
## 工作模式
|
|
7
|
+
aspec 寄生于 OpenSpec 工作流,通过 context 和 rules 注入增强能力,不修改 OpenSpec 本身。
|
|
8
|
+
核心理念:对齐优先于效率。准确完成用户真正想要的,胜过高效完成 AI 以为的。
|
|
15
9
|
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
## 流程概览
|
|
11
|
+
explore → [需求澄清 → 对齐确认] → proposal → specs
|
|
12
|
+
→ [设计澄清 → 对齐确认] → design.md → [用户审批] → tasks
|
|
13
|
+
→ apply → [复盘与知识进化] → archive → [收敛检查]
|
|
18
14
|
|
|
19
|
-
##
|
|
15
|
+
## 通用原则:惊讶测试
|
|
16
|
+
替用户做选择时,如果用户此刻看到该决策会惊讶 → 暂停,展示选项等待确认。
|
|
20
17
|
|
|
21
|
-
|
|
22
|
-
|------|----------|----------|
|
|
23
|
-
| proposal 前 | spec/requirement-issues.md 状态为 `clarified` | 执行需求澄清流程 |
|
|
24
|
-
| tasks 前 | spec/design-issues.md 状态为 `clarified` 或 `resolved` | 执行设计澄清流程 |
|
|
18
|
+
## 门禁条件
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
| 阶段 | 前置条件 |
|
|
21
|
+
|------|----------|
|
|
22
|
+
| proposal | 需求澄清完成 + 对齐确认通过 |
|
|
23
|
+
| design.md | 设计澄清完成 + 对齐确认通过 |
|
|
24
|
+
| tasks | 用户审批 design.md |
|
|
30
25
|
|
|
31
26
|
## 澄清状态机
|
|
27
|
+
- 需求:discovering → clarifying → clarified → superseded
|
|
28
|
+
- 设计:analyzing → clarifying → clarified → resolved
|
|
29
|
+
|
|
30
|
+
## 严重度
|
|
31
|
+
- High:阻塞性,必须澄清 / Medium:建议澄清 / Low:可选
|
|
32
|
+
|
|
33
|
+
## Spec 质量标准
|
|
34
|
+
- proposal:每个 Capability 有明确边界和验收条件
|
|
35
|
+
- specs:场景覆盖核心路径 + 已知边界条件
|
|
36
|
+
- design:每个 High 决策有选择、理由、备选方案
|
|
37
|
+
- tasks:可独立验证,粒度适合单次实现
|
|
38
|
+
|
|
39
|
+
## Issue Schema
|
|
40
|
+
- 需求问题:id (R{功能序号}-{编号}), description, severity, status, answer
|
|
41
|
+
- 设计问题:id (D{维度序号}-{编号}), description, severity, status, decision, rationale
|
|
42
|
+
- 按功能点或维度分组,含统计汇总。格式自行组织。
|
|
43
|
+
|
|
44
|
+
## 实施观察笔记
|
|
45
|
+
apply 阶段记录到 spec/notes.md,分四类:需求意外 / 设计意外 / 好的实践 / 风险事件
|
|
32
46
|
|
|
33
|
-
|
|
34
|
-
设计澄清:analyzing → clarifying → clarified → resolved
|
|
47
|
+
## 澄清与对齐协议
|
|
35
48
|
|
|
36
|
-
|
|
49
|
+
需求澄清(proposal 前)和设计澄清(design.md 前)共用此协议,分两个独立步骤:
|
|
37
50
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
51
|
+
### 步骤一:澄清
|
|
52
|
+
通过 AskUserQuestion 工具批量提问所有 High/Medium 问题,标注总数和严重度分布。
|
|
53
|
+
用户可中途退出(q),进度保存到问题清单。收到完整回答后统一更新问题清单。
|
|
54
|
+
差异:需求澄清无问题时可跳过;设计澄清即使无问题也须展示决策摘要。
|
|
41
55
|
|
|
42
|
-
|
|
56
|
+
### 步骤二:对齐确认
|
|
57
|
+
澄清完成后,AI 用 markdown 文本向用户呈现 4 要素:
|
|
58
|
+
1. 我的理解 — 复述核心需求/设计意图
|
|
59
|
+
2. 计划方向 — 接下来文档将包含什么
|
|
60
|
+
3. 关键假设 — 不确定的假设
|
|
61
|
+
4. 完成标准 — 产出合格条件
|
|
62
|
+
呈现完毕后,调用 AskUserQuestion 让用户确认或调整。
|
|
63
|
+
注意:对齐内容用普通 markdown 文本输出,不放在 AskUserQuestion 中(大段内容显示异常)。
|
|
43
64
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- 问题清单模板:openspec/templates/issues/(requirement-issues.md / design-issues.md)
|
|
65
|
+
### 设计额外要求
|
|
66
|
+
design.md 创建后、tasks 前,须展示设计核心摘要,通过 AskUserQuestion 获得审批。
|
|
47
67
|
|
|
48
|
-
##
|
|
68
|
+
## 知识进化
|
|
49
69
|
|
|
50
|
-
|
|
51
|
-
- Layer A(每次立即):ADR 技术决策 / 词汇表 / 风险图谱
|
|
52
|
-
- Layer B(积累 3+ 复盘后触发):问题分类学优化 / 任务模板 / 用户偏好
|
|
53
|
-
- Layer C(长期):规格演化历史 / 效率指标
|
|
70
|
+
### 生命周期:提取 → 存储 → 主动应用 → 验证 → 收敛
|
|
54
71
|
|
|
55
|
-
|
|
72
|
+
### 提取(每次 apply 完成后)
|
|
56
73
|
|
|
57
|
-
|
|
74
|
+
| 复盘章节 | 目标 | 更新内容 |
|
|
75
|
+
|----------|------|----------|
|
|
76
|
+
| 技术决策 | experience.md 技术决策段 | 选择 + 理由 + 备选 + 状态 |
|
|
77
|
+
| 新术语 | experience.md 领域词汇段 | 定义 + 首次出现 |
|
|
78
|
+
| 风险事件 | experience.md 风险图谱段 | 描述 + 区域 + 类型 |
|
|
79
|
+
| 澄清漏检 | dimensions.md 盲区段 | 新盲区 |
|
|
80
|
+
| 复盘记录 | experience.md 复盘记录段 | 变更概述·澄清质量·过程经验·效率信号 |
|
|
58
81
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- specs:Glossary + Spec CHANGELOG
|
|
62
|
-
- design:ADR + Risk Map + 问题分类学
|
|
63
|
-
- tasks:Task Patterns + Risk Map
|
|
64
|
-
- apply:ADR + Risk Map
|
|
65
|
-
- archive:全部 → 更新全部 → 触发进化分析
|
|
82
|
+
### 主动应用(每次新 change 开始)
|
|
83
|
+
读取 openspec/experience.md 和 dimensions.md 盲区段,主动告知用户相关知识。
|
|
66
84
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
# =============================================================================
|
|
85
|
+
### 收敛
|
|
86
|
+
条目超阈值时合并/淘汰(需用户确认)。
|
|
70
87
|
|
|
71
88
|
rules:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
89
|
+
explore:
|
|
90
|
+
pre: |
|
|
91
|
+
**知识主动应用**
|
|
92
|
+
读取 openspec/experience.md 和 dimensions.md 盲区段,
|
|
93
|
+
告知用户与当前 change 相关的已有知识。
|
|
94
|
+
|
|
75
95
|
proposal:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
1.
|
|
79
|
-
2.
|
|
80
|
-
3.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
# specs — 与澄清结果保持一致
|
|
85
|
-
# ===========================================================================
|
|
96
|
+
pre: |
|
|
97
|
+
**需求澄清 + 对齐确认**
|
|
98
|
+
1. 读取 dimensions.md 获取需求维度和盲区
|
|
99
|
+
2. 扫描需求不确定性,创建/更新 spec/requirement-issues.md
|
|
100
|
+
3. 步骤一(澄清):AskUserQuestion 批量提问
|
|
101
|
+
4. 步骤二(对齐确认):markdown 展示 4 要素 → AskUserQuestion 确认
|
|
102
|
+
5. 确认后标记 clarified,创建 proposal
|
|
103
|
+
|
|
86
104
|
specs:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- 需求有变更(MODIFIED/REMOVED/RENAMED)时,在问题清单中记录变更原因
|
|
91
|
-
|
|
92
|
-
# ===========================================================================
|
|
93
|
-
# design — 技术决策四要素 + 设计澄清门禁
|
|
94
|
-
# ===========================================================================
|
|
105
|
+
constraint: |
|
|
106
|
+
specs 必须与已澄清的需求一致。
|
|
107
|
+
|
|
95
108
|
design:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
2. 不满足 → 执行 openspec/templates/procedures/design-clarification-flow.md 中的完整流程
|
|
107
|
-
3. 根据澄清结果更新 design.md,通过后创建 tasks
|
|
108
|
-
- "🚫 禁止跳过:design-issues.md 不存在或状态不在 {clarified, resolved} 时,禁止创建 tasks"
|
|
109
|
-
|
|
110
|
-
# ===========================================================================
|
|
111
|
-
# tasks — 基于最终方案创建任务
|
|
112
|
-
# ===========================================================================
|
|
109
|
+
constraint: |
|
|
110
|
+
技术决策四要素:决策内容、选择理由、备选方案、排除原因。
|
|
111
|
+
post: |
|
|
112
|
+
**设计澄清 + 对齐确认**
|
|
113
|
+
1. 读取 dimensions.md 获取设计维度和盲区
|
|
114
|
+
2. 扫描设计不确定性,创建/更新 spec/design-issues.md
|
|
115
|
+
3. 步骤一(澄清):AskUserQuestion 批量提问(设计阶段即使无问题也须展示摘要)
|
|
116
|
+
4. 步骤二(对齐确认):markdown 展示 4 要素 → AskUserQuestion 确认
|
|
117
|
+
5. 确认后标记 clarified,创建 design.md
|
|
118
|
+
|
|
113
119
|
tasks:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
# ===========================================================================
|
|
122
|
-
# apply — 严格遵循澄清决策
|
|
123
|
-
# ===========================================================================
|
|
120
|
+
pre: |
|
|
121
|
+
**设计文档审批**
|
|
122
|
+
展示 design.md 核心摘要,通过 AskUserQuestion 获得审批后创建任务。
|
|
123
|
+
constraint: |
|
|
124
|
+
任务必须基于已审批的设计。所有 High 决策须在任务中体现。
|
|
125
|
+
|
|
124
126
|
apply:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
- 澄清有效避免返工的案例 → 【好的实践】
|
|
136
|
-
- 高风险代码区域或意外技术问题 → 【风险事件】
|
|
137
|
-
|
|
138
|
-
# ===========================================================================
|
|
139
|
-
# archive — 复盘 + 知识库更新 + 进化分析
|
|
140
|
-
# ===========================================================================
|
|
127
|
+
constraint: |
|
|
128
|
+
实施前读取所有澄清决策。新问题暂停评估,记录到 spec/notes.md。
|
|
129
|
+
Spec-Code 一致性:偏差须记录理由。
|
|
130
|
+
post: |
|
|
131
|
+
**复盘与知识进化**
|
|
132
|
+
1. 回顾本次实施过程,按 experience-template.md 复盘记录段的结构追加复盘
|
|
133
|
+
2. 提取知识更新 openspec/experience.md(技术决策/术语/风险)
|
|
134
|
+
3. 漏检问题更新 dimensions.md 盲区段
|
|
135
|
+
4. 展示 5-8 行摘要供用户确认
|
|
136
|
+
|
|
141
137
|
archive:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
2. 在 openspec/retrospectives/{YYYY-MM-DD}-{change-name}.md 创建复盘报告
|
|
146
|
-
格式参见 openspec/templates/retrospective-template.md
|
|
147
|
-
3. 向用户展示复盘摘要(5-8 行),然后继续归档
|
|
148
|
-
- |
|
|
149
|
-
AFTER archiving — 执行进化体系更新(Layer A 立即 + Layer B 条件触发):
|
|
150
|
-
完整操作步骤参见 openspec/templates/procedures/evolution-system.md
|
|
138
|
+
post: |
|
|
139
|
+
**收敛检查**
|
|
140
|
+
experience.md 条目超阈值时提议合并/淘汰(需用户确认)。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# 项目经验库
|
|
2
|
+
|
|
3
|
+
## 技术决策 (ADR)
|
|
4
|
+
<!-- 每次 apply 完成后自动从复盘提取。格式自行组织。 -->
|
|
5
|
+
*暂无记录。首次 apply 完成后自动填充。*
|
|
6
|
+
|
|
7
|
+
## 领域词汇
|
|
8
|
+
<!-- 每次 apply 完成后自动提取新术语。 -->
|
|
9
|
+
*暂无记录。*
|
|
10
|
+
|
|
11
|
+
## 风险图谱
|
|
12
|
+
|
|
13
|
+
### 代码热点
|
|
14
|
+
<!-- 频繁变更或容易出问题的代码区域。 -->
|
|
15
|
+
*暂无记录。*
|
|
16
|
+
|
|
17
|
+
### 问题模式
|
|
18
|
+
<!-- 多个 change 中反复出现的问题类型。 -->
|
|
19
|
+
*暂无记录。*
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 复盘记录
|
|
24
|
+
<!-- 每次 apply 完成后追加一条。结构提示:变更概述 / 澄清质量(命中·漏检·噪音) / 技术决策 / 过程经验 / 效率信号 -->
|
|
25
|
+
*暂无记录。*
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# 技术决策账本(Architecture Decision Records)
|
|
2
|
-
|
|
3
|
-
> **用途**: 记录项目中已做出的架构和技术决策,避免重复讨论已决定的事项。
|
|
4
|
-
> **更新时机**: 每次 archive 时,自动从复盘报告提取新决策追加。
|
|
5
|
-
>
|
|
6
|
-
> **如何消费**:
|
|
7
|
-
> - design 阶段:先查询此文件,已有决策不重复讨论
|
|
8
|
-
> - explore 阶段:比较技术方案时直接引用
|
|
9
|
-
> - propose 阶段:评估 Impact 时与已有决策对齐
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<!-- 格式:
|
|
14
|
-
## {决策标题} | 来源: {change-name} | 日期: {YYYY-MM-DD}
|
|
15
|
-
|
|
16
|
-
**选择**: 选了什么方案
|
|
17
|
-
**理由**: 为什么选择这个方案
|
|
18
|
-
**备选**: 考虑过哪些其他方案
|
|
19
|
-
**放弃原因**: 为什么放弃备选方案
|
|
20
|
-
**状态**: active / superseded / deprecated
|
|
21
|
-
-->
|
|
22
|
-
|
|
23
|
-
*暂无决策记录。第一次 archive 后将自动填充。*
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# 领域词汇表(Domain Glossary)
|
|
2
|
-
|
|
3
|
-
> **用途**: 项目中稳定使用的业务术语、技术概念的标准定义,以及 Capability 命名规范。
|
|
4
|
-
> **更新时机**: 每次 archive 时,自动从 proposal 的 Capabilities 章节提取新术语追加。
|
|
5
|
-
>
|
|
6
|
-
> **如何消费**:
|
|
7
|
-
> - propose 阶段:Capabilities 命名时复用标准术语保持一致
|
|
8
|
-
> - specs 阶段:Scenario 中使用标准术语,减少歧义
|
|
9
|
-
> - 新成员加入时:快速建立项目语言认知
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<!-- 格式:
|
|
14
|
-
## {术语}
|
|
15
|
-
|
|
16
|
-
**定义**: 一句话定义
|
|
17
|
-
**首次出现**: {change-name}({date})
|
|
18
|
-
**相关术语**: 与哪些其他术语有关联
|
|
19
|
-
**备注**: 如有歧义或特殊用法说明
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
-->
|
|
23
|
-
|
|
24
|
-
*暂无词汇记录。第一次 archive 后将自动填充。*
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# 风险图谱(Risk Map)
|
|
2
|
-
|
|
3
|
-
> **用途**: 记录项目中已知的高风险代码区域、高频 bug 模式,以及历史上实际发生的实施问题。
|
|
4
|
-
> **更新时机**: 每次 archive 时,从复盘报告"六、风险事件"章节提取新发现追加。
|
|
5
|
-
>
|
|
6
|
-
> **如何消费**:
|
|
7
|
-
> - design 阶段:优先检查已知风险区域
|
|
8
|
-
> - tasks 阶段:高风险区任务自动细化粒度、增加验证步骤
|
|
9
|
-
> - apply 阶段:进入高风险区时主动预警
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 代码热点
|
|
14
|
-
|
|
15
|
-
> 历史上频繁变更或容易出问题的代码区域。
|
|
16
|
-
|
|
17
|
-
<!-- 格式:
|
|
18
|
-
### {模块/文件路径}
|
|
19
|
-
|
|
20
|
-
**风险类型**: 频繁变更 / 并发问题 / 边界复杂 / 依赖脆弱 / 其他
|
|
21
|
-
**历史问题**: 具体描述
|
|
22
|
-
**首次记录**: {change-name}({date})
|
|
23
|
-
**注意事项**: 处理时需要特别关注的点
|
|
24
|
-
-->
|
|
25
|
-
|
|
26
|
-
*暂无记录。第一次 archive 后将自动填充。*
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 问题模式
|
|
31
|
-
|
|
32
|
-
> 在多个 change 中反复出现的问题类型。
|
|
33
|
-
|
|
34
|
-
<!-- 格式:
|
|
35
|
-
### {问题模式名称}
|
|
36
|
-
|
|
37
|
-
**描述**: 什么情况下会触发
|
|
38
|
-
**影响范围**: 影响哪些功能/模块
|
|
39
|
-
**出现次数**: N 次(最近一次: {change-name})
|
|
40
|
-
**预防措施**: 如何在下次避免
|
|
41
|
-
-->
|
|
42
|
-
|
|
43
|
-
*暂无记录。第一次 archive 后将自动填充。*
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
# 设计问题清单
|
|
2
|
-
|
|
3
|
-
## 变更信息
|
|
4
|
-
- **变更名称**: [change-name]
|
|
5
|
-
- **当前阶段**: `analyzing` | `clarifying` | `clarified` | `resolved`
|
|
6
|
-
- **最后更新**: [YYYY-MM-DD]
|
|
7
|
-
- **下次检查**: [YYYY-MM-DD]
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 设计维度问题矩阵
|
|
12
|
-
|
|
13
|
-
<!--
|
|
14
|
-
说明:
|
|
15
|
-
1. 按设计问题分类学维度组织
|
|
16
|
-
2. 每个设计维度下列出具体问题
|
|
17
|
-
3. 问题 ID 格式:D[维度序号]-[序号] 例如 D1-001
|
|
18
|
-
-->
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
### 维度 1: 架构决策
|
|
23
|
-
|
|
24
|
-
#### 问题列表
|
|
25
|
-
|
|
26
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
27
|
-
|---------|----------|----------|------|----------|
|
|
28
|
-
| D1-001 | [如:架构模式选择未定] | 🔴 High / 🟡 Medium / 🟢 Low | `open` / `clarifying` / `clarified` | [决策结论] |
|
|
29
|
-
| D1-002 | [如:服务边界划分不清晰] | | | |
|
|
30
|
-
|
|
31
|
-
**D1-001 详细说明**:
|
|
32
|
-
- **问题类型**: 架构方案不确定
|
|
33
|
-
- **具体表现**: [详细描述]
|
|
34
|
-
- **影响范围**: [对系统的影响]
|
|
35
|
-
- **可选方案**:
|
|
36
|
-
- A) [描述 + 优缺点]
|
|
37
|
-
- B) [描述 + 优缺点]
|
|
38
|
-
- C) [描述 + 优缺点]
|
|
39
|
-
- D) 自定义...
|
|
40
|
-
- **决策结果**: [交互式澄清后的决策]
|
|
41
|
-
- **决策理由**: [为什么选这个方案]
|
|
42
|
-
- **澄清时间**: [YYYY-MM-DD]
|
|
43
|
-
- **澄清人**: [@name]
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
### 维度 2: 技术选型
|
|
48
|
-
|
|
49
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
50
|
-
|---------|----------|----------|------|----------|
|
|
51
|
-
| D2-010 | [如:消息队列选型未定] | | | |
|
|
52
|
-
| D2-011 | [如:缓存方案未确定] | | | |
|
|
53
|
-
|
|
54
|
-
**D2-010 详细说明**:
|
|
55
|
-
- **问题类型**: 核心框架/库未确定
|
|
56
|
-
- **具体表现**:
|
|
57
|
-
- **影响范围**:
|
|
58
|
-
- **可选方案**:
|
|
59
|
-
- **决策结果**:
|
|
60
|
-
- **决策理由**:
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### 维度 3: 接口设计
|
|
65
|
-
|
|
66
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
67
|
-
|---------|----------|----------|------|----------|
|
|
68
|
-
| D3-020 | [如:API 版本管理策略未定] | | | |
|
|
69
|
-
|
|
70
|
-
**D3-020 详细说明**:
|
|
71
|
-
- **问题类型**: API 契约未定 / 数据流不清晰 / 异步处理机制
|
|
72
|
-
- **具体表现**:
|
|
73
|
-
- **影响范围**:
|
|
74
|
-
- **可选方案**:
|
|
75
|
-
- **决策结果**:
|
|
76
|
-
- **决策理由**:
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
### 维度 4: 数据与状态
|
|
81
|
-
|
|
82
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
83
|
-
|---------|----------|----------|------|----------|
|
|
84
|
-
| D4-030 | [如:订单状态机未定义] | | | |
|
|
85
|
-
|
|
86
|
-
**D4-030 详细说明**:
|
|
87
|
-
- **问题类型**: 数据模型未定 / 状态机未定义 / 数据迁移方案
|
|
88
|
-
- **具体表现**:
|
|
89
|
-
- **影响范围**:
|
|
90
|
-
- **可选方案**:
|
|
91
|
-
- **决策结果**:
|
|
92
|
-
- **决策理由**:
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
### 维度 5: 安全与合规
|
|
97
|
-
|
|
98
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
99
|
-
|---------|----------|----------|------|----------|
|
|
100
|
-
| D5-040 | [如:权限模型未设计] | | | |
|
|
101
|
-
|
|
102
|
-
**D5-040 详细说明**:
|
|
103
|
-
- **问题类型**: 认证授权未设计 / 数据安全 / 审计与日志
|
|
104
|
-
- **具体表现**:
|
|
105
|
-
- **影响范围**:
|
|
106
|
-
- **可选方案**:
|
|
107
|
-
- **决策结果**:
|
|
108
|
-
- **决策理由**:
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
### 维度 6: 性能与可靠性
|
|
113
|
-
|
|
114
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
115
|
-
|---------|----------|----------|------|----------|
|
|
116
|
-
| D6-050 | [如:缓存一致性策略未定] | | | |
|
|
117
|
-
|
|
118
|
-
**D6-050 详细说明**:
|
|
119
|
-
- **问题类型**: 性能瓶颈未识别 / 缓存策略未定 / 降级与熔断
|
|
120
|
-
- **具体表现**:
|
|
121
|
-
- **影响范围**:
|
|
122
|
-
- **可选方案**:
|
|
123
|
-
- **决策结果**:
|
|
124
|
-
- **决策理由**:
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
### 维度 7: 部署与运维
|
|
129
|
-
|
|
130
|
-
| 问题 ID | 问题描述 | 严重程度 | 状态 | 决策结果 |
|
|
131
|
-
|---------|----------|----------|------|----------|
|
|
132
|
-
| D7-060 | [如:灰度发布策略未定] | | | |
|
|
133
|
-
|
|
134
|
-
**D7-060 详细说明**:
|
|
135
|
-
- **问题类型**: 部署方案未定 / 监控告警 / 配置管理
|
|
136
|
-
- **具体表现**:
|
|
137
|
-
- **影响范围**:
|
|
138
|
-
- **可选方案**:
|
|
139
|
-
- **决策结果**:
|
|
140
|
-
- **决策理由**:
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## 问题统计
|
|
145
|
-
|
|
146
|
-
| 设计维度 | 总计 | 已澄清 | 待澄清 | 已解决 |
|
|
147
|
-
|----------|------|--------|--------|--------|
|
|
148
|
-
| 架构决策 | 0 | 0 | 0 | 0 |
|
|
149
|
-
| 技术选型 | 0 | 0 | 0 | 0 |
|
|
150
|
-
| 接口设计 | 0 | 0 | 0 | 0 |
|
|
151
|
-
| 数据与状态 | 0 | 0 | 0 | 0 |
|
|
152
|
-
| 安全与合规 | 0 | 0 | 0 | 0 |
|
|
153
|
-
| 性能与可靠性 | 0 | 0 | 0 | 0 |
|
|
154
|
-
| 部署与运维 | 0 | 0 | 0 | 0 |
|
|
155
|
-
| **总计** | 0 | 0 | 0 | 0 |
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## 澄清记录
|
|
160
|
-
|
|
161
|
-
### 交互式澄清会话 1: [YYYY-MM-DD]
|
|
162
|
-
- **参与者**: [@name1, @name2, ...]
|
|
163
|
-
- **澄清模式**: 命令行交互式
|
|
164
|
-
- **澄清的问题**: [问题 ID 列表]
|
|
165
|
-
- **设计决策**:
|
|
166
|
-
1. [决策 1]
|
|
167
|
-
2. [决策 2]
|
|
168
|
-
- **设计变更**: [design.md 的更新内容]
|
|
169
|
-
- **任务调整**: [tasks.md 的调整]
|
|
170
|
-
|
|
171
|
-
### 交互式澄清会话 2: [YYYY-MM-DD]
|
|
172
|
-
|
|
173
|
-
[同上结构...]
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## 状态流转说明
|
|
178
|
-
|
|
179
|
-
```
|
|
180
|
-
analyzing: AI 正在分析设计方案,发现问题
|
|
181
|
-
→ 发现问题后自动转为 clarifying
|
|
182
|
-
|
|
183
|
-
clarifying: 问题已列出,等待交互式澄清
|
|
184
|
-
→ 使用命令行界面一问一答澄清
|
|
185
|
-
→ 每题回答后立即同步到本文档
|
|
186
|
-
→ 支持 'q' 退出,下次自动恢复
|
|
187
|
-
→ 支持 's' 跳过 Low 优先级问题
|
|
188
|
-
|
|
189
|
-
clarified: 所有 High 和 Medium 问题已澄清
|
|
190
|
-
→ 可以创建/更新 tasks
|
|
191
|
-
→ 根据澄清更新 design.md
|
|
192
|
-
→ 状态可转为 resolved
|
|
193
|
-
|
|
194
|
-
resolved: 设计已根据澄清更新,问题已解决
|
|
195
|
-
→ 可以创建/更新 tasks
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
**当前状态**: `[current-status]`
|
|
199
|
-
|
|
200
|
-
**状态变更历史**:
|
|
201
|
-
- [YYYY-MM-DD]: `analyzing` → `clarifying` (AI 完成问题分析)
|
|
202
|
-
- [YYYY-MM-DD]: `clarifying` → `clarified` (完成澄清会话 1)
|
|
203
|
-
- [YYYY-MM-DD]: `clarified` → `resolved` (design.md 已更新)
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## 关联文档
|
|
208
|
-
|
|
209
|
-
- **技术方案**: `design.md`
|
|
210
|
-
- **实施任务**: `tasks.md`
|
|
211
|
-
- **需求问题清单**: `spec/requirement-issues.md`
|
|
212
|
-
- **分类学参考**: `openspec/templates/design-issue-taxonomy.md`
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## 备注
|
|
217
|
-
|
|
218
|
-
<!-- 任何补充说明 -->
|