kld-sdd 2.4.7

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.
@@ -0,0 +1,290 @@
1
+ # 局部技术实现方案 - [Capability 名称]
2
+
3
+ > **定位**:单一 Capability 的业务维度技术实现方案
4
+ >
5
+ > **⚠️ 边界声明**:本设计仅服务于当前 Capability,严禁越权设计或覆盖其他模块逻辑。
6
+ >
7
+ > **【质量红线】专注"本业务如何落地";严禁写入全局中间件或框架选型;必须为任务拆解提供足够局部细节
8
+
9
+ ---
10
+
11
+ ## 1. 字段完整性追溯表
12
+
13
+ > **⛔ 核心红线**:用户在 Spec 中输入的所有字段必须在此表中体现,严禁无故丢弃!
14
+
15
+ ### 1.1 字段映射表
16
+
17
+ | 序号 | 用户输入字段 | 设计输出字段 | 字段类型 | 状态 | 理由说明 |
18
+ |-----|-------------|-------------|---------|------|---------|
19
+ | 1 | | | | ✅ 保留 | |
20
+ | 2 | | | | ✅ 保留 | |
21
+ | 3 | | | | ⚠️ 重命名 | |
22
+ | 4 | | | | 🔀 合并 | |
23
+
24
+ **状态说明**:
25
+ - ✅ 保留:字段名和类型与用户输入一致
26
+ - ⚠️ 重命名:字段重命名(必须说明理由)
27
+ - 🔀 合并:多字段合并为一个(必须说明理由)
28
+ - ❌ 移除:字段被移除(必须有充分理由且经用户确认)
29
+
30
+ ### 1.2 完整性自检
31
+
32
+ - **用户输入字段总数**:[X] 个
33
+ - **设计输出字段总数**:[X] 个
34
+ - **差异说明**:[如有差异必须详细说明]
35
+ - **完整性确认**:[ ] 已确认所有字段都有对应处理
36
+
37
+ ---
38
+
39
+ ## 2. 现有代码锚点
40
+
41
+ > **⚠️ 重要**:大多数需求是在已有系统上改造/扩展,不是从零开始。
42
+ > AI 无法知道“要改哪里”,如果本 Capability 涉及对现有代码的修改,**请用户补充完整**。
43
+ > 纯新建项目可跳过此章节。
44
+
45
+ ### 2.1 需修改的现有文件
46
+
47
+ | 文件路径 | 类/模块名 | 需修改的方法/函数 | 修改类型 | 说明 |
48
+ |---------|----------|----------------|---------|------|
49
+ | `src/xxx/XxxService.java` | XxxService | `processOrder()` | 扩展逻辑 | |
50
+ | `src/xxx/XxxController.java` | XxxController | `handleRequest()` | 新增参数 | |
51
+ | | | | | |
52
+
53
+ **修改类型说明**:
54
+ - 扩展逻辑:在现有方法中添加新逻辑分支
55
+ - 新增参数:修改方法签名或请求/响应结构
56
+ - 重构抽取:抽取公共逻辑为新方法
57
+ - 替换实现:用新实现替换原有逻辑
58
+
59
+ ### 2.2 需新建的文件
60
+
61
+ | 文件路径(建议) | 类/模块名 | 职责 | 继承/实现 | 说明 |
62
+ |------------|----------|------|---------|------|
63
+ | | | | | |
64
+
65
+ ### 2.3 现有逻辑约束
66
+
67
+ > 影响本次设计的现有系统约束(如:已有事务边界、线程模型、日志规范、已有设计模式等)
68
+
69
+ | 约束项 | 当前现状 | 对本设计的影响 | 应对策略 |
70
+ |-------|---------|-------------|--------|
71
+ | | | | 遵循/适配/协商修改 |
72
+
73
+ ---
74
+
75
+ ## 3. 局部前端设计
76
+
77
+ > 仅针对当前 Capability 的前端设计
78
+
79
+ ### 3.1 页面/组件结构
80
+
81
+ | 组件名 | 类型 | 职责 | 依赖组件 |
82
+ |-------|------|------|---------|
83
+ | | 页面/容器/展示 | | |
84
+
85
+ ### 3.2 状态管理
86
+
87
+ | 状态名 | 数据类型 | 初始值 | 更新时机 |
88
+ |-------|---------|-------|---------|
89
+ | | | | |
90
+
91
+ ### 3.3 路由设计
92
+
93
+ | 路由路径 | 页面组件 | 权限要求 | 说明 |
94
+ |---------|---------|---------|------|
95
+ | | | | |
96
+
97
+ ### 3.4 前后端交互
98
+
99
+ | 前端操作 | 调用接口 | 请求参数 | 响应处理 |
100
+ |---------|---------|---------|---------|
101
+ | | | | |
102
+
103
+ ---
104
+
105
+ ## 4. 局部后端接口设计
106
+
107
+ > 仅针对当前 Capability 的接口设计
108
+
109
+ ### 4.1 接口清单
110
+
111
+ | 接口名称 | 路径 | 方法 | 说明 |
112
+ |---------|------|------|------|
113
+ | | `/api/v1/xxx` | GET/POST | |
114
+
115
+ ### 4.2 接口详细设计
116
+
117
+ #### 接口 1:[接口名称]
118
+
119
+ **基本信息**:
120
+ - 路径:`/api/v1/xxx`
121
+ - 方法:GET/POST
122
+ - 认证:需要/不需要
123
+
124
+ **请求参数**:
125
+ | 参数名 | 类型 | 必填 | 说明 | 约束 |
126
+ |-------|------|------|------|------|
127
+ | | | | | |
128
+
129
+ **响应结构**:
130
+ ```json
131
+ {
132
+ "code": 0,
133
+ "msg": "success",
134
+ "data": {
135
+ // 字段定义
136
+ }
137
+ }
138
+ ```
139
+
140
+ **业务逻辑**:
141
+ 1.
142
+ 2.
143
+ 3.
144
+
145
+ ---
146
+
147
+ ## 5. 局部数据模型
148
+
149
+ > 仅针对当前 Capability 的数据设计,遵循 overview.md 的全局约定
150
+
151
+ ### 5.1 数据表设计
152
+
153
+ #### 表名:[table_name]
154
+
155
+ | 字段名 | 数据类型 | 必填 | 默认值 | 说明 | 索引 |
156
+ |-------|---------|------|--------|------|------|
157
+ | id | 唯一标识 | 是 | 自动生成 | 主键 | PK |
158
+ | | 字符串/数字/布尔/日期/枚举 | | | | |
159
+ | created_at | 时间戳 | 是 | 当前时间 | 创建时间 | |
160
+ | updated_at | 时间戳 | 是 | 当前时间 | 更新时间 | |
161
+
162
+ **索引设计**:
163
+ - 主键索引:id
164
+ - 唯一索引:
165
+ - 普通索引:
166
+
167
+ ### 5.2 缓存设计
168
+
169
+ | 缓存 Key 模式 | 数据类型 | 过期时间 | 更新策略 | 说明 |
170
+ |--------------|---------|---------|---------|------|
171
+ | | | | | |
172
+
173
+ ### 5.3 数据流转图
174
+
175
+ ```
176
+ [输入] --> [处理] --> [存储] --> [输出]
177
+ ```
178
+
179
+ ---
180
+
181
+ ## 6. 模块内部逻辑
182
+
183
+ ### 6.1 核心流程
184
+
185
+ ```
186
+ [步骤1] --> [步骤2] --> [步骤3]
187
+ ```
188
+
189
+ ### 6.2 状态机(如有)
190
+
191
+ ```
192
+ [状态A] --事件1--> [状态B]
193
+ [状态B] --事件2--> [状态C]
194
+ ```
195
+
196
+ ### 6.3 关键算法(如有)
197
+
198
+ <!-- 描述复杂算法的实现思路 -->
199
+
200
+ ---
201
+
202
+ ## 7. 外部依赖与集成
203
+
204
+ > **⚠️ 必填**:列出本 Capability 依赖的所有外部系统、服务和基础设施,确保上下游关系透明、可追踪。
205
+ > AI 无法自动推断项目的外部依赖,**请用户补充完整**。
206
+
207
+ ### 7.1 外部服务依赖
208
+
209
+ | 依赖服务 | 用途 | 调用方式 | 超时设置 | 失败影响 | 降级方案 |
210
+ |---------|------|---------|---------|---------|--------|
211
+ | | | REST/RPC/SDK | | 阻塞/可降级 | |
212
+
213
+ ### 7.2 第三方 API / SDK
214
+
215
+ | 名称 | 版本/文档链接 | 用途 | 鉴权方式 | 费用/限流 | 备注 |
216
+ |------|-------------|------|---------|----------|------|
217
+ | | | | API Key/OAuth/无 | | |
218
+
219
+ ### 7.3 中间件 & 基础设施
220
+
221
+ | 组件 | 用途 | 使用方式 | 关键配置 | 备注 |
222
+ |------|------|---------|---------|------|
223
+ | | 消息队列/缓存/搜索/存储... | | | |
224
+
225
+ ### 7.4 内部跨模块依赖
226
+
227
+ > 本 Capability 需要调用项目内其他模块的能力(注意:仅声明依赖,不设计对方逻辑)
228
+
229
+ | 依赖模块 | 调用接口/方法 | 输入 | 预期输出 | 当前状态 |
230
+ |---------|-------------|------|---------|--------|
231
+ | | | | | 已有/待建 |
232
+
233
+ ### 7.5 环境 & 权限要求
234
+
235
+ | 依赖项 | 说明 | 获取方式 |
236
+ |-------|------|--------|
237
+ | 环境变量 | | |
238
+ | 密钥/证书 | | |
239
+ | 网络策略 | | |
240
+ | 权限/角色 | | |
241
+
242
+ ---
243
+
244
+ ## 8. 异常处理
245
+
246
+ ### 8.1 异常分类
247
+
248
+ | 异常类型 | 触发条件 | 处理策略 | 用户感知 |
249
+ |---------|---------|---------|---------|
250
+ | 参数校验异常 | | 返回错误码 | |
251
+ | 业务逻辑异常 | | | |
252
+ | 外部依赖异常 | | 降级/重试 | |
253
+
254
+ ### 8.2 重试与降级
255
+
256
+ - 重试次数:
257
+ - 重试间隔:
258
+ - 降级策略:
259
+
260
+ ---
261
+
262
+ ## 9. 局部配置
263
+
264
+ ### 9.1 业务配置
265
+
266
+ | 配置项 | 配置 Key | 默认值 | 说明 |
267
+ |-------|---------|-------|------|
268
+ | | | | |
269
+
270
+ ### 9.2 开关配置
271
+
272
+ | 开关 | 用途 | 默认状态 |
273
+ |-----|------|---------|
274
+ | | | |
275
+
276
+ ---
277
+
278
+ > **质量红线检查清单**
279
+ > - [ ] **现有代码锚点已标注**:需修改的文件、类、方法已明确(或确认为纯新建)
280
+ > - [ ] **现有约束已识别**:影响设计的现有系统约束已列出并有应对策略
281
+ > - [ ] **字段完整性**:字段追溯表已完成,无无故丢弃字段
282
+ > - [ ] **边界遵守**:无越权设计其他 Capability 的逻辑
283
+ > - [ ] **全局遵守**:遵循 overview.md 的数据字典和接口规范
284
+ > - [ ] 前端设计已完成(组件、状态、路由、交互)
285
+ > - [ ] 后端接口已完成(路径、参数、响应、逻辑)
286
+ > - [ ] 数据模型已完成(表结构、索引、缓存)
287
+ > - [ ] **外部依赖已明确**:所有外部服务、第三方 API、中间件、跨模块依赖已列出
288
+ > - [ ] **环境权限已确认**:所需环境变量、密钥、网络策略已说明
289
+ > - [ ] 异常处理策略已定义(含外部依赖失败的降级方案)
290
+ > - [ ] 包含足够的局部细节支持任务拆解
@@ -0,0 +1,143 @@
1
+ # 架构总览与全局契约
2
+
3
+ > **定位**:全局宪法,所有局部设计都必须遵守
4
+ >
5
+ > **⚠️ AI 读取指令**:在执行任何 `/opsx:design` 或 `/opsx:task` 时,必须首先读取本文档作为全局约束基线。
6
+
7
+ ---
8
+
9
+ ## 1. 全局数据字典
10
+
11
+ > 强制约定核心数据类型,所有 Capability 的设计必须遵守
12
+
13
+ ### 1.1 主键与标识符规范
14
+
15
+ | 标识符类型 | 数据类型 | 格式要求 | 示例 |
16
+ |-----------|---------|---------|------|
17
+ | 用户ID | 字符串 | UUID v4 | `550e8400-e29b-41d4-a716-446655440000` |
18
+ | 业务主键 | 字符串/数字 | 根据业务定义 | |
19
+ | 外部关联ID | 字符串 | 与外部系统一致 | |
20
+
21
+ ### 1.2 通用字段规范
22
+
23
+ | 字段名 | 数据类型 | 精度/格式 | 说明 |
24
+ |-------|---------|----------|------|
25
+ | 金额字段 | 数字 | 精确到分(整数存储) | 以最小货币单位存储 |
26
+ | 时间戳 | 字符串/数字 | ISO 8601 / Unix毫秒 | 统一时区处理 |
27
+ | 逻辑删除 | 布尔 | `is_deleted` | 默认 false |
28
+ | 创建时间 | 时间戳 | `created_at` | 自动填充 |
29
+ | 更新时间 | 时间戳 | `updated_at` | 自动更新 |
30
+ | 创建人 | 字符串 | `created_by` | 用户ID |
31
+ | 更新人 | 字符串 | `updated_by` | 用户ID |
32
+
33
+ ### 1.3 枚举值规范
34
+
35
+ | 枚举类型 | 可选值 | 说明 |
36
+ |---------|-------|------|
37
+ | 状态枚举 | | |
38
+ | 类型枚举 | | |
39
+
40
+ ---
41
+
42
+ ## 2. 接口与通信规范
43
+
44
+ ### 2.1 统一返回体
45
+
46
+ **成功响应**:
47
+ ```json
48
+ {
49
+ "code": 0,
50
+ "msg": "success",
51
+ "data": { /* 业务数据 */ }
52
+ }
53
+ ```
54
+
55
+ **失败响应**:
56
+ ```json
57
+ {
58
+ "code": -1,
59
+ "msg": "错误描述",
60
+ "data": null
61
+ }
62
+ ```
63
+
64
+ ### 2.2 分页请求/响应标准
65
+
66
+ **请求参数**:
67
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
68
+ |-----|------|------|-------|------|
69
+ | page | 数字 | 否 | 1 | 页码(从1开始) |
70
+ | pageSize | 数字 | 否 | 20 | 每页条数(最大100) |
71
+
72
+ **响应结构**:
73
+ ```json
74
+ {
75
+ "code": 0,
76
+ "msg": "success",
77
+ "data": {
78
+ "list": [],
79
+ "total": 100,
80
+ "page": 1,
81
+ "pageSize": 20
82
+ }
83
+ }
84
+ ```
85
+
86
+ ### 2.3 错误码规范
87
+
88
+ | 错误码范围 | 含义 |
89
+ |-----------|------|
90
+ | 0 | 成功 |
91
+ | 1000-1999 | 参数校验错误 |
92
+ | 2000-2999 | 业务逻辑错误 |
93
+ | 3000-3999 | 权限错误 |
94
+ | 4000-4999 | 外部服务错误 |
95
+ | 5000-5999 | 系统内部错误 |
96
+
97
+ ---
98
+
99
+ ## 3. 共享跨域实体
100
+
101
+ > 仅存放会被多个 Capability 跨域引用的极简核心实体
102
+
103
+ ### 3.1 用户基础信息
104
+
105
+ | 字段 | 类型 | 说明 |
106
+ |-----|------|------|
107
+ | userId | 字符串 | 用户唯一标识 |
108
+ | username | 字符串 | 用户名 |
109
+ | avatar | 字符串 | 头像URL |
110
+
111
+ ### 3.2 其他共享实体
112
+
113
+ <!-- 根据项目需要添加 -->
114
+
115
+ ---
116
+
117
+ ## 4. 跨能力域依赖约定
118
+
119
+ ### 4.1 模块间调用规范
120
+
121
+ | 调用方式 | 适用场景 | 约束 |
122
+ |---------|---------|------|
123
+ | 内部API调用 | 同步依赖 | 必须走网关 |
124
+ | 事件驱动 | 异步解耦 | 定义事件契约 |
125
+ | 共享数据库 | 强一致性 | 仅限核心表 |
126
+
127
+ ### 4.2 模块依赖图
128
+
129
+ ```
130
+ [Capability A] --> [Capability B]
131
+ |
132
+ v
133
+ [Capability C]
134
+ ```
135
+
136
+ ---
137
+
138
+ > **质量红线检查清单**
139
+ > - [ ] 所有通用字段已定义类型和精度
140
+ > - [ ] API 返回体结构已统一
141
+ > - [ ] 分页标准已定义
142
+ > - [ ] 错误码规范已制定
143
+ > - [ ] 跨域共享实体已精简(仅保留必要字段)
@@ -0,0 +1,108 @@
1
+ ---
2
+ # 【用户选择配置 - 由 /opsx:propose 引导填写】
3
+ mode: "" # full=每个能力域独立文档(specs/<capability>/*), simple=单一文档(spec.md/design.md/tasks.md)
4
+ test-strategy: "" # tdd=测试先行, impl-first=实现优先, none=无测试
5
+ ---
6
+
7
+ # proposal.md - 业务意图与上下文总览
8
+
9
+ > **定位**:变更的业务意图(Why)与上下文总览
10
+ >
11
+ > **可选性**:【可跳过,直入spec】若跳过,必须将"影响范围"在 specs 中补齐
12
+
13
+ ---
14
+
15
+ ## 1. 需求背景
16
+
17
+ <!-- 描述本次变更的业务背景、痛点或机会 -->
18
+
19
+ ### 1.1 现状问题
20
+ -
21
+
22
+ ### 1.2 业务诉求
23
+ -
24
+
25
+ ---
26
+
27
+ ## 2. 业务目标
28
+
29
+ <!-- 明确本次变更要达成的业务目标,建议用 SMART 原则描述 -->
30
+
31
+ | 目标维度 | 具体描述 | 验收标准 |
32
+ |---------|---------|---------|
33
+ | 功能目标 | | |
34
+ | 性能目标 | | |
35
+ | 体验目标 | | |
36
+
37
+ ---
38
+
39
+ ## 3. 能力分解
40
+
41
+ <!-- 【关键章节】此处定义的 capability 决定后续 specs/ 的文件结构 -->
42
+
43
+ ### 3.1 新增能力
44
+ <!-- 每个能力会创建 specs/<name>/spec.md,使用 kebab-case 命名 -->
45
+ - `<capability-name>`: <能力简要描述>
46
+
47
+ ### 3.2 修改能力
48
+ <!-- 仅当已有能力的需求级别变更时填写,检查 openspec/specs/ 现有规格 -->
49
+ - `<existing-name>`: <修改什么需求>
50
+
51
+ ---
52
+
53
+ ## 4. 影响范围
54
+
55
+ <!-- 【质量红线】逻辑链路必须闭环,明确定义哪些模块受影响 -->
56
+
57
+ ### 4.1 涉及模块
58
+ - [ ] 模块A:影响描述
59
+ - [ ] 模块B:影响描述
60
+
61
+ ### 4.2 依赖关系
62
+ ```
63
+ [上游依赖] --> [本变更] --> [下游影响]
64
+ ```
65
+
66
+ ### 4.3 数据影响
67
+ - 数据库表变更:
68
+ - 接口变更:
69
+ - 配置变更:
70
+
71
+ ---
72
+
73
+ ## 5. 约束与假设
74
+
75
+ ### 5.1 业务约束
76
+ -
77
+
78
+ ### 5.2 技术约束
79
+ -
80
+
81
+ ### 5.3 前置依赖
82
+ - [ ] 依赖项1:状态
83
+ - [ ] 依赖项2:状态
84
+
85
+ ---
86
+
87
+ ## 6. 风险评估
88
+
89
+ | 风险项 | 概率 | 影响 | 应对策略 |
90
+ |-------|------|------|---------|
91
+ | | | | |
92
+
93
+ ---
94
+
95
+ ## 7. 相关文档
96
+
97
+ - 需求文档:
98
+ - 原型链接:
99
+ - 参考文档:
100
+
101
+ ---
102
+
103
+ > **质量红线检查清单**
104
+ > - [ ] 逻辑链路已闭环
105
+ > - [ ] 受影响模块已明确
106
+ > - [ ] 依赖关系已梳理
107
+ > - [ ] 若跳过本文档,影响范围已在 specs 中补齐
108
+ > - [ ] 能力分解章节已明确列出所有能力
@@ -0,0 +1,185 @@
1
+ # spec.md - 能力规格定义
2
+
3
+ > **定位**:单个能力(capability)的技术规格定义,用于 `specs/<capability>/spec.md`
4
+ >
5
+ > **【质量红线】严禁描述模糊;约束必须量化;缺失必要参数时 opsx-check 必须报错拦截
6
+ >
7
+ >> **【格式要求】** 需求项使用 `####`(4个#),场景必须使用 `#####`(5个#)
8
+
9
+ ---
10
+
11
+ ## 1. 需求规格(官方格式)
12
+
13
+ <!-- 此章节遵循 openspec 官方格式,用于与 CLI 工具兼容 -->
14
+
15
+ ### 新增需求
16
+
17
+ <!-- 新增的需求,使用「必须」强制要求 -->
18
+
19
+ #### 需求项:<!-- 需求名称 -->
20
+
21
+ <!-- 需求描述,使用「必须」而非「应该」「可以」 -->
22
+ 系统必须 ...
23
+
24
+ ##### 场景:<!-- 场景名称 -->
25
+ - **当** <!-- 触发条件 -->
26
+ - **预期** <!-- 预期结果 -->
27
+
28
+ ##### 场景:<!-- 另一个场景 -->
29
+ - **当** <!-- 触发条件 -->
30
+ - **预期** <!-- 预期结果 -->
31
+
32
+ ### 修改需求
33
+
34
+ <!-- 仅当修改已有需求时使用,必须复制完整原需求内容再修改 -->
35
+
36
+ #### 需求项:<!-- 已有需求名称 -->
37
+ 系统必须 ...
38
+
39
+ ##### 场景:<!-- 场景名称 -->
40
+ - **当** <!-- 触发条件 -->
41
+ - **预期** <!-- 预期结果 -->
42
+
43
+ ### 移除需求
44
+
45
+ <!-- 仅当移除已有需求时使用 -->
46
+
47
+ #### 需求项:<!-- 被移除的需求名称 -->
48
+ **移除原因**:<!-- 移除原因 -->
49
+ **迁移方案**:<!-- 迁移方案 -->
50
+
51
+ ---
52
+
53
+ ## 2. 技术契约(SDD 扩展)
54
+
55
+ <!-- 【SDD 扩展】此章节定义具体的技术实现契约,代码生成的"唯一真理" -->
56
+
57
+ ### 2.1 接口定义
58
+
59
+ #### 接口基本信息
60
+ - **路径**:`/api/v1/xxx`
61
+ - **方法**:GET/POST/PUT/DELETE
62
+ - **内容类型**:application/json
63
+
64
+ #### 请求参数
65
+ <!-- 【质量红线】所有参数必须有类型、必填标识、取值范围/示例 -->
66
+
67
+ | 参数名 | 类型 | 必填 | 说明 | 示例值 | 约束条件 |
68
+ |-------|------|------|------|--------|----------|
69
+ | | | | | | |
70
+
71
+ #### 响应结构
72
+
73
+ **成功响应 (200)**
74
+ ```json
75
+ {
76
+ "code": 0,
77
+ "message": "success",
78
+ "data": {
79
+ // 详细字段定义
80
+ }
81
+ }
82
+ ```
83
+
84
+ **错误响应**
85
+ ```json
86
+ {
87
+ "code": -1,
88
+ "message": "错误描述",
89
+ "data": null
90
+ }
91
+ ```
92
+
93
+ #### 错误码定义
94
+ | 错误码 | 含义 | 触发条件 |
95
+ |-------|------|----------|
96
+ | | | |
97
+
98
+ ---
99
+
100
+ ## 3. 物理约束
101
+
102
+ <!-- 【质量红线】所有约束必须量化 -->
103
+
104
+ ### 3.1 性能约束
105
+ | 指标 | 约束值 | 说明 |
106
+ |------|-------|------|
107
+ | 响应时间 | < X 毫秒 (P99) | |
108
+ | 吞吐量 | > X QPS | |
109
+ | 并发数 | 最大 X | |
110
+
111
+ ### 3.2 资源约束
112
+ | 资源 | 限制 | 说明 |
113
+ |------|------|------|
114
+ | 内存 | < X MB | |
115
+ | CPU | < X% | |
116
+ | 存储 | < X GB | |
117
+
118
+ ### 3.3 超时配置
119
+ - 连接超时:X 毫秒
120
+ - 读取超时:X 毫秒
121
+ - 总超时:X 毫秒
122
+
123
+ ---
124
+
125
+ ## 4. 影响模块
126
+
127
+ <!-- 若跳过 proposal.md,必须在此补齐影响范围 -->
128
+
129
+ ### 4.1 内部依赖
130
+ - [ ] 服务A:调用方式、用途
131
+ - [ ] 服务B:调用方式、用途
132
+
133
+ ### 4.2 外部依赖
134
+ <!-- 【质量红线】技术选型必须包含版本信息 -->
135
+
136
+ | 组件类型 | 组件名称 | 版本 | 用途 | 降级策略 |
137
+ |---------|---------|------|------|---------|
138
+ | 框架 | | | | |
139
+ | 数据库 | | | | |
140
+ | 缓存 | | | | |
141
+ | 消息队列 | | | | |
142
+ | 第三方 SDK | | | | |
143
+
144
+ ### 4.3 数据存储
145
+ - [ ] 数据库(版本 X.x):表名、操作类型
146
+ - [ ] 缓存(版本 X.x):Key 模式、过期时间
147
+
148
+ ---
149
+
150
+ ## 5. 安全与合规
151
+
152
+ ### 5.1 权限要求
153
+ - 认证方式:
154
+ - 授权范围:
155
+
156
+ ### 5.2 数据安全
157
+ - 敏感字段:
158
+ - 加密要求:
159
+
160
+ ### 5.3 审计要求
161
+ - 日志记录:
162
+ - 操作追踪:
163
+
164
+ ---
165
+
166
+ ## 6. 兼容性
167
+
168
+ ### 6.1 接口兼容性
169
+ - 是否向后兼容:是/否
170
+ - 版本控制策略:
171
+
172
+ ### 6.2 数据兼容性
173
+ - 数据迁移方案:
174
+ - 回滚策略:
175
+
176
+ ---
177
+
178
+ > **质量红线检查清单**
179
+ > - [ ] 每个需求项至少有一个场景
180
+ > - [ ] 使用「必须」强制要求,而非「应该」「可以」
181
+ > - [ ] 所有接口参数已量化(类型、必填、范围、示例)
182
+ > - [ ] 物理约束已量化(并发、超时、性能指标)
183
+ > - [ ] 错误码已定义
184
+ > - [ ] **技术选型已包含版本信息**(框架、数据库、缓存、中间件等)
185
+ > - [ ] 若跳过 proposal.md,影响范围已在此补齐