@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.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/prompts/approval/database-guidance.md +79 -0
  4. package/prompts/approval/generate.md +569 -290
  5. package/skills/database/LICENSE +405 -0
  6. package/skills/database/ORIGIN.md +6 -0
  7. package/skills/database/README.md +30 -0
  8. package/skills/database/elasticsearch/LICENSE.txt +202 -0
  9. package/skills/database/elasticsearch/SKILL.md +199 -0
  10. package/skills/database/elasticsearch/examples/01-fulltext-search.md +215 -0
  11. package/skills/database/elasticsearch/examples/02-aggregation-report.md +206 -0
  12. package/skills/database/elasticsearch/examples/03-reindex-zero-downtime.md +200 -0
  13. package/skills/database/elasticsearch/examples/04-cluster-monitoring.md +204 -0
  14. package/skills/database/elasticsearch/references/01-query-dsl-fulltext.md +162 -0
  15. package/skills/database/elasticsearch/references/02-query-dsl-term.md +210 -0
  16. package/skills/database/elasticsearch/references/03-aggregations-metric.md +161 -0
  17. package/skills/database/elasticsearch/references/04-aggregations-bucket.md +236 -0
  18. package/skills/database/elasticsearch/references/05-mapping-types.md +134 -0
  19. package/skills/database/elasticsearch/references/06-analyzers.md +187 -0
  20. package/skills/database/elasticsearch/references/07-cluster-ops.md +225 -0
  21. package/skills/database/elasticsearch/references/08-elk-integration.md +170 -0
  22. package/skills/database/mysql/SKILL.md +195 -0
  23. package/skills/database/mysql/examples/01-connection-pool.md +75 -0
  24. package/skills/database/mysql/examples/02-slow-query-optimization.md +98 -0
  25. package/skills/database/mysql/examples/03-master-slave-setup.md +144 -0
  26. package/skills/database/mysql/examples/04-backup-strategy.md +212 -0
  27. package/skills/database/mysql/references/01-functions-string.md +103 -0
  28. package/skills/database/mysql/references/02-functions-date.md +152 -0
  29. package/skills/database/mysql/references/03-functions-aggregate-window.md +167 -0
  30. package/skills/database/mysql/references/04-functions-json.md +129 -0
  31. package/skills/database/mysql/references/05-sql-ddl-types.md +235 -0
  32. package/skills/database/mysql/references/06-index-optimization.md +232 -0
  33. package/skills/database/mysql/references/07-replication-ha.md +213 -0
  34. package/skills/database/mysql/references/08-backup-restore.md +207 -0
  35. package/skills/database/mysql/references/09-advanced-features.md +345 -0
  36. package/skills/database/oracle/LICENSE.txt +202 -0
  37. package/skills/database/oracle/SKILL.md +238 -0
  38. package/skills/database/oracle/examples/01-plsql-procedure.md +90 -0
  39. package/skills/database/oracle/examples/02-awr-analysis.md +99 -0
  40. package/skills/database/oracle/examples/03-rman-backup.md +108 -0
  41. package/skills/database/oracle/examples/04-dataguard-setup.md +146 -0
  42. package/skills/database/oracle/references/01-functions-string.md +91 -0
  43. package/skills/database/oracle/references/02-functions-date.md +71 -0
  44. package/skills/database/oracle/references/03-analytic-functions.md +103 -0
  45. package/skills/database/oracle/references/04-plsql-guide.md +303 -0
  46. package/skills/database/oracle/references/05-performance-tuning.md +164 -0
  47. package/skills/database/oracle/references/06-backup-recovery.md +115 -0
  48. package/skills/database/oracle/references/07-dataguard-rac.md +76 -0
  49. package/skills/database/oracle/references/08-security.md +170 -0
  50. package/skills/database/oracle/references/09-sql-syntax.md +152 -0
  51. package/skills/database/oracle/references/10-features.md +174 -0
  52. package/skills/database/postgresql/LICENSE.txt +202 -0
  53. package/skills/database/postgresql/SKILL.md +182 -0
  54. package/skills/database/postgresql/examples/.gitkeep +0 -0
  55. package/skills/database/postgresql/examples/01-jsonb-query.md +72 -0
  56. package/skills/database/postgresql/examples/02-cte-recursive.md +110 -0
  57. package/skills/database/postgresql/examples/03-performance-tuning.md +114 -0
  58. package/skills/database/postgresql/examples/04-streaming-replication.md +113 -0
  59. package/skills/database/postgresql/references/.gitkeep +0 -0
  60. package/skills/database/postgresql/references/01-functions-string.md +174 -0
  61. package/skills/database/postgresql/references/02-functions-datetime.md +54 -0
  62. package/skills/database/postgresql/references/03-functions-aggregate-window.md +142 -0
  63. package/skills/database/postgresql/references/04-functions-jsonb.md +117 -0
  64. package/skills/database/postgresql/references/05-fulltext-search.md +109 -0
  65. package/skills/database/postgresql/references/06-index-types.md +95 -0
  66. package/skills/database/postgresql/references/07-partition-fdw.md +133 -0
  67. package/skills/database/postgresql/references/08-replication-backup.md +215 -0
  68. package/skills/database/redis/LICENSE.txt +202 -0
  69. package/skills/database/redis/SKILL.md +922 -0
  70. package/skills/database/redis/examples/01-cache-usage.md +104 -0
  71. package/skills/database/redis/examples/02-session-storage.md +72 -0
  72. package/skills/database/redis/examples/03-leaderboard.md +63 -0
  73. package/skills/database/redis/examples/04-redis-cluster-setup.md +70 -0
  74. package/skills/database/redis/examples/05-stream-queue.md +65 -0
  75. package/skills/database/redis/references/command-quick-ref.md +180 -0
  76. package/skills/database/redis/references/commands-admin-key.md +413 -0
  77. package/skills/database/redis/references/commands-set-sorted-advanced.md +539 -0
  78. package/skills/database/redis/references/commands-string-hash-list.md +458 -0
  79. package/skills/database/redis/references/memory-optimization.md +150 -0
  80. package/skills/database/redis/references/redis-conf-production.md +139 -0
  81. package/skills/specflow-approval/SKILL.md +100 -181
  82. package/templates/approval.md +295 -221
