@shirayner/ace 0.1.0-snapshot.3 → 0.1.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 +13 -2
- package/README.zh-CN.md +12 -3
- package/bin/ace.js +23 -0
- package/package.json +2 -1
- package/src/commands/doctor.js +14 -5
- package/src/commands/list.js +21 -3
- package/src/commands/spec.js +124 -0
- package/src/core/constants.js +19 -9
- package/src/core/installer.js +20 -0
- package/src/core/spec-installer.js +205 -0
- package/src/core/yaml-merger.js +45 -0
- package/templates/CLAUDE.md +3 -0
- package/templates/openspec/config.yaml +150 -0
- package/templates/openspec/evolution/adr.md +23 -0
- package/templates/openspec/evolution/glossary.md +24 -0
- package/templates/openspec/evolution/risk-map.md +43 -0
- package/templates/openspec/issues/design-issues.md +218 -0
- package/templates/openspec/issues/requirement-issues.md +214 -0
- package/templates/openspec/issues/retrospective-notes.md +40 -0
- package/templates/openspec/procedures/design-clarification-flow.md +57 -0
- package/templates/openspec/procedures/evolution-system.md +128 -0
- package/templates/openspec/procedures/interactive-clarification-protocol.md +54 -0
- package/templates/openspec/procedures/requirement-clarification-flow.md +55 -0
- package/templates/openspec/retrospective-template.md +81 -0
- package/templates/openspec/taxonomy/design-issue-taxonomy.md +180 -0
- package/templates/openspec/taxonomy/requirement-issue-taxonomy.md +155 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
schema: spec-driven
|
|
2
|
+
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# mspec 增强配置 v5 — 寄生模式
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# mspec 通过 context 和 rules 注入 OpenSpec 工作流,不改变 OpenSpec schema。
|
|
7
|
+
# 核心目标:捕获需求/设计中的不确定性,避免基于假设实施带来的返工。
|
|
8
|
+
# =============================================================================
|
|
9
|
+
|
|
10
|
+
version: "5.0.3"
|
|
11
|
+
language: zh
|
|
12
|
+
|
|
13
|
+
context: |
|
|
14
|
+
## 工作模式
|
|
15
|
+
|
|
16
|
+
mspec 采用"寄生模式"增强 OpenSpec 核心流程:在关键阶段注入前置/后置检查,
|
|
17
|
+
不改变 OpenSpec schema。跳过澄清 = AI 基于假设实施 = 大概率返工。
|
|
18
|
+
|
|
19
|
+
## 门禁条件(强制,不满足时禁止继续)
|
|
20
|
+
|
|
21
|
+
| 阶段 | 前置条件 | 触发动作 |
|
|
22
|
+
|------|----------|----------|
|
|
23
|
+
| proposal 前 | spec/requirement-issues.md 状态为 `clarified` | 执行需求澄清流程 |
|
|
24
|
+
| tasks 前 | spec/design-issues.md 状态为 `clarified` 或 `resolved` | 执行设计澄清流程 |
|
|
25
|
+
|
|
26
|
+
澄清流程文档(含详细执行步骤):
|
|
27
|
+
- 需求澄清:openspec/templates/procedures/requirement-clarification-flow.md
|
|
28
|
+
- 设计澄清:openspec/templates/procedures/design-clarification-flow.md
|
|
29
|
+
- 交互式提问通用协议:openspec/templates/procedures/interactive-clarification-protocol.md
|
|
30
|
+
|
|
31
|
+
## 澄清状态机
|
|
32
|
+
|
|
33
|
+
需求澄清:discovering → clarifying → clarified → superseded
|
|
34
|
+
设计澄清:analyzing → clarifying → clarified → resolved
|
|
35
|
+
|
|
36
|
+
## 问题严重程度
|
|
37
|
+
|
|
38
|
+
- 🔴 High:阻塞性,必须澄清后才能继续
|
|
39
|
+
- 🟡 Medium:重要,建议澄清
|
|
40
|
+
- 🟢 Low:建议性,可后续补充
|
|
41
|
+
|
|
42
|
+
## 知识库索引
|
|
43
|
+
|
|
44
|
+
- 需求问题分类学(6维度):openspec/templates/taxonomy/requirement-issue-taxonomy.md
|
|
45
|
+
- 设计问题分类学(7维度):openspec/templates/taxonomy/design-issue-taxonomy.md
|
|
46
|
+
- 问题清单模板:openspec/templates/issues/(requirement-issues.md / design-issues.md)
|
|
47
|
+
|
|
48
|
+
## 进化体系(v5)
|
|
49
|
+
|
|
50
|
+
mspec 在 archive 时自动积累项目知识,**使用越久,流程越精准**:
|
|
51
|
+
- Layer A(每次立即):ADR 技术决策 / 词汇表 / 风险图谱
|
|
52
|
+
- Layer B(积累 3+ 复盘后触发):问题分类学优化 / 任务模板 / 用户偏好
|
|
53
|
+
- Layer C(长期):规格演化历史 / 效率指标
|
|
54
|
+
|
|
55
|
+
完整说明及 archive 操作步骤:openspec/templates/procedures/evolution-system.md
|
|
56
|
+
|
|
57
|
+
## AI 知识库消费速查
|
|
58
|
+
|
|
59
|
+
每个阶段开始前读取对应知识库,避免重复已有决策:
|
|
60
|
+
- explore / propose:ADR + Glossary + Task Patterns
|
|
61
|
+
- specs:Glossary + Spec CHANGELOG
|
|
62
|
+
- design:ADR + Risk Map + 问题分类学
|
|
63
|
+
- tasks:Task Patterns + Risk Map
|
|
64
|
+
- apply:ADR + Risk Map
|
|
65
|
+
- archive:全部 → 更新全部 → 触发进化分析
|
|
66
|
+
|
|
67
|
+
# =============================================================================
|
|
68
|
+
# 阶段规则
|
|
69
|
+
# =============================================================================
|
|
70
|
+
|
|
71
|
+
rules:
|
|
72
|
+
# ===========================================================================
|
|
73
|
+
# proposal — 需求澄清门禁
|
|
74
|
+
# ===========================================================================
|
|
75
|
+
proposal:
|
|
76
|
+
- |
|
|
77
|
+
BEFORE creating proposal:
|
|
78
|
+
1. 检查 spec/requirement-issues.md 是否存在且状态为 clarified
|
|
79
|
+
2. 不满足 → 执行 openspec/templates/procedures/requirement-clarification-flow.md 中的完整流程
|
|
80
|
+
3. 通过后创建 proposal,在 Why / Capabilities / Impact 中引用澄清决策
|
|
81
|
+
- "🚫 禁止跳过:requirement-issues.md 不存在或状态非 clarified 时,禁止创建 proposal"
|
|
82
|
+
|
|
83
|
+
# ===========================================================================
|
|
84
|
+
# specs — 与澄清结果保持一致
|
|
85
|
+
# ===========================================================================
|
|
86
|
+
specs:
|
|
87
|
+
- |
|
|
88
|
+
创建 specs 时:
|
|
89
|
+
- 参考 requirement-issues.md 中的功能点定义,确保规格与澄清结果一致
|
|
90
|
+
- 需求有变更(MODIFIED/REMOVED/RENAMED)时,在问题清单中记录变更原因
|
|
91
|
+
|
|
92
|
+
# ===========================================================================
|
|
93
|
+
# design — 技术决策四要素 + 设计澄清门禁
|
|
94
|
+
# ===========================================================================
|
|
95
|
+
design:
|
|
96
|
+
- |
|
|
97
|
+
创建 design.md 时,每个技术决策必须包含:
|
|
98
|
+
- 选择了什么方案
|
|
99
|
+
- 为什么选择(决策理由)
|
|
100
|
+
- 考虑过哪些备选方案
|
|
101
|
+
- 为什么放弃备选方案
|
|
102
|
+
注意体现 requirement-issues.md 中澄清的约束条件。
|
|
103
|
+
- |
|
|
104
|
+
AFTER creating design.md:
|
|
105
|
+
1. 检查 spec/design-issues.md 是否存在且状态为 clarified 或 resolved
|
|
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
|
+
# ===========================================================================
|
|
113
|
+
tasks:
|
|
114
|
+
- |
|
|
115
|
+
创建 tasks 时:
|
|
116
|
+
- 基于最终确定的技术方案(已经过设计澄清)
|
|
117
|
+
- 确保任务覆盖 design-issues.md 中所有 🔴 High 决策
|
|
118
|
+
- 设计澄清导致 design.md 重大变更时,相应调整任务列表
|
|
119
|
+
- 任务描述中引用相关设计决策(方便追溯)
|
|
120
|
+
|
|
121
|
+
# ===========================================================================
|
|
122
|
+
# apply — 严格遵循澄清决策
|
|
123
|
+
# ===========================================================================
|
|
124
|
+
apply:
|
|
125
|
+
- |
|
|
126
|
+
实施前:读取 spec/requirement-issues.md 和 spec/design-issues.md,了解所有澄清决策。
|
|
127
|
+
- |
|
|
128
|
+
实施中:严格遵循澄清决策。发现新问题时:
|
|
129
|
+
暂停 → 评估问题类型(需求/设计)→ 更新对应问题清单 → 可选启动澄清补充 → 继续
|
|
130
|
+
完成每个任务后立即用 "- [x]" 标记完成。
|
|
131
|
+
- |
|
|
132
|
+
轻量观察(选做,记录到 spec/retrospective-notes.md,供归档时汇入复盘报告):
|
|
133
|
+
- 澄清未覆盖但实际重要的问题 → 【需求层面的意外】
|
|
134
|
+
- 设计不明确需临时决策的问题 → 【设计层面的意外】
|
|
135
|
+
- 澄清有效避免返工的案例 → 【好的实践】
|
|
136
|
+
- 高风险代码区域或意外技术问题 → 【风险事件】
|
|
137
|
+
|
|
138
|
+
# ===========================================================================
|
|
139
|
+
# archive — 复盘 + 知识库更新 + 进化分析
|
|
140
|
+
# ===========================================================================
|
|
141
|
+
archive:
|
|
142
|
+
- |
|
|
143
|
+
BEFORE archiving — 生成复盘报告:
|
|
144
|
+
1. 读取 spec/requirement-issues.md、design-issues.md、retrospective-notes.md(如存在)、design.md、proposal.md
|
|
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
|
|
@@ -0,0 +1,23 @@
|
|
|
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 后将自动填充。*
|
|
@@ -0,0 +1,24 @@
|
|
|
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 后将自动填充。*
|
|
@@ -0,0 +1,43 @@
|
|
|
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 后将自动填充。*
|
|
@@ -0,0 +1,218 @@
|
|
|
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
|
+
<!-- 任何补充说明 -->
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# 需求问题清单
|
|
2
|
+
|
|
3
|
+
## 变更信息
|
|
4
|
+
- **变更名称**: [change-name]
|
|
5
|
+
- **当前阶段**: `discovering` | `clarifying` | `clarified` | `superseded`
|
|
6
|
+
- **最后更新**: [YYYY-MM-DD]
|
|
7
|
+
- **下次检查**: [YYYY-MM-DD]
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 功能点问题矩阵
|
|
12
|
+
|
|
13
|
+
<!--
|
|
14
|
+
说明:
|
|
15
|
+
1. 按 OpenSpec Capabilities 结构组织
|
|
16
|
+
2. 每个功能点下按问题分类维度列出具体问题
|
|
17
|
+
3. 问题 ID 格式:R[功能点序号]-[分类序号][序号] 例如 R1-001
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
### 功能点 1: [功能点名称]
|
|
23
|
+
|
|
24
|
+
#### 基本信息
|
|
25
|
+
- **功能点 ID**: [kebab-case-id]
|
|
26
|
+
- **对应 Spec**: `specs/[功能点ID]/spec.md`
|
|
27
|
+
- **优先级**: P0 / P1 / P2
|
|
28
|
+
- **负责人**: [@name]
|
|
29
|
+
|
|
30
|
+
#### 问题列表
|
|
31
|
+
|
|
32
|
+
##### 1. 功能完整性问题
|
|
33
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
34
|
+
|---------|----------|----------|------|----------|
|
|
35
|
+
| R1-001 | [一句话描述问题] | 🔴 High / 🟡 Medium / 🟢 Low | `open` / `clarifying` / `clarified` | [澄清后的结论] |
|
|
36
|
+
| R1-002 | | | | |
|
|
37
|
+
|
|
38
|
+
**R1-001 详细说明**:
|
|
39
|
+
- **问题类型**: 功能边界模糊 / 功能流程缺失 / 功能依赖未说明
|
|
40
|
+
- **具体表现**: [详细描述问题现象,引用需求原文]
|
|
41
|
+
- **影响范围**: [如果不澄清会导致什么后果]
|
|
42
|
+
- **建议选项**:
|
|
43
|
+
- A) [选项A描述]
|
|
44
|
+
- B) [选项B描述]
|
|
45
|
+
- C) [选项C描述]
|
|
46
|
+
- D) 自定义...
|
|
47
|
+
- **澄清后**: [交互式澄清后自动填写]
|
|
48
|
+
- **澄清时间**: [YYYY-MM-DD]
|
|
49
|
+
- **澄清人**: [@name]
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
##### 2. 数据相关问题
|
|
54
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
55
|
+
|---------|----------|----------|------|----------|
|
|
56
|
+
| R1-010 | | | | |
|
|
57
|
+
| R1-011 | | | | |
|
|
58
|
+
|
|
59
|
+
**R1-010 详细说明**:
|
|
60
|
+
- **问题类型**: 数据定义模糊 / 数据量级未明确 / 数据一致性问题
|
|
61
|
+
- **具体表现**:
|
|
62
|
+
- **影响范围**:
|
|
63
|
+
- **建议选项**:
|
|
64
|
+
- **澄清后**:
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
##### 3. 用户体验问题
|
|
69
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
70
|
+
|---------|----------|----------|------|----------|
|
|
71
|
+
| R1-020 | | | | |
|
|
72
|
+
| R1-021 | | | | |
|
|
73
|
+
|
|
74
|
+
**R1-020 详细说明**:
|
|
75
|
+
- **问题类型**: 用户场景缺失 / 交互方式未确定 / 性能体验要求
|
|
76
|
+
- **具体表现**:
|
|
77
|
+
- **影响范围**:
|
|
78
|
+
- **建议选项**:
|
|
79
|
+
- **澄清后**:
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
##### 4. 边界与异常
|
|
84
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
85
|
+
|---------|----------|----------|------|----------|
|
|
86
|
+
| R1-030 | | | | |
|
|
87
|
+
| R1-031 | | | | |
|
|
88
|
+
|
|
89
|
+
**R1-030 详细说明**:
|
|
90
|
+
- **问题类型**: 边界条件未定义 / 异常场景缺失 / 权限与安全
|
|
91
|
+
- **具体表现**:
|
|
92
|
+
- **影响范围**:
|
|
93
|
+
- **建议选项**:
|
|
94
|
+
- **澄清后**:
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
##### 5. 集成与依赖
|
|
99
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
100
|
+
|---------|----------|----------|------|----------|
|
|
101
|
+
| R1-040 | | | | |
|
|
102
|
+
| R1-041 | | | | |
|
|
103
|
+
|
|
104
|
+
**R1-040 详细说明**:
|
|
105
|
+
- **问题类型**: 外部系统集成 / 内部模块依赖 / 环境依赖
|
|
106
|
+
- **具体表现**:
|
|
107
|
+
- **影响范围**:
|
|
108
|
+
- **建议选项**:
|
|
109
|
+
- **澄清后**:
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
##### 6. 优先级与范围
|
|
114
|
+
| 问题 ID | 问题描述 | 严重程度 | 状态 | 澄清结果 |
|
|
115
|
+
|---------|----------|----------|------|----------|
|
|
116
|
+
| R1-050 | | | | |
|
|
117
|
+
| R1-051 | | | | |
|
|
118
|
+
|
|
119
|
+
**R1-050 详细说明**:
|
|
120
|
+
- **问题类型**: 必需 vs 可选 / 时间约束 / 资源约束
|
|
121
|
+
- **具体表现**:
|
|
122
|
+
- **影响范围**:
|
|
123
|
+
- **建议选项**:
|
|
124
|
+
- **澄清后**:
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 功能点 2: [功能点名称]
|
|
129
|
+
|
|
130
|
+
#### 基本信息
|
|
131
|
+
- **功能点 ID**: [kebab-case-id]
|
|
132
|
+
- **对应 Spec**: `specs/[功能点ID]/spec.md`
|
|
133
|
+
- **优先级**: P0 / P1 / P2
|
|
134
|
+
- **负责人**: [@name]
|
|
135
|
+
|
|
136
|
+
#### 问题列表
|
|
137
|
+
|
|
138
|
+
[同上结构...]
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 问题统计
|
|
143
|
+
|
|
144
|
+
| 分类 | 总计 | 已澄清 | 待澄清 | 已解决 |
|
|
145
|
+
|------|------|--------|--------|--------|
|
|
146
|
+
| 功能完整性 | 0 | 0 | 0 | 0 |
|
|
147
|
+
| 数据相关 | 0 | 0 | 0 | 0 |
|
|
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
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 澄清记录
|
|
157
|
+
|
|
158
|
+
### 交互式澄清会话 1: [YYYY-MM-DD]
|
|
159
|
+
- **参与者**: [@name1, @name2, ...]
|
|
160
|
+
- **澄清模式**: 命令行交互式
|
|
161
|
+
- **澄清的问题**: [问题 ID 列表]
|
|
162
|
+
- **达成的决策**:
|
|
163
|
+
1. [决策 1]
|
|
164
|
+
2. [决策 2]
|
|
165
|
+
- **更新后的状态**: `clarifying` → `clarified`
|
|
166
|
+
- **下一步行动**: [如果有]
|
|
167
|
+
|
|
168
|
+
### 交互式澄清会话 2: [YYYY-MM-DD]
|
|
169
|
+
|
|
170
|
+
[同上结构...]
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 状态流转说明
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
discovering: AI 正在分析需求,发现问题
|
|
178
|
+
→ 发现问题后自动转为 clarifying
|
|
179
|
+
|
|
180
|
+
clarifying: 问题已列出,等待交互式澄清
|
|
181
|
+
→ 使用命令行界面一问一答澄清
|
|
182
|
+
→ 每题回答后立即同步到本文档
|
|
183
|
+
→ 支持 'q' 退出,下次自动恢复
|
|
184
|
+
→ 支持 's' 跳过 Low 优先级问题
|
|
185
|
+
|
|
186
|
+
clarified: 所有 High 和 Medium 问题已澄清
|
|
187
|
+
→ 可以创建/更新 proposal
|
|
188
|
+
→ AI 检查是否发现新问题(可能回到 discovering)
|
|
189
|
+
|
|
190
|
+
superseded: 需求已变更,本文档已过时
|
|
191
|
+
→ 创建新的问题清单
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**当前状态**: `[current-status]`
|
|
195
|
+
|
|
196
|
+
**状态变更历史**:
|
|
197
|
+
- [YYYY-MM-DD]: `discovering` → `clarifying` (AI 完成问题发现)
|
|
198
|
+
- [YYYY-MM-DD]: `clarifying` → `clarified` (完成澄清会话 1)
|
|
199
|
+
- ...
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 关联文档
|
|
204
|
+
|
|
205
|
+
- **提案文档**: `proposal.md`
|
|
206
|
+
- **功能规格**: `specs/*/spec.md`
|
|
207
|
+
- **设计问题清单**: `spec/design-issues.md`
|
|
208
|
+
- **分类学参考**: `openspec/templates/requirement-issue-taxonomy.md`
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 备注
|
|
213
|
+
|
|
214
|
+
<!-- 任何补充说明 -->
|