@gordon.gan/specflow 1.4.0-beta → 1.4.1
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 +1 -1
- package/package.json +1 -1
- package/prompts/approval/database-guidance.md +79 -0
- package/prompts/approval/generate.md +569 -290
- package/skills/database/LICENSE +405 -0
- package/skills/database/ORIGIN.md +6 -0
- package/skills/database/README.md +30 -0
- package/skills/database/elasticsearch/LICENSE.txt +202 -0
- package/skills/database/elasticsearch/SKILL.md +199 -0
- package/skills/database/elasticsearch/examples/01-fulltext-search.md +215 -0
- package/skills/database/elasticsearch/examples/02-aggregation-report.md +206 -0
- package/skills/database/elasticsearch/examples/03-reindex-zero-downtime.md +200 -0
- package/skills/database/elasticsearch/examples/04-cluster-monitoring.md +204 -0
- package/skills/database/elasticsearch/references/01-query-dsl-fulltext.md +162 -0
- package/skills/database/elasticsearch/references/02-query-dsl-term.md +210 -0
- package/skills/database/elasticsearch/references/03-aggregations-metric.md +161 -0
- package/skills/database/elasticsearch/references/04-aggregations-bucket.md +236 -0
- package/skills/database/elasticsearch/references/05-mapping-types.md +134 -0
- package/skills/database/elasticsearch/references/06-analyzers.md +187 -0
- package/skills/database/elasticsearch/references/07-cluster-ops.md +225 -0
- package/skills/database/elasticsearch/references/08-elk-integration.md +170 -0
- package/skills/database/mysql/SKILL.md +195 -0
- package/skills/database/mysql/examples/01-connection-pool.md +75 -0
- package/skills/database/mysql/examples/02-slow-query-optimization.md +98 -0
- package/skills/database/mysql/examples/03-master-slave-setup.md +144 -0
- package/skills/database/mysql/examples/04-backup-strategy.md +212 -0
- package/skills/database/mysql/references/01-functions-string.md +103 -0
- package/skills/database/mysql/references/02-functions-date.md +152 -0
- package/skills/database/mysql/references/03-functions-aggregate-window.md +167 -0
- package/skills/database/mysql/references/04-functions-json.md +129 -0
- package/skills/database/mysql/references/05-sql-ddl-types.md +235 -0
- package/skills/database/mysql/references/06-index-optimization.md +232 -0
- package/skills/database/mysql/references/07-replication-ha.md +213 -0
- package/skills/database/mysql/references/08-backup-restore.md +207 -0
- package/skills/database/mysql/references/09-advanced-features.md +345 -0
- package/skills/database/oracle/LICENSE.txt +202 -0
- package/skills/database/oracle/SKILL.md +238 -0
- package/skills/database/oracle/examples/01-plsql-procedure.md +90 -0
- package/skills/database/oracle/examples/02-awr-analysis.md +99 -0
- package/skills/database/oracle/examples/03-rman-backup.md +108 -0
- package/skills/database/oracle/examples/04-dataguard-setup.md +146 -0
- package/skills/database/oracle/references/01-functions-string.md +91 -0
- package/skills/database/oracle/references/02-functions-date.md +71 -0
- package/skills/database/oracle/references/03-analytic-functions.md +103 -0
- package/skills/database/oracle/references/04-plsql-guide.md +303 -0
- package/skills/database/oracle/references/05-performance-tuning.md +164 -0
- package/skills/database/oracle/references/06-backup-recovery.md +115 -0
- package/skills/database/oracle/references/07-dataguard-rac.md +76 -0
- package/skills/database/oracle/references/08-security.md +170 -0
- package/skills/database/oracle/references/09-sql-syntax.md +152 -0
- package/skills/database/oracle/references/10-features.md +174 -0
- package/skills/database/postgresql/LICENSE.txt +202 -0
- package/skills/database/postgresql/SKILL.md +182 -0
- package/skills/database/postgresql/examples/.gitkeep +0 -0
- package/skills/database/postgresql/examples/01-jsonb-query.md +72 -0
- package/skills/database/postgresql/examples/02-cte-recursive.md +110 -0
- package/skills/database/postgresql/examples/03-performance-tuning.md +114 -0
- package/skills/database/postgresql/examples/04-streaming-replication.md +113 -0
- package/skills/database/postgresql/references/.gitkeep +0 -0
- package/skills/database/postgresql/references/01-functions-string.md +174 -0
- package/skills/database/postgresql/references/02-functions-datetime.md +54 -0
- package/skills/database/postgresql/references/03-functions-aggregate-window.md +142 -0
- package/skills/database/postgresql/references/04-functions-jsonb.md +117 -0
- package/skills/database/postgresql/references/05-fulltext-search.md +109 -0
- package/skills/database/postgresql/references/06-index-types.md +95 -0
- package/skills/database/postgresql/references/07-partition-fdw.md +133 -0
- package/skills/database/postgresql/references/08-replication-backup.md +215 -0
- package/skills/database/redis/LICENSE.txt +202 -0
- package/skills/database/redis/SKILL.md +922 -0
- package/skills/database/redis/examples/01-cache-usage.md +104 -0
- package/skills/database/redis/examples/02-session-storage.md +72 -0
- package/skills/database/redis/examples/03-leaderboard.md +63 -0
- package/skills/database/redis/examples/04-redis-cluster-setup.md +70 -0
- package/skills/database/redis/examples/05-stream-queue.md +65 -0
- package/skills/database/redis/references/command-quick-ref.md +180 -0
- package/skills/database/redis/references/commands-admin-key.md +413 -0
- package/skills/database/redis/references/commands-set-sorted-advanced.md +539 -0
- package/skills/database/redis/references/commands-string-hash-list.md +458 -0
- package/skills/database/redis/references/memory-optimization.md +150 -0
- package/skills/database/redis/references/redis-conf-production.md +139 -0
- package/skills/specflow-approval/SKILL.md +100 -181
- package/templates/approval.md +295 -221
package/templates/approval.md
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
Approval document template (
|
|
2
|
+
Approval document template (v3 — implementer-first narrative).
|
|
3
3
|
Generated by /specflow:approval after refine converges (phase=refined).
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
OPTIONAL artifact — does not affect phase, apply gate, or archive.
|
|
5
|
+
|
|
6
|
+
Chapter order (v3):
|
|
7
|
+
1. 绪论与边界 — proposal + optional explore + AI; absorbs former Executive Summary
|
|
8
|
+
2. 技术方案评估 — decisions / risks / design quality
|
|
9
|
+
3. 架构整体设计 — diagrams + 图要点说明 + components (moved up before acceptance)
|
|
10
|
+
4. 方案详细设计 — 设计要点 + Happy Path + 业务场景时序 + data/API/...
|
|
11
|
+
5. 验收标准 — after design (契约放在开发设计讲完之后)
|
|
12
|
+
6. 测试策略
|
|
13
|
+
7. 部署/发布/回滚
|
|
14
|
+
8. 闭环性检查
|
|
15
|
+
9. 可实施性评估
|
|
16
|
+
10. 审批意见
|
|
17
|
+
|
|
18
|
+
Quality Gates (G1–G4) + Style & Tone: see prompts/approval/generate.md Part E;
|
|
19
|
+
enforced on every generated approval.md.
|
|
13
20
|
-->
|
|
14
21
|
|
|
15
22
|
# 技术方案审批文档: <change-name>
|
|
@@ -18,99 +25,100 @@
|
|
|
18
25
|
> 经 AI 7 维闭环检查、架构整体设计、方案详细设计、测试策略、部署/发布/回滚、设计质量评估与可实施性评估,供人工审批使用。
|
|
19
26
|
> 生成时间: YYYY-MM-DD HH:MM | phase: refined | 产物语言: <en|zh-CN> | 技术栈: <stack>
|
|
20
27
|
|
|
28
|
+
> **质量红线(生成时必须满足)**:G1 超 5 行流程→Mermaid · G2 接口须有失败示例 · G3 JSON/新列须有存量填充策略 · G4 须有回滚数据兼容说明。文风:通俗、缩写首次注解、禁用「尽量/大概/一般情况下」。
|
|
29
|
+
|
|
21
30
|
---
|
|
22
31
|
|
|
23
|
-
## 1.
|
|
24
|
-
|
|
25
|
-
| 维度 | 值 |
|
|
26
|
-
|------|-----|
|
|
27
|
-
| Change 名称 | <change-name> |
|
|
28
|
-
| 创建日期 | <from .specflow.yaml created> |
|
|
29
|
-
| 当前 phase | refined |
|
|
30
|
-
| 技术栈 | <Node/TypeScript / Go / Python / Rust / unknown> |
|
|
31
|
-
| Capability 数 | N (新增 X / 修改 Y) |
|
|
32
|
-
| Requirement 数 | N |
|
|
33
|
-
| Scenario 数 | N (功能可测试 A / 文档可测试 B / 不可测试 C) |
|
|
34
|
-
| 任务总数 | N (已完成 X / 待实施 Y) |
|
|
35
|
-
| Design 决策数 | N |
|
|
36
|
-
| 识别风险数 | N |
|
|
37
|
-
| 代码锚点文件数 | N (存在 M / 不存在 K / 新建 L) |
|
|
38
|
-
| 基线 spec 数 | N (或 "无基线 — greenfield") |
|
|
39
|
-
| 过度设计信号数 | N (0=PASS / 1-2=WARNING / 3+=FAIL) |
|
|
40
|
-
| 扩展性信号数 | N (4-5=PASS / 0-3=WARNING) |
|
|
41
|
-
|
|
42
|
-
> 上述计数基于四件套文件 + 项目代码 + 主 specs 精确统计,非 AI 估算。
|
|
32
|
+
## 1. 绪论与边界 (Introduction & Boundaries)
|
|
43
33
|
|
|
44
|
-
|
|
34
|
+
<!-- 数据来源: proposal.md(必选) + explore.md(若存在且 Status: confirmed 则吸收) + AI 提炼。
|
|
35
|
+
本章同时承担原「变更摘要」职责:Why / What Changes / Impact 写入 1.1–1.4,不再单独设变更摘要章。 -->
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
### 1.1 背景与痛点 (Background & Pain Points)
|
|
47
38
|
|
|
48
|
-
|
|
49
|
-
<!-- 2-3 句话提炼 proposal.md 的 Why -->
|
|
39
|
+
<!-- proposal.md ## Why (+ explore 洞察);Mermaid 现状流程;痛点红色标注;每痛点一句话代价。 -->
|
|
50
40
|
|
|
51
|
-
|
|
52
|
-
<!--
|
|
41
|
+
```mermaid
|
|
42
|
+
<!-- 现状流程图 + 红色痛点节点 -->
|
|
43
|
+
```
|
|
53
44
|
|
|
54
|
-
|
|
55
|
-
<!-- 整合 proposal.md Impact,AI 评估影响等级 -->
|
|
45
|
+
**痛点清单**(对应图中红色节点):
|
|
56
46
|
|
|
57
|
-
|
|
47
|
+
| 痛点 | 代价 |
|
|
48
|
+
|------|------|
|
|
49
|
+
| <痛点1> | <代价> |
|
|
58
50
|
|
|
59
|
-
|
|
51
|
+
### 1.2 做什么与影响面 (What & Impact)
|
|
60
52
|
|
|
61
|
-
<!--
|
|
62
|
-
这里的内容来自 specs/**/*.md,是 /specflow:verify 将检查的契约。 -->
|
|
53
|
+
<!-- AI 从 proposal What Changes / Impact (+ explore) 提炼;按 新增/修改/移除/重命名,标注 BREAKING。 -->
|
|
63
54
|
|
|
64
|
-
|
|
55
|
+
**做什么**:
|
|
65
56
|
|
|
66
|
-
|
|
57
|
+
| 类别 | 内容 | BREAKING? |
|
|
58
|
+
|------|------|-----------|
|
|
59
|
+
| 新增 | | |
|
|
60
|
+
| 修改 | | |
|
|
61
|
+
| 移除 / 重命名 | | |
|
|
67
62
|
|
|
68
|
-
|
|
69
|
-
<!-- requirement 描述 -->
|
|
63
|
+
**影响面**:
|
|
70
64
|
|
|
71
|
-
|
|
|
72
|
-
|
|
73
|
-
|
|
|
65
|
+
| 影响区域 | 影响等级 | 说明 |
|
|
66
|
+
|---------|---------|------|
|
|
67
|
+
| | 高/中/低 | |
|
|
74
68
|
|
|
75
|
-
|
|
69
|
+
### 1.3 业务闭环与目标 (Business Loop & Goals)
|
|
76
70
|
|
|
77
|
-
|
|
71
|
+
<!-- 完成后业务如何闭环;User Journey;目标可验证(引用 §5 验收标准)。 -->
|
|
78
72
|
|
|
79
|
-
|
|
80
|
-
<!--
|
|
73
|
+
```mermaid
|
|
74
|
+
<!-- User Journey -->
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**业务目标**(可验证):
|
|
81
78
|
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
| 目标 | 可验证方式(引用 §5) |
|
|
80
|
+
|------|---------------------|
|
|
81
|
+
| <目标1> | §5 <Scenario 名> |
|
|
84
82
|
|
|
85
|
-
### 4
|
|
83
|
+
### 1.4 非目标 (Non-Goals)
|
|
84
|
+
|
|
85
|
+
| 非目标 | 不做理由 |
|
|
86
|
+
|--------|---------|
|
|
87
|
+
| <非目标1> | <理由> |
|
|
88
|
+
|
|
89
|
+
---
|
|
86
90
|
|
|
87
|
-
|
|
91
|
+
## 2. 技术方案评估 (Technical Design Review)
|
|
92
|
+
|
|
93
|
+
### 2.1 现状与约束 (Context & Constraints)
|
|
94
|
+
|
|
95
|
+
### 2.2 目标与非目标 (Goals & Non-Goals)
|
|
96
|
+
|
|
97
|
+
### 2.3 决策评审表 (Decision Review)
|
|
88
98
|
|
|
89
99
|
| 决策 | 选定方案 | 备选方案 | 理由 | 影响评估 | 状态 |
|
|
90
100
|
|------|---------|---------|------|---------|------|
|
|
91
101
|
| D1: <name> | <方案> | <A/B> | <理由> | <评估> | Proposed |
|
|
92
102
|
|
|
93
|
-
###
|
|
94
|
-
|
|
95
|
-
<!-- design 识别的风险 + AI 识别的未声明风险 -->
|
|
103
|
+
### 2.4 风险与权衡 (Risks & Trade-offs)
|
|
96
104
|
|
|
97
105
|
| 风险 | 严重等级 | 缓解措施 | 就绪度 |
|
|
98
106
|
|------|---------|---------|--------|
|
|
99
107
|
| <name> | 高/中/低 | <措施> | ✅ 已缓解 / ⚠️ 待落实 / ❌ 未识别 |
|
|
100
108
|
|
|
101
|
-
###
|
|
109
|
+
### 2.5 设计质量评估 (Design Quality)
|
|
102
110
|
|
|
103
111
|
#### 过度设计检查
|
|
104
112
|
|
|
105
113
|
| # | 信号 | 检测到? | 证据(design/tasks 位置) |
|
|
106
114
|
|---|------|--------|----------------------|
|
|
107
|
-
| 1 | 为未提出的需求设计接口 | ✅是/❌否 |
|
|
115
|
+
| 1 | 为未提出的需求设计接口 | ✅是/❌否 | |
|
|
108
116
|
| 2 | 不必要的抽象层 | | |
|
|
109
117
|
| 3 | 预建未使用的基础设施 | | |
|
|
110
118
|
| 4 | 配置项超出当前需求 | | |
|
|
111
119
|
| 5 | 复杂度超出问题规模 | | |
|
|
112
120
|
|
|
113
|
-
**过度设计结论:** PASS
|
|
121
|
+
**过度设计结论:** PASS / WARNING / FAIL
|
|
114
122
|
|
|
115
123
|
#### 扩展性评估
|
|
116
124
|
|
|
@@ -122,244 +130,313 @@
|
|
|
122
130
|
| 4 | 向后兼容路径 | | |
|
|
123
131
|
| 5 | 决策理由提及扩展性权衡 | | |
|
|
124
132
|
|
|
125
|
-
**扩展性结论:** PASS
|
|
133
|
+
**扩展性结论:** PASS / WARNING
|
|
126
134
|
|
|
127
135
|
**设计质量总评:** PASS / WARNING / FAIL
|
|
128
|
-
<!-- 特别:过度设计 WARNING/FAIL + 扩展性 WARNING → 升级 FAIL -->
|
|
129
136
|
|
|
130
137
|
---
|
|
131
138
|
|
|
132
|
-
##
|
|
139
|
+
## 3. 架构整体设计 (Architecture Design)
|
|
140
|
+
|
|
141
|
+
<!-- 宏观结构;标杆对齐 scenario-job-compile §3:图 + 图要点说明 + 组件职责边界。
|
|
142
|
+
与 §4 详细设计互补。不涉及则写:不涉及架构变更(单模块/单文件调整,模块边界无变化)。 -->
|
|
133
143
|
|
|
134
|
-
|
|
144
|
+
### 3.1 总体架构 (Architecture Overview)
|
|
135
145
|
|
|
136
|
-
|
|
146
|
+
<!-- 至少一张模块依赖/分层图;推荐再加系统交互总览。标注 [新增]/[修改]。 -->
|
|
137
147
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
148
|
+
```mermaid
|
|
149
|
+
<!-- 模块依赖 / 分层架构图 -->
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**设计说明 / 图要点**(强制,紧跟图后;编号列表,解释分层、边界、不变式——不是重复念节点名):
|
|
153
|
+
|
|
154
|
+
1. …
|
|
155
|
+
2. …
|
|
143
156
|
|
|
144
157
|
```mermaid
|
|
145
|
-
<!--
|
|
158
|
+
<!-- 可选:系统交互总览(谁调用谁) -->
|
|
146
159
|
```
|
|
147
160
|
|
|
148
|
-
|
|
161
|
+
**交互要点**(若有交互图): …
|
|
149
162
|
|
|
150
|
-
|
|
163
|
+
### 3.2 核心组件说明 (Core Components)
|
|
151
164
|
|
|
152
165
|
| 组件 | 职责 | 边界(做什么 / 不做什么) | 依赖 | 变更类型 |
|
|
153
166
|
|------|------|-------------------------|------|---------|
|
|
154
167
|
| `<组件名>` | 一句话职责 | 做什么;不做什么 | 依赖的组件 | 新增/修改/不变 |
|
|
155
168
|
|
|
156
|
-
|
|
157
|
-
与 §5.1 图一一对应;组件边界可追溯到 §4 决策。 -->
|
|
158
|
-
|
|
159
|
-
### 5.3 架构一致性自检
|
|
169
|
+
### 3.3 架构一致性自检
|
|
160
170
|
|
|
161
|
-
<!--
|
|
162
|
-
- 每个组件有"不做什么"的边界
|
|
163
|
-
- 图与表一一对应(表依赖与图边一致)
|
|
164
|
-
- 组件边界可追溯到 §4 决策
|
|
165
|
-
- 未涉及架构变更时显式标注 -->
|
|
171
|
+
<!-- 图有要点说明;组件有「不做什么」;图与表一一对应;可追溯到 §2 决策 -->
|
|
166
172
|
|
|
167
173
|
---
|
|
168
174
|
|
|
169
|
-
##
|
|
175
|
+
## 4. 方案详细设计 (Detailed Design)
|
|
170
176
|
|
|
171
|
-
<!--
|
|
172
|
-
|
|
177
|
+
<!-- 实现级细节。标杆对齐 scenario-job-compile §4:设计要点 → Happy Path → 业务场景(+说明) → 数据/接口等。
|
|
178
|
+
可追溯到 §5 验收标准与 §2 决策。不涉及的类别显式「不涉及 X」。 -->
|
|
173
179
|
|
|
174
|
-
###
|
|
180
|
+
### 4.1 设计要点一览
|
|
175
181
|
|
|
176
|
-
<!--
|
|
177
|
-
纯 CLI/库项目覆盖配置结构 / 状态文件 / YAML schema。
|
|
178
|
-
不涉及则写:不涉及数据库变更(纯逻辑/CLI 变更,无持久化数据模型)。 -->
|
|
182
|
+
<!-- 从 design 决策提炼 P1…Pn;实现时不可推翻的不变量。 -->
|
|
179
183
|
|
|
180
|
-
|
|
184
|
+
| 编号 | 要点 | 说明 |
|
|
185
|
+
|------|------|------|
|
|
186
|
+
| P1 | | |
|
|
181
187
|
|
|
182
|
-
|
|
183
|
-
项目类型适配:CLI→commander 参数;库→导出函数签名;Web→HTTP API。
|
|
184
|
-
不涉及则写:不涉及接口变更(内部实现调整,无对外/跨模块接口变化)。 -->
|
|
188
|
+
### 4.2 核心业务时序 · Happy Path(强制)
|
|
185
189
|
|
|
186
|
-
|
|
190
|
+
<!-- 成功路径完整 Mermaid sequenceDiagram(建议 autonumber);覆盖主角色从发起到成功终态。
|
|
191
|
+
图后必须有「设计要点」说明(不变式、失败不在本图展开的边界)。 -->
|
|
187
192
|
|
|
188
|
-
|
|
189
|
-
可用 Mermaid sequenceDiagram / stateDiagram-v2。
|
|
190
|
-
不涉及则写:不涉及复杂业务流程(单步/线性实现,无状态流转)。 -->
|
|
193
|
+
**目的**: …
|
|
191
194
|
|
|
192
|
-
|
|
195
|
+
```mermaid
|
|
196
|
+
sequenceDiagram
|
|
197
|
+
autonumber
|
|
198
|
+
%% Happy Path:成功路径完整时序
|
|
199
|
+
```
|
|
193
200
|
|
|
194
|
-
|
|
195
|
-
不涉及则写:不涉及非平凡算法(逻辑简单,无复杂数据处理)。 -->
|
|
201
|
+
**设计要点**:
|
|
196
202
|
|
|
197
|
-
|
|
203
|
+
- …
|
|
198
204
|
|
|
199
|
-
|
|
200
|
-
不涉及则写:不涉及配置或运行环境变更。 -->
|
|
205
|
+
### 4.3 业务场景时序
|
|
201
206
|
|
|
202
|
-
|
|
207
|
+
<!-- 每个关键业务场景一小节:目的 + sequenceDiagram/flowchart/stateDiagram + 设计要点说明。
|
|
208
|
+
至少覆盖本变更核心分支(失败/幂等/兼容缺省等);禁止有图无说明。 -->
|
|
203
209
|
|
|
204
|
-
|
|
205
|
-
不涉及则写:不涉及破坏性变更(向后兼容)。 -->
|
|
210
|
+
#### 场景 A · `<名称>`
|
|
206
211
|
|
|
207
|
-
|
|
212
|
+
**目的**: …
|
|
208
213
|
|
|
209
|
-
|
|
214
|
+
```mermaid
|
|
215
|
+
sequenceDiagram
|
|
216
|
+
autonumber
|
|
217
|
+
```
|
|
210
218
|
|
|
211
|
-
|
|
219
|
+
**设计要点**:
|
|
212
220
|
|
|
213
|
-
|
|
214
|
-
只列出本变更实际需要的测试层级;不涉及的层级显式标注"不涉及"。 -->
|
|
221
|
+
- …
|
|
215
222
|
|
|
216
|
-
###
|
|
223
|
+
### 4.4 数据结构 / 数据模型变更 (Data Structures)
|
|
217
224
|
|
|
218
|
-
<!--
|
|
225
|
+
<!-- 库表硬门槛 + DB 技能路由:命中 skills/database/<stack> 则 Read 补强;
|
|
226
|
+
未命中 LLM-fallback。总则表填写「DB 技能」列。详见 prompts/approval/database-guidance.md。 -->
|
|
219
227
|
|
|
220
|
-
|
|
221
|
-
|---------|---------|----------|---------------|---------------|
|
|
222
|
-
| 单元测试 | 核心函数/类 | <框架> | 逻辑正确、边界处理 | §3 Scenario 引用 |
|
|
223
|
-
| 集成测试 | 模块交互/接口契约 | <框架> | 协作正确、契约一致 | §3 Scenario 引用 |
|
|
224
|
-
| 验收测试 | spec 的 WHEN/THEN | <E2E/CLI> | 逐 Scenario 验证行为 | §3 核心 Scenario |
|
|
225
|
-
| 回归测试 | 主 specs 基线 | <框架> | 不破坏已有功能 | 主 specs |
|
|
226
|
-
| 性能/安全/兼容 | 如适用 | <工具> | NFR 目标 | NFR |
|
|
228
|
+
#### 4.4.1 总则与本迭代结构变更结论
|
|
227
229
|
|
|
228
|
-
|
|
230
|
+
| 项 | 结论 |
|
|
231
|
+
|----|------|
|
|
232
|
+
| 数据库迁移 | <有 / 本迭代零迁移> |
|
|
233
|
+
| 新建表 | <表名 / 无> |
|
|
234
|
+
| 新增/修改/删除列 | <清单 / 无> |
|
|
235
|
+
| 新增索引 | <清单 / 无> |
|
|
236
|
+
| DDL 来源 | <migrations 路径 / 本迭代新增> |
|
|
237
|
+
| DB 技能 | <skills/database/mysql|…(本地) / LLM-fallback> |
|
|
229
238
|
|
|
230
|
-
|
|
239
|
+
```sql
|
|
240
|
+
-- 本迭代变更语句
|
|
241
|
+
```
|
|
231
242
|
|
|
232
|
-
|
|
243
|
+
#### 4.4.2 ER 图(核心实体关系)
|
|
233
244
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
- 新增测试与修改既有测试已区分 -->
|
|
245
|
+
```mermaid
|
|
246
|
+
erDiagram
|
|
247
|
+
```
|
|
238
248
|
|
|
239
|
-
|
|
249
|
+
**图说明**:
|
|
240
250
|
|
|
241
|
-
|
|
251
|
+
| 表名 | 中文名 | 职责(一句话) | 结构 | 本迭代动作 |
|
|
252
|
+
|------|--------|--------------|------|------------|
|
|
253
|
+
| | | | | |
|
|
242
254
|
|
|
243
|
-
|
|
255
|
+
#### 4.4.3 逐表详设
|
|
244
256
|
|
|
245
|
-
|
|
257
|
+
##### `<table_name>`(中文名)
|
|
246
258
|
|
|
247
|
-
|
|
259
|
+
**本迭代动作**: …
|
|
260
|
+
**本迭代变更语句**: …
|
|
248
261
|
|
|
249
|
-
|
|
262
|
+
```sql
|
|
263
|
+
CREATE TABLE `table_name` (
|
|
264
|
+
...
|
|
265
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
266
|
+
COMMENT='...';
|
|
267
|
+
```
|
|
250
268
|
|
|
251
|
-
|
|
269
|
+
| 字段名称 | 字段类型 | 是否有默认值 | 字段说明 | 本迭代用法 |
|
|
270
|
+
|----------|----------|--------------|----------|------------|
|
|
271
|
+
| | | | | |
|
|
252
272
|
|
|
253
|
-
|
|
273
|
+
#### 4.4.4 非表字段、数据迁移与回滚兼容
|
|
254
274
|
|
|
255
|
-
|
|
275
|
+
| 项 | 说明 |
|
|
276
|
+
|----|------|
|
|
277
|
+
| 协议/计算字段(不落库) | |
|
|
278
|
+
| **存量数据默认值填充策略**(G3) | JSON 变更或新增列时必填 |
|
|
279
|
+
| 结构回滚 | |
|
|
280
|
+
| **回滚数据兼容**(G4) | 旧代码能否安全忽略新数据(`omitempty` / `schema_version` 等) |
|
|
281
|
+
| 数据保留 | |
|
|
256
282
|
|
|
257
|
-
|
|
283
|
+
### 4.5 接口设计 (Interface Design)
|
|
258
284
|
|
|
259
|
-
|
|
285
|
+
<!-- 硬门槛:通道 → 清单 → 错误约定 → 逐接口字段/示例/错误表 → 调用关系。详见 generate.md §4.5。 -->
|
|
260
286
|
|
|
261
|
-
|
|
287
|
+
#### 4.5.1 总览与约定
|
|
262
288
|
|
|
263
|
-
|
|
289
|
+
**调用方与通道**:
|
|
264
290
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
- 上线后监控指标与告警明确 -->
|
|
291
|
+
| 通道 | 路径前缀 / 入口 | 调用方 | 鉴权 |
|
|
292
|
+
|------|-----------------|--------|------|
|
|
293
|
+
| | | | |
|
|
269
294
|
|
|
270
|
-
|
|
295
|
+
**本迭代接口清单**:
|
|
296
|
+
|
|
297
|
+
| 编号 | 接口 | 变更类型 | 应用场景 |
|
|
298
|
+
|------|------|----------|----------|
|
|
299
|
+
| I1 | | 新增/修改/行为扩展/不变(本迭代消费) | |
|
|
300
|
+
|
|
301
|
+
**通用错误码约定**:
|
|
302
|
+
|
|
303
|
+
| 错误类别 / 状态 | 典型 HTTP 或退出码 | 含义(本迭代) |
|
|
304
|
+
|-----------------|-------------------|--------------|
|
|
305
|
+
| | | |
|
|
306
|
+
|
|
307
|
+
#### 4.5.2 逐接口详设
|
|
308
|
+
|
|
309
|
+
##### I1 · `<短名>`(`<变更类型>`)
|
|
310
|
+
|
|
311
|
+
| 项 | 内容 |
|
|
312
|
+
|----|------|
|
|
313
|
+
| 应用场景 | |
|
|
314
|
+
| 协议 | |
|
|
315
|
+
| 本迭代变更 | |
|
|
316
|
+
|
|
317
|
+
| 字段 | 类型 | 必填 | 默认 | 说明 |
|
|
318
|
+
|------|------|------|------|------|
|
|
319
|
+
| | | | | |
|
|
320
|
+
|
|
321
|
+
**请求示例** / **成功响应示例** / **失败示例(G2 强制)** / **错误表** …
|
|
322
|
+
|
|
323
|
+
#### 4.5.3 调用关系
|
|
324
|
+
|
|
325
|
+
```text
|
|
326
|
+
调用方: I1 → …
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 4.6 核心算法 / 逻辑说明 (Core Logic)
|
|
330
|
+
|
|
331
|
+
<!-- 不涉及则写:不涉及非平凡算法(逻辑简单,无复杂数据处理)。 -->
|
|
332
|
+
|
|
333
|
+
### 4.7 配置与运行环境 (Configuration & Runtime)
|
|
334
|
+
|
|
335
|
+
<!-- 不涉及则写:不涉及配置或运行环境变更。 -->
|
|
336
|
+
|
|
337
|
+
### 4.8 兼容性与迁移 (Compatibility & Migration)
|
|
338
|
+
|
|
339
|
+
<!-- 含 G3 存量填充、G4 回滚数据兼容;无风险也须一句话声明「无新旧数据互读问题」。
|
|
340
|
+
不涉及则写:不涉及破坏性变更(向后兼容);无新形状写入,回滚仅回退应用即可。 -->
|
|
271
341
|
|
|
272
342
|
---
|
|
273
343
|
|
|
274
|
-
##
|
|
344
|
+
## 5. 验收标准 (Acceptance Criteria)
|
|
275
345
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
**Verdict:** PASS / WARNING / FAIL
|
|
279
|
-
**证据:** <!-- 覆盖表 -->
|
|
346
|
+
<!-- 放在架构与详细设计之后:开发先读怎么做,再对照契约验收。
|
|
347
|
+
按 capability 列出全部 Requirement + Scenario,3 级可测试性。来源 specs/**/*.md。 -->
|
|
280
348
|
|
|
281
|
-
###
|
|
282
|
-
<!-- design decisions ↔ spec requirements 双向追溯 -->
|
|
283
|
-
**Verdict:** PASS / WARNING / FAIL
|
|
284
|
-
**证据:**
|
|
349
|
+
### 5.1 Capability: <name>
|
|
285
350
|
|
|
286
|
-
|
|
287
|
-
<!-- scenario 完整性 + 3 级可测试性 + delta 结构 -->
|
|
288
|
-
**Verdict:** PASS / WARNING / FAIL
|
|
289
|
-
**证据:**
|
|
351
|
+
<!-- Delta 操作类型: ADDED / MODIFIED / REMOVED / RENAMED -->
|
|
290
352
|
|
|
291
|
-
|
|
292
|
-
<!-- tasks ↔ spec requirements 覆盖 + 粒度 + 占位符 -->
|
|
293
|
-
**Verdict:** PASS / WARNING / FAIL
|
|
294
|
-
**证据:**
|
|
353
|
+
#### Requirement: <name>
|
|
295
354
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
**证据:**
|
|
355
|
+
| Scenario | WHEN | THEN | 可测试性 | 说明 |
|
|
356
|
+
|----------|------|------|---------|------|
|
|
357
|
+
| <name> | <条件> | <期望> | ✅ 功能可测试 / ⚠️ 文档可测试 / ❌ 不可测试 | |
|
|
300
358
|
|
|
301
|
-
|
|
302
|
-
<!-- 读取锚点文件(只读文件本身),验证存在性 + 结构兼容性 + 技术栈一致性 -->
|
|
303
|
-
**Verdict:** PASS / WARNING / FAIL / SKIPPED (greenfield — no existing code)
|
|
304
|
-
**证据:**
|
|
359
|
+
---
|
|
305
360
|
|
|
306
|
-
|
|
307
|
-
|---------|------|---------|-----------|
|
|
308
|
-
| <path> | ✅/❌ | extend/create/modify | <!-- 具体发现:函数名/模块模式/导出形态 --> |
|
|
361
|
+
## 6. 测试策略 (Test Strategy)
|
|
309
362
|
|
|
310
|
-
|
|
363
|
+
### 6.1 分层测试矩阵
|
|
311
364
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
365
|
+
| 测试层级 | 覆盖对象 | 工具/框架 | 目标(证明什么) | 覆盖的验收标准 |
|
|
366
|
+
|---------|---------|----------|---------------|---------------|
|
|
367
|
+
| 单元测试 | 核心函数/类 | <框架> | 逻辑正确、边界处理 | §5 Scenario 引用 |
|
|
368
|
+
| 集成测试 | 模块交互/接口契约 | <框架> | 协作正确、契约一致 | §5 Scenario 引用 |
|
|
369
|
+
| 验收测试 | spec 的 WHEN/THEN | <E2E/CLI> | 逐 Scenario 验证行为 | §5 核心 Scenario |
|
|
370
|
+
| 回归测试 | 主 specs 基线 | <框架> | 不破坏已有功能 | 主 specs |
|
|
371
|
+
| 性能/安全/兼容 | 如适用 | <工具> | NFR 目标 | NFR |
|
|
316
372
|
|
|
317
|
-
|
|
318
|
-
|-----------|-------------|------|---------|------|
|
|
319
|
-
| <name> | <name> | ADDED/MODIFIED/REMOVED/RENAMED | exists/duplicate/not-found | ✅/⚠️/❌ |
|
|
373
|
+
### 6.2 测试环境与数据
|
|
320
374
|
|
|
321
|
-
###
|
|
375
|
+
### 6.3 测试策略自检
|
|
322
376
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
377
|
+
**不涉及测试变更时写**:`不涉及测试变更(纯文档/配置变更,无行为逻辑需要测试)`。
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## 7. 部署/发布/回滚方案 (Deployment & Release)
|
|
382
|
+
|
|
383
|
+
### 7.1 部署方案 (Deployment)
|
|
384
|
+
|
|
385
|
+
### 7.2 发布策略 (Release Strategy)
|
|
386
|
+
|
|
387
|
+
### 7.3 回滚方案 (Rollback)
|
|
388
|
+
|
|
389
|
+
### 7.4 监控与可观测性 (Monitoring & Observability)
|
|
390
|
+
|
|
391
|
+
### 7.5 部署方案自检
|
|
392
|
+
|
|
393
|
+
**不涉及运行时部署时写**:`不涉及运行时部署(纯库/CLI/文档项目,无服务上线,变更通过包发布/版本发布交付)`。
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## 8. 闭环性检查 (Closed-Loop Verification)
|
|
398
|
+
|
|
399
|
+
<!-- 简练输出:一张表即可。PASS/SKIPPED 一句话证据;WARNING/FAIL 最多 2–3 条要点。
|
|
400
|
+
禁止每个 Pass 开长小节、禁止再贴第二张总评表。内部分析仍跑满 Pass 1–7。 -->
|
|
401
|
+
|
|
402
|
+
| Pass | 检查项 | 结论 | 关键证据(一句话;⚠️/❌ 可列 2–3 条要点) |
|
|
403
|
+
|------|--------|------|--------------------------------------|
|
|
404
|
+
| 1 | 需求闭环 proposal↔specs | ✅/⚠️/❌ | |
|
|
405
|
+
| 2 | 方案闭环 design↔specs | ✅/⚠️/❌ | |
|
|
406
|
+
| 3 | 规格闭环 场景/可测试性/delta | ✅/⚠️/❌ | |
|
|
407
|
+
| 4 | 实施闭环 tasks↔specs | ✅/⚠️/❌ | |
|
|
408
|
+
| 5 | 风险闭环 缓解/BREAKING | ✅/⚠️/❌ | |
|
|
409
|
+
| 6 | 代码落地性 锚点/结构/栈 | ✅/⚠️/❌/⊘ | |
|
|
410
|
+
| 7 | 基线对照 主 specs | ✅/⚠️/❌/⊘ | |
|
|
332
411
|
|
|
333
412
|
**整体闭环性:** PASS / PASS WITH WARNINGS / FAIL
|
|
334
413
|
|
|
335
414
|
---
|
|
336
415
|
|
|
337
|
-
##
|
|
416
|
+
## 9. 可实施性评估 (Implementability Assessment)
|
|
338
417
|
|
|
339
418
|
| 评估维度 | 结论 | 说明 |
|
|
340
419
|
|---------|------|------|
|
|
341
|
-
| 完整性 | READY / NEEDS REFINEMENT / BLOCKED |
|
|
342
|
-
| 规格对齐 | |
|
|
343
|
-
| 任务可执行性 | |
|
|
344
|
-
| 技术可行性 | |
|
|
345
|
-
| 依赖明确性 | |
|
|
346
|
-
| 架构一致性 | |
|
|
347
|
-
| 实施风险 | |
|
|
420
|
+
| 完整性 | READY / NEEDS REFINEMENT / BLOCKED | |
|
|
421
|
+
| 规格对齐 | | |
|
|
422
|
+
| 任务可执行性 | | |
|
|
423
|
+
| 技术可行性 | | |
|
|
424
|
+
| 依赖明确性 | | |
|
|
425
|
+
| 架构一致性 | | |
|
|
426
|
+
| 实施风险 | | |
|
|
348
427
|
|
|
349
428
|
**可实施性总评:** READY / NEEDS REFINEMENT / BLOCKED
|
|
350
429
|
|
|
351
430
|
---
|
|
352
431
|
|
|
353
|
-
##
|
|
432
|
+
## 10. 审批意见 (Approval Decision)
|
|
354
433
|
|
|
355
|
-
###
|
|
434
|
+
### 10.1 AI 预审建议
|
|
356
435
|
|
|
357
436
|
**建议:** 建议批准 / 有条件批准 / 退回 refine / 拒绝
|
|
358
|
-
**理由:**
|
|
359
|
-
|
|
360
|
-
### 7.2 人工审批签字栏
|
|
437
|
+
**理由:**
|
|
361
438
|
|
|
362
|
-
|
|
439
|
+
### 10.2 人工审批签字栏
|
|
363
440
|
|
|
364
441
|
| 角色 | 姓名 | 审批结论 | 日期 | 意见 |
|
|
365
442
|
|------|------|---------|------|------|
|
|
@@ -375,16 +452,13 @@
|
|
|
375
452
|
|
|
376
453
|
| 章节 | 数据来源 | 处理方式 |
|
|
377
454
|
|------|---------|---------|
|
|
378
|
-
|
|
|
379
|
-
|
|
|
380
|
-
|
|
|
381
|
-
|
|
|
382
|
-
|
|
|
383
|
-
|
|
|
384
|
-
|
|
|
385
|
-
|
|
|
386
|
-
|
|
|
387
|
-
|
|
|
388
|
-
| 闭环性 Pass 7 | specflow/specs/ 主基线 | AI 交叉对照 |
|
|
389
|
-
| 可实施性评估 | tasks + design + specs + 项目代码 | AI 推理 |
|
|
390
|
-
| 审批意见 | 闭环性 + 设计质量 + 可实施性三重 verdict | AI 预审 + 人工签字栏 |
|
|
455
|
+
| 绪论与边界 | proposal.md + explore.md(可选) + design Non-Goals | AI 提炼;痛点图+What/Impact+User Journey+非目标;不再单列变更摘要 |
|
|
456
|
+
| 技术方案评估 | design.md | 决策表 + 风险表 + 设计质量 |
|
|
457
|
+
| 架构整体设计 | design + 锚点代码 + specs | Mermaid 图 + **图要点说明** + 组件边界表;追溯 §2 |
|
|
458
|
+
| 方案详细设计 | design + specs + 锚点 + 现网 DDL/API | 设计要点 + Happy Path + 业务场景(+说明) + 数据/接口等;追溯 §5+§2 |
|
|
459
|
+
| 验收标准 | specs/**/*.md | 放在设计之后;3 级可测试性 |
|
|
460
|
+
| 测试策略 | §5 验收标准 + 项目测试栈 | 分层矩阵映射验收标准 |
|
|
461
|
+
| 部署/发布/回滚 | §2 决策 + 运行环境 | 部署/发布/回滚/监控 |
|
|
462
|
+
| 闭环性检查 | 四件套 + 锚点 + 主 specs | 内部跑 Pass 1–7;**正文只输出一张结论表** |
|
|
463
|
+
| 可实施性评估 | tasks + design + specs + 代码 | AI 推理 |
|
|
464
|
+
| 审批意见 | 三重 verdict | AI 预审 + 人工签字栏 |
|