@@ -1,15 +1,22 @@
1
1
  <!--
2
- Approval document template (v2grounded & quality-guarded).
2
+ Approval document template (v3implementer-first narrative).
3
3
  Generated by /specflow:approval after refine converges (phase=refined).
4
- This is an OPTIONAL artifact — it does not affect phase, apply gate, or archive.
5
-
6
- The actual document is AI-generated; this template defines the section structure.
7
- v2 additions vs v1:
8
- - Pass 6 (Code Grounding) and Pass 7 (Baseline Cross-Check)
9
- - Design Quality section (over-engineering + extensibility)
10
- - Implementability expanded to 7 dimensions (added architecture consistency + implementation risk)
11
- - Scenario testability uses 3-level grading (functional / document / untestable)
12
- - Dashboard includes anchor files, baseline specs, tech stack, design-quality signals
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. 变更概览 (Dashboard)
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
- ## 2. 变更摘要 (Executive Summary)
37
+ ### 1.1 背景与痛点 (Background & Pain Points)
47
38
 
48
- ### 2.1 为什么做 (Why)
49
- <!-- 2-3 句话提炼 proposal.md 的 Why -->
39
+ <!-- proposal.md ## Why (+ explore 洞察);Mermaid 现状流程;痛点红色标注;每痛点一句话代价。 -->
50
40
 
51
- ### 2.2 做什么 (What Changes)
52
- <!-- 新增/修改/移除/重命名 分类,标注 BREAKING -->
41
+ ```mermaid
42
+ <!-- 现状流程图 + 红色痛点节点 -->
43
+ ```
53
44
 
54
- ### 2.3 影响面 (Impact)
55
- <!-- 整合 proposal.md Impact,AI 评估影响等级 -->
45
+ **痛点清单**(对应图中红色节点):
56
46
 
57
- ---
47
+ | 痛点 | 代价 |
48
+ |------|------|
49
+ | <痛点1> | <代价> |
58
50
 
59
- ## 3. 验收标准 (Acceptance Criteria)
51
+ ### 1.2 做什么与影响面 (What & Impact)
60
52
 
61
- <!-- capability 分组,完整列出所有 Requirement + Scenario,3 级可测试性标注。
62
- 这里的内容来自 specs/**/*.md,是 /specflow:verify 将检查的契约。 -->
53
+ <!-- AI proposal What Changes / Impact (+ explore) 提炼;按 新增/修改/移除/重命名,标注 BREAKING。 -->
63
54
 
64
- ### 3.1 Capability: <name>
55
+ **做什么**:
65
56
 
66
- <!-- Delta 操作类型: ADDED / MODIFIED / REMOVED / RENAMED -->
57
+ | 类别 | 内容 | BREAKING? |
58
+ |------|------|-----------|
59
+ | 新增 | | |
60
+ | 修改 | | |
61
+ | 移除 / 重命名 | | |
67
62
 
68
- #### Requirement: <name>
69
- <!-- requirement 描述 -->
63
+ **影响面**:
70
64
 
71
- | Scenario | WHEN | THEN | 可测试性 | 说明 |
72
- |----------|------|------|---------|------|
73
- | <name> | <条件> | <期望> | ✅ 功能可测试 / ⚠️ 文档可测试 / ❌ 不可测试 | <!-- 仅 ⚠️/❌ 时填写原因 --> |
65
+ | 影响区域 | 影响等级 | 说明 |
66
+ |---------|---------|------|
67
+ | | 高/中/低 | |
74
68
 
75
- ---
69
+ ### 1.3 业务闭环与目标 (Business Loop & Goals)
76
70
 
77
- ## 4. 技术方案评估 (Technical Design Review)
71
+ <!-- 完成后业务如何闭环;User Journey;目标可验证(引用 §5 验收标准)。 -->
78
72
 
79
- ### 4.1 现状与约束 (Context & Constraints)
80
- <!-- 整合 design.md Context + AI 补充的隐含约束 -->
73
+ ```mermaid
74
+ <!-- User Journey -->
75
+ ```
76
+
77
+ **业务目标**(可验证):
81
78
 
82
- ### 4.2 目标与非目标 (Goals & Non-Goals)
83
- <!-- 整合 design.md Goals/Non-Goals -->
79
+ | 目标 | 可验证方式(引用 §5) |
80
+ |------|---------------------|
81
+ | <目标1> | §5 <Scenario 名> |
84
82
 
85
- ### 4.3 决策评审表 (Decision Review)
83
+ ### 1.4 非目标 (Non-Goals)
84
+
85
+ | 非目标 | 不做理由 |
86
+ |--------|---------|
87
+ | <非目标1> | <理由> |
88
+
89
+ ---
86
90
 
87
- <!-- 包含 design.md 中的每一个决策 -->
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
- ### 4.4 风险与权衡 (Risks & Trade-offs)
94
-
95
- <!-- design 识别的风险 + AI 识别的未声明风险 -->
103
+ ### 2.4 风险与权衡 (Risks & Trade-offs)
96
104
 
97
105
  | 风险 | 严重等级 | 缓解措施 | 就绪度 |
98
106
  |------|---------|---------|--------|
99
107
  | <name> | 高/中/低 | <措施> | ✅ 已缓解 / ⚠️ 待落实 / ❌ 未识别 |
100
108
 
101
- ### 4.5 设计质量评估 (Design Quality)
109
+ ### 2.5 设计质量评估 (Design Quality)
102
110
 
103
111
  #### 过度设计检查
104
112
 
105
113
  | # | 信号 | 检测到? | 证据(design/tasks 位置) |
106
114
  |---|------|--------|----------------------|
107
- | 1 | 为未提出的需求设计接口 | ✅是/❌否 | <!-- 若是,引用 design 章节 --> |
115
+ | 1 | 为未提出的需求设计接口 | ✅是/❌否 | |
108
116
  | 2 | 不必要的抽象层 | | |
109
117
  | 3 | 预建未使用的基础设施 | | |
110
118
  | 4 | 配置项超出当前需求 | | |
111
119
  | 5 | 复杂度超出问题规模 | | |
112
120
 
113
- **过度设计结论:** PASS (0 signals) / WARNING (1-2) / FAIL (3+)
121
+ **过度设计结论:** PASS / WARNING / FAIL
114
122
 
115
123
  #### 扩展性评估
116
124
 
@@ -122,244 +130,313 @@
122
130
  | 4 | 向后兼容路径 | | |
123
131
  | 5 | 决策理由提及扩展性权衡 | | |
124
132
 
125
- **扩展性结论:** PASS (4-5) / WARNING (0-3)
133
+ **扩展性结论:** PASS / WARNING
126
134
 
127
135
  **设计质量总评:** PASS / WARNING / FAIL
128
- <!-- 特别:过度设计 WARNING/FAIL + 扩展性 WARNING → 升级 FAIL -->
129
136
 
130
137
  ---
131
138
 
132
- ## 5. 架构整体设计 (Architecture Design)
139
+ ## 3. 架构整体设计 (Architecture Design)
140
+
141
+ <!-- 宏观结构;标杆对齐 scenario-job-compile §3:图 + 图要点说明 + 组件职责边界。
142
+ 与 §4 详细设计互补。不涉及则写:不涉及架构变更(单模块/单文件调整,模块边界无变化)。 -->
133
143
 
134
- <!-- 回答"系统由哪些模块组成、模块间如何依赖与交互、每个模块职责与边界"。聚焦宏观结构,与 §6 详细设计(模块内部实现)互补。 -->
144
+ ### 3.1 总体架构 (Architecture Overview)
135
145
 
136
- ### 5.1 总体架构 (Architecture Overview)
146
+ <!-- 至少一张模块依赖/分层图;推荐再加系统交互总览。标注 [新增]/[修改]。 -->
137
147
 
138
- <!-- 用 Mermaid 图绘制系统交互图或模块依赖图。
139
- 图型:模块依赖图/分层架构图用 flowchart LR;系统交互图用 sequenceDiagram。
140
- 要求:标注新增/修改模块(让影响面一眼可见);边标注依赖方向或交互消息;
141
- 纯 CLI/库项目模块 = src/core/*、src/cli/*;Web = 服务/组件;多仓 = 仓库/服务。
142
- 不涉及则写:不涉及架构变更(单模块/单文件调整,模块边界无变化)。 -->
148
+ ```mermaid
149
+ <!-- 模块依赖 / 分层架构图 -->
150
+ ```
151
+
152
+ **设计说明 / 图要点**(强制,紧跟图后;编号列表,解释分层、边界、不变式——不是重复念节点名):
153
+
154
+ 1. …
155
+ 2. …
143
156
 
144
157
  ```mermaid
145
- <!-- 在此放置模块依赖图或系统交互图 -->
158
+ <!-- 可选:系统交互总览(谁调用谁) -->
146
159
  ```
147
160
 
148
- ### 5.2 核心组件说明 (Core Components)
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
- ## 6. 方案详细设计 (Detailed Design)
175
+ ## 4. 方案详细设计 (Detailed Design)
170
176
 
171
- <!-- 方案从宏观决策落到实现级细节。只呈现本变更涉及的部分;不涉及的类别显式标注"不涉及 X"而非留空。
172
- 每个元素须可追溯到 §3 验收标准和 §4 决策。若无法写出实现级细节,标记 [待 refine 澄清: <元素>]。 -->
177
+ <!-- 实现级细节。标杆对齐 scenario-job-compile §4:设计要点 → Happy Path → 业务场景(+说明) → 数据/接口等。
178
+ 可追溯到 §5 验收标准与 §2 决策。不涉及的类别显式「不涉及 X」。 -->
173
179
 
174
- ### 6.1 数据结构 / 数据模型变更 (Data Structures)
180
+ ### 4.1 设计要点一览
175
181
 
176
- <!-- 涉及持久化/状态/配置结构时:表结构、字段、类型、约束、索引建议(由查询驱动)、数据迁移、回滚。
177
- 纯 CLI/库项目覆盖配置结构 / 状态文件 / YAML schema。
178
- 不涉及则写:不涉及数据库变更(纯逻辑/CLI 变更,无持久化数据模型)。 -->
182
+ <!-- 从 design 决策提炼 P1…Pn;实现时不可推翻的不变量。 -->
179
183
 
180
- ### 6.2 接口设计 (Interface Design)
184
+ | 编号 | 要点 | 说明 |
185
+ |------|------|------|
186
+ | P1 | | |
181
187
 
182
- <!-- 涉及 API/RPC/CLI 命令/函数接口时:签名、入参(参数/类型/必选/合法值/默认值)、出参(类型/结构)、错误码(枚举/含义/状态码映射)。
183
- 项目类型适配:CLI→commander 参数;库→导出函数签名;Web→HTTP API。
184
- 不涉及则写:不涉及接口变更(内部实现调整,无对外/跨模块接口变化)。 -->
188
+ ### 4.2 核心业务时序 · Happy Path(强制)
185
189
 
186
- ### 6.3 业务流程 (Business Flow)
190
+ <!-- 成功路径完整 Mermaid sequenceDiagram(建议 autonumber);覆盖主角色从发起到成功终态。
191
+ 图后必须有「设计要点」说明(不变式、失败不在本图展开的边界)。 -->
187
192
 
188
- <!-- 涉及状态流转/多步骤/并发时序时:时序说明(谁调用谁、顺序、分支、异常路径)或状态机流转(状态/迁移事件/条件/终态)。
189
- 可用 Mermaid sequenceDiagram / stateDiagram-v2。
190
- 不涉及则写:不涉及复杂业务流程(单步/线性实现,无状态流转)。 -->
193
+ **目的**:
191
194
 
192
- ### 6.4 核心算法 / 逻辑说明 (Core Logic)
195
+ ```mermaid
196
+ sequenceDiagram
197
+ autonumber
198
+ %% Happy Path:成功路径完整时序
199
+ ```
193
200
 
194
- <!-- 涉及非平凡算法/数据处理时:输入输出、处理步骤、复杂度、边界条件。
195
- 不涉及则写:不涉及非平凡算法(逻辑简单,无复杂数据处理)。 -->
201
+ **设计要点**:
196
202
 
197
- ### 6.5 配置与运行环境 (Configuration & Runtime)
203
+ -
198
204
 
199
- <!-- 涉及新配置项/环境变量/运行时依赖时:名称、类型、默认值、生效时机、用途。
200
- 不涉及则写:不涉及配置或运行环境变更。 -->
205
+ ### 4.3 业务场景时序
201
206
 
202
- ### 6.6 兼容性与迁移 (Compatibility & Migration)
207
+ <!-- 每个关键业务场景一小节:目的 + sequenceDiagram/flowchart/stateDiagram + 设计要点说明。
208
+ 至少覆盖本变更核心分支(失败/幂等/兼容缺省等);禁止有图无说明。 -->
203
209
 
204
- <!-- 涉及破坏性变更时:旧行为→新行为映射、迁移路径、回滚方案。
205
- 不涉及则写:不涉及破坏性变更(向后兼容)。 -->
210
+ #### 场景 A · `<名称>`
206
211
 
207
- <!-- 详细设计质量自检:每个元素可追溯到 §3;每个选择引用 §4 决策;涉及类别均非留空;未涉及类别显式标注。 -->
212
+ **目的**:
208
213
 
209
- ---
214
+ ```mermaid
215
+ sequenceDiagram
216
+ autonumber
217
+ ```
210
218
 
211
- ## 7. 测试策略 (Test Strategy)
219
+ **设计要点**:
212
220
 
213
- <!-- 从"§3 验收标准可不可测"升级为"用分层测试证明方案正确"。
214
- 只列出本变更实际需要的测试层级;不涉及的层级显式标注"不涉及"。 -->
221
+ -
215
222
 
216
- ### 7.1 分层测试矩阵
223
+ ### 4.4 数据结构 / 数据模型变更 (Data Structures)
217
224
 
218
- <!-- 每个测试层级映射到 §3 验收标准(引用 Scenario 名);标注工具/框架;目标可验证。 -->
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
- ### 7.2 测试环境与数据
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
- ### 7.3 测试策略自检
243
+ #### 4.4.2 ER 图(核心实体关系)
233
244
 
234
- <!-- - 每个 §3 验收标准至少被一个测试层级覆盖
235
- - 每个层级有工具、可验证目标
236
- - 既有行为有回归测试保护
237
- - 新增测试与修改既有测试已区分 -->
245
+ ```mermaid
246
+ erDiagram
247
+ ```
238
248
 
239
- **不涉及测试变更时写**:`不涉及测试变更(纯文档/配置变更,无行为逻辑需要测试)`。
249
+ **图说明**:
240
250
 
241
- ---
251
+ | 表名 | 中文名 | 职责(一句话) | 结构 | 本迭代动作 |
252
+ |------|--------|--------------|------|------------|
253
+ | | | | | |
242
254
 
243
- ## 8. 部署/发布/回滚方案 (Deployment & Release)
255
+ #### 4.4.3 逐表详设
244
256
 
245
- <!-- 对有运行系统的项目必须;纯库/CLI/文档项目可显式标注"不涉及运行时部署"。 -->
257
+ ##### `<table_name>`(中文名)
246
258
 
247
- ### 8.1 部署方案 (Deployment)
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
- ### 8.2 发布策略 (Release Strategy)
269
+ | 字段名称 | 字段类型 | 是否有默认值 | 字段说明 | 本迭代用法 |
270
+ |----------|----------|--------------|----------|------------|
271
+ | | | | | |
252
272
 
253
- <!-- 发布方式(蓝绿/金丝雀/滚动)/发布窗口/新旧兼容 -->
273
+ #### 4.4.4 非表字段、数据迁移与回滚兼容
254
274
 
255
- ### 8.3 回滚方案 (Rollback)
275
+ | | 说明 |
276
+ |----|------|
277
+ | 协议/计算字段(不落库) | |
278
+ | **存量数据默认值填充策略**(G3) | JSON 变更或新增列时必填 |
279
+ | 结构回滚 | |
280
+ | **回滚数据兼容**(G4) | 旧代码能否安全忽略新数据(`omitempty` / `schema_version` 等) |
281
+ | 数据保留 | |
256
282
 
257
- <!-- 回滚触发条件/方式/数据一致性/回滚验证 -->
283
+ ### 4.5 接口设计 (Interface Design)
258
284
 
259
- ### 8.4 监控与可观测性 (Monitoring & Observability)
285
+ <!-- 硬门槛:通道 清单 错误约定 → 逐接口字段/示例/错误表 → 调用关系。详见 generate.md §4.5。 -->
260
286
 
261
- <!-- 关键指标/日志追踪/告警 -->
287
+ #### 4.5.1 总览与约定
262
288
 
263
- ### 8.5 部署方案自检
289
+ **调用方与通道**:
264
290
 
265
- <!-- - 部署目标/方式/顺序明确
266
- - 发布策略与兼容性说明
267
- - 回滚触发/方式/数据一致性/验证明确
268
- - 上线后监控指标与告警明确 -->
291
+ | 通道 | 路径前缀 / 入口 | 调用方 | 鉴权 |
292
+ |------|-----------------|--------|------|
293
+ | | | | |
269
294
 
270
- **不涉及运行时部署时写**:`不涉及运行时部署(纯库/CLI/文档项目,无服务上线,变更通过包发布/版本发布交付)`。
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
- ## 9. 闭环性检查 (Closed-Loop Verification)
344
+ ## 5. 验收标准 (Acceptance Criteria)
275
345
 
276
- ### Pass 1: 需求闭环 (Requirement Closure)
277
- <!-- proposal What Changes specs 覆盖 -->
278
- **Verdict:** PASS / WARNING / FAIL
279
- **证据:** <!-- 覆盖表 -->
346
+ <!-- 放在架构与详细设计之后:开发先读怎么做,再对照契约验收。
347
+ capability 列出全部 Requirement + Scenario,3 级可测试性。来源 specs/**/*.md。 -->
280
348
 
281
- ### Pass 2: 方案闭环 (Design Closure)
282
- <!-- design decisions ↔ spec requirements 双向追溯 -->
283
- **Verdict:** PASS / WARNING / FAIL
284
- **证据:**
349
+ ### 5.1 Capability: <name>
285
350
 
286
- ### Pass 3: 规格闭环 (Spec Closure)
287
- <!-- scenario 完整性 + 3 级可测试性 + delta 结构 -->
288
- **Verdict:** PASS / WARNING / FAIL
289
- **证据:**
351
+ <!-- Delta 操作类型: ADDED / MODIFIED / REMOVED / RENAMED -->
290
352
 
291
- ### Pass 4: 实施闭环 (Implementation Closure)
292
- <!-- tasks ↔ spec requirements 覆盖 + 粒度 + 占位符 -->
293
- **Verdict:** PASS / WARNING / FAIL
294
- **证据:**
353
+ #### Requirement: <name>
295
354
 
296
- ### Pass 5: 风险闭环 (Risk Closure)
297
- <!-- risks ↔ mitigations + BREAKING migration + 未识别风险 -->
298
- **Verdict:** PASS / WARNING / FAIL
299
- **证据:**
355
+ | Scenario | WHEN | THEN | 可测试性 | 说明 |
356
+ |----------|------|------|---------|------|
357
+ | <name> | <条件> | <期望> | ✅ 功能可测试 / ⚠️ 文档可测试 / ❌ 不可测试 | |
300
358
 
301
- ### Pass 6: 代码落地性 (Code Grounding)
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
- ### Pass 7: 基线对照 (Baseline Cross-Check)
313
- <!-- delta specs ↔ specflow/specs/ 主基线:冲突/重复/MODIFIED 名称匹配 -->
314
- **Verdict:** PASS / WARNING / FAIL / SKIPPED (no baseline greenfield or no archived changes yet)
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
- | Capability | Requirement | 操作 | 基线状态 | 结论 |
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
- | Pass 1 需求闭环 | ✅/⚠️/❌/⊘(skipped) |
326
- | Pass 2 方案闭环 | |
327
- | Pass 3 规格闭环 | |
328
- | Pass 4 实施闭环 | |
329
- | Pass 5 风险闭环 | |
330
- | Pass 6 代码落地性 | |
331
- | Pass 7 基线对照 | |
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
- ## 10. 可实施性评估 (Implementability Assessment)
416
+ ## 9. 可实施性评估 (Implementability Assessment)
338
417
 
339
418
  | 评估维度 | 结论 | 说明 |
340
419
  |---------|------|------|
341
- | 完整性 | READY / NEEDS REFINEMENT / BLOCKED | <!-- 无 TODO/占位符 --> |
342
- | 规格对齐 | | <!-- tasks 覆盖所有 spec 需求 --> |
343
- | 任务可执行性 | | <!-- 工程师可无歧义执行 --> |
344
- | 技术可行性 | | <!-- 当前技术栈可实现 --> |
345
- | 依赖明确性 | | <!-- 任务依赖、外部依赖清晰 --> |
346
- | 架构一致性 | | <!-- 基于 Pass 6 代码读取:技术栈/目录结构/错误模式/测试框架 --> |
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
- ## 11. 审批意见 (Approval Decision)
432
+ ## 10. 审批意见 (Approval Decision)
354
433
 
355
- ### 7.1 AI 预审建议
434
+ ### 10.1 AI 预审建议
356
435
 
357
436
  **建议:** 建议批准 / 有条件批准 / 退回 refine / 拒绝
358
- **理由:** <!-- 1-2 句话,引用闭环性/设计质量/可实施性三重 verdict -->
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
- | 变更概览 | .specflow.yaml + specs/ + tasks.md + design.md + 项目代码 + specs | 精确统计 |
379
- | 变更摘要 | proposal.md (+ explore.md) | AI 提炼 |
380
- | 验收标准 | specs/**/*.md | AI 整合 + 3 级可测试性评估 |
381
- | 技术方案评估 | design.md | AI arc42 重组 + 决策表 + 风险表 + 设计质量评估 |
382
- | 架构整体设计 | design.md 决策 + 项目代码(锚点)+ specs 契约 | AI 绘制 Mermaid 模块依赖/系统交互图 + 组件职责边界表;每组件追溯到 §4 |
383
- | 方案详细设计 | design.md 决策 + specs 契约 + 项目代码(锚点) | AI 落地为数据/接口/流程/算法/配置/兼容性;每元素追溯到 §3+§4 |
384
- | 测试策略 | §3 验收标准 + 项目测试栈 | AI 分层测试矩阵(单元/集成/验收/回归/性能/安全),每层映射到验收标准 |
385
- | 部署/发布/回滚 | §4 决策 + 项目运行环境 | AI 部署方式/发布策略/回滚/监控方案;纯库项目标注"不涉及运行时部署" |
386
- | 闭环性 Pass 1-5 | 四件套交叉验证 | AI 推理 |
387
- | 闭环性 Pass 6 | 项目锚点文件(只读文件本身) | AI 代码结构分析 |
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 预审 + 人工签字栏 |