@zhouhao4221/devflow-skills 0.3.6 → 0.3.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.
Files changed (40) hide show
  1. package/package.json +1 -1
  2. package/plugins/diag/templates/services.yaml.template +31 -0
  3. package/plugins/req/skills/branch/SKILL.md +48 -377
  4. package/plugins/req/skills/dev/SKILL.md +1 -1
  5. package/plugins/req/skills/dev-guide/SKILL.md +74 -399
  6. package/plugins/req/skills/do/SKILL.md +1 -1
  7. package/plugins/req/skills/done/SKILL.md +2 -2
  8. package/plugins/req/skills/edit/SKILL.md +1 -1
  9. package/plugins/req/skills/fix/SKILL.md +1 -1
  10. package/plugins/req/skills/init/SKILL.md +66 -430
  11. package/plugins/req/skills/issue/SKILL.md +1 -1
  12. package/plugins/req/skills/migrate/SKILL.md +1 -1
  13. package/plugins/req/skills/natural-language-dispatcher/SKILL.md +78 -438
  14. package/plugins/req/skills/new/SKILL.md +1 -1
  15. package/plugins/req/skills/pr/SKILL.md +1 -1
  16. package/plugins/req/skills/prd/SKILL.md +1 -1
  17. package/plugins/req/skills/prd-edit/SKILL.md +1 -1
  18. package/plugins/req/skills/release/SKILL.md +1 -1
  19. package/plugins/req/skills/review/SKILL.md +1 -1
  20. package/plugins/req/skills/review-pr/SKILL.md +74 -601
  21. package/plugins/req/skills/test/SKILL.md +41 -355
  22. package/plugins/req/skills/test_new/SKILL.md +36 -356
  23. package/plugins/req/skills/test_regression/SKILL.md +1 -1
  24. package/plugins/req/skills/update-template/SKILL.md +1 -1
  25. package/plugins/req/skills/use/SKILL.md +1 -1
  26. package/plugins/req/templates/claude-md-snippets/frontend-react.md +48 -0
  27. package/plugins/req/templates/claude-md-snippets/generic.md +43 -0
  28. package/plugins/req/templates/claude-md-snippets/go-backend.md +47 -0
  29. package/plugins/req/templates/claude-md-snippets/java-backend.md +46 -0
  30. package/plugins/req/templates/docker-compose.test.yml +84 -0
  31. package/plugins/req/templates/index-template.md +60 -0
  32. package/plugins/req/templates/module-template.md +79 -0
  33. package/plugins/req/templates/prd-template.md +338 -0
  34. package/plugins/req/templates/quick-template.md +71 -0
  35. package/plugins/req/templates/release-prompt-template.md +51 -0
  36. package/plugins/req/templates/requirement-template.md +256 -0
  37. package/plugins/req/templates/scripts/test-env.sh +226 -0
  38. package/plugins/req/templates/tests/e2e/playwright.config.ts +86 -0
  39. package/plugins/uat/templates/flow-template.md +116 -0
  40. package/plugins/uat/templates/testid-convention.md +42 -0
@@ -0,0 +1,84 @@
1
+ # 测试环境 Docker 配置模板
2
+ # 复制到项目根目录并根据需要修改
3
+
4
+ version: '3.8'
5
+
6
+ services:
7
+ # MySQL 测试数据库
8
+ mysql-test:
9
+ image: ${MYSQL_TEST_IMAGE:-mysql:8.0} # 可替换为预先创建的测试镜像
10
+ container_name: mysql-test
11
+ ports:
12
+ - "3307:3306" # 使用不同端口避免与开发环境冲突
13
+ environment:
14
+ MYSQL_ROOT_PASSWORD: test123
15
+ MYSQL_DATABASE: test_db
16
+ MYSQL_USER: test_user
17
+ MYSQL_PASSWORD: test123
18
+ volumes:
19
+ - mysql-test-data:/var/lib/mysql
20
+ # 可挂载初始化脚本
21
+ # - ./tests/fixtures/init.sql:/docker-entrypoint-initdb.d/init.sql
22
+ healthcheck:
23
+ test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
24
+ interval: 5s
25
+ timeout: 5s
26
+ retries: 10
27
+ networks:
28
+ - test-network
29
+
30
+ # Redis 测试缓存
31
+ redis-test:
32
+ image: ${REDIS_TEST_IMAGE:-redis:7-alpine} # 可替换为预先创建的测试镜像
33
+ container_name: redis-test
34
+ ports:
35
+ - "6380:6379" # 使用不同端口避免与开发环境冲突
36
+ healthcheck:
37
+ test: ["CMD", "redis-cli", "ping"]
38
+ interval: 5s
39
+ timeout: 5s
40
+ retries: 10
41
+ networks:
42
+ - test-network
43
+
44
+ volumes:
45
+ mysql-test-data:
46
+
47
+ networks:
48
+ test-network:
49
+ driver: bridge
50
+
51
+ # ===========================================
52
+ # 使用说明
53
+ # ===========================================
54
+ #
55
+ # 1. 启动测试环境:
56
+ # docker-compose -f docker-compose.test.yml up -d
57
+ #
58
+ # 2. 等待服务就绪:
59
+ # docker-compose -f docker-compose.test.yml ps
60
+ #
61
+ # 3. 查看日志:
62
+ # docker-compose -f docker-compose.test.yml logs -f
63
+ #
64
+ # 4. 停止并清理:
65
+ # docker-compose -f docker-compose.test.yml down -v
66
+ #
67
+ # 5. 使用自定义镜像:
68
+ # MYSQL_TEST_IMAGE=my-mysql-test:latest docker-compose -f docker-compose.test.yml up -d
69
+ #
70
+ # ===========================================
71
+ # 测试数据库连接信息
72
+ # ===========================================
73
+ #
74
+ # MySQL:
75
+ # Host: localhost
76
+ # Port: 3307
77
+ # Database: test_db
78
+ # User: test_user / root
79
+ # Password: test123
80
+ #
81
+ # Redis:
82
+ # Host: localhost
83
+ # Port: 6380
84
+ #
@@ -0,0 +1,60 @@
1
+ # 需求索引
2
+
3
+ > 自动生成,请勿手动编辑。更新时间:YYYY-MM-DD HH:MM
4
+
5
+ ---
6
+
7
+ ## 概览
8
+
9
+ | 指标 | 数量 |
10
+ |------|------|
11
+ | 总需求数 | 0 |
12
+ | 进行中 | 0 |
13
+ | 已完成 | 0 |
14
+ | 模块数 | 0 |
15
+
16
+ ---
17
+
18
+ ## 按状态
19
+
20
+ ### 开发中
21
+
22
+ | 编号 | 标题 | 模块 | 进度 | 更新时间 |
23
+ |------|------|------|------|----------|
24
+ | - | - | - | - | - |
25
+
26
+ ### 待评审
27
+
28
+ | 编号 | 标题 | 模块 | 创建时间 |
29
+ |------|------|------|----------|
30
+ | - | - | - | - |
31
+
32
+ ### 草稿
33
+
34
+ | 编号 | 标题 | 模块 | 创建时间 |
35
+ |------|------|------|----------|
36
+ | - | - | - | - |
37
+
38
+ ### 已完成(最近 10 条)
39
+
40
+ | 编号 | 标题 | 模块 | 完成时间 |
41
+ |------|------|------|----------|
42
+ | - | - | - | - |
43
+
44
+ ---
45
+
46
+ ## 按模块
47
+
48
+ ### 模块名称
49
+
50
+ | 编号 | 标题 | 状态 | 更新时间 |
51
+ |------|------|------|----------|
52
+ | REQ-XXX | 需求标题 | 开发中 | YYYY-MM-DD |
53
+
54
+ ---
55
+
56
+ ## 快速导航
57
+
58
+ - [模块文档](./modules/)
59
+ - [进行中需求](./active/)
60
+ - [已完成需求](./completed/)
@@ -0,0 +1,79 @@
1
+ # 模块名称
2
+
3
+ ## 概述
4
+
5
+ 简要描述模块的核心职责和业务范围。
6
+
7
+ ---
8
+
9
+ ## 核心功能
10
+
11
+ > 按需求状态标记:已完成 | 开发中 | 规划中
12
+
13
+ | 功能 | 需求编号 | 状态 | 说明 |
14
+ |------|----------|------|------|
15
+ | 功能1 | REQ-XXX | 已完成 | 简要说明 |
16
+ | 功能2 | REQ-XXX | 开发中 | 简要说明 |
17
+
18
+ ---
19
+
20
+ ## 业务规则
21
+
22
+ | 规则 | 说明 |
23
+ |------|------|
24
+ | 规则1 | 详细说明 |
25
+ | 规则2 | 详细说明 |
26
+
27
+ ---
28
+
29
+ ## 数据模型
30
+
31
+ ### 核心表
32
+
33
+ | 表名 | 说明 |
34
+ |------|------|
35
+ | `table_name` | 表用途说明 |
36
+
37
+ ### 表关系
38
+
39
+ ```
40
+ 表A --1:N-- 表B --N:M-- 表C
41
+ ```
42
+
43
+ ---
44
+
45
+ ## 关键文件
46
+
47
+ | 层级 | 路径 | 说明 |
48
+ |------|------|------|
49
+ | Model | `internal/xxx/model/` | 数据模型 |
50
+ | Store | `internal/xxx/store/` | 数据访问 |
51
+ | Biz | `internal/xxx/biz/` | 业务逻辑 |
52
+ | Ctrl | `internal/xxx/controller/` | 接口控制器 |
53
+
54
+ ---
55
+
56
+ ## API 概览
57
+
58
+ | 方法 | 路径 | 说明 |
59
+ |------|------|------|
60
+ | GET | `/api/v1/xxx` | 查询列表 |
61
+ | POST | `/api/v1/xxx` | 创建 |
62
+ | PUT | `/api/v1/xxx/:id` | 更新 |
63
+ | DELETE | `/api/v1/xxx/:id` | 删除 |
64
+
65
+ ---
66
+
67
+ ## 相关需求
68
+
69
+ | 编号 | 标题 | 状态 | 更新时间 |
70
+ |------|------|------|----------|
71
+ | REQ-XXX | 需求标题 | 已完成 | YYYY-MM-DD |
72
+
73
+ ---
74
+
75
+ ## 变更记录
76
+
77
+ | 日期 | 变更内容 |
78
+ |------|----------|
79
+ | YYYY-MM-DD | 初始版本 |
@@ -0,0 +1,338 @@
1
+ # 产品需求文档 (PRD)
2
+
3
+ | 字段 | 内容 |
4
+ |-----|------|
5
+ | 产品名称 | {{PROJECT_NAME}} |
6
+ | 文档版本 | v1.0 |
7
+ | 创建日期 | {{DATE}} |
8
+ | 最后更新 | {{DATE}} |
9
+ | 文档负责人 | |
10
+ | 状态 | 草稿 / 评审中 / 已批准 |
11
+
12
+ ---
13
+
14
+ ## 修订历史
15
+
16
+ | 版本 | 日期 | 修改人 | 修改内容 |
17
+ |-----|------|-------|---------|
18
+ | v1.0 | {{DATE}} | | 初始版本 |
19
+
20
+ ---
21
+
22
+ ## 1. 概述
23
+
24
+ ### 1.1 背景与问题
25
+
26
+ > 描述当前存在的问题或机会,为什么需要这个产品
27
+
28
+ **现状**:
29
+
30
+ **问题**:
31
+
32
+ **机会**:
33
+
34
+ ### 1.2 产品愿景
35
+
36
+ > 用一句话描述产品的核心价值主张
37
+
38
+ ### 1.3 目标与成功指标
39
+
40
+ > 定义可衡量的成功标准
41
+
42
+ | 目标类型 | 指标 | 当前值 | 目标值 | 衡量方式 |
43
+ |---------|-----|-------|-------|---------|
44
+ | 业务目标 | | | | |
45
+ | 用户目标 | | | | |
46
+ | 技术目标 | | | | |
47
+
48
+ ### 1.4 范围定义
49
+
50
+ **包含(In Scope)**:
51
+ -
52
+
53
+ **不包含(Out of Scope)**:
54
+ -
55
+
56
+ ---
57
+
58
+ ## 2. 用户研究
59
+
60
+ ### 2.1 目标用户
61
+
62
+ | 用户角色 | 用户特征 | 使用场景 | 核心痛点 | 期望收益 |
63
+ |---------|---------|---------|---------|---------|
64
+ | | | | | |
65
+
66
+ ### 2.2 用户旅程
67
+
68
+ > 描述用户完成核心任务的完整流程。建议用 Mermaid `journey` 图,GitHub/Gitea 原生渲染。
69
+
70
+ ```mermaid
71
+ %%{init: {'theme':'neutral'}}%%
72
+ journey
73
+ title 用户核心任务旅程
74
+ section 阶段1
75
+ 触点A: 3: 用户
76
+ 触点B: 4: 用户
77
+ section 阶段2
78
+ 触点C: 2: 用户
79
+ 触点D: 5: 用户
80
+ section 阶段3
81
+ 触点E: 4: 用户
82
+ ```
83
+
84
+ > 分数表示用户情绪(1=糟糕,5=愉悦)。无 Mermaid 需求时可删除代码块,用文字描述。
85
+
86
+ ### 2.3 竞品分析
87
+
88
+ | 竞品 | 优势 | 劣势 | 我们的差异化 |
89
+ |-----|-----|-----|-------------|
90
+ | | | | |
91
+
92
+ ---
93
+
94
+ ## 3. 功能需求
95
+
96
+ ### 3.1 功能概览
97
+
98
+ | 优先级 | 功能模块 | 功能描述 | 用户价值 | MVP |
99
+ |-------|---------|---------|---------|-----|
100
+ | P0 | | | | 是 |
101
+ | P1 | | | | 是/否 |
102
+ | P2 | | | | 否 |
103
+
104
+ ### 3.2 功能详情
105
+
106
+ #### 3.2.1 [功能模块名称]
107
+
108
+ **功能描述**:
109
+
110
+ **用户故事**:
111
+ > 作为 [用户角色],我希望 [功能行为],以便 [获得价值]
112
+
113
+ **功能流程**:
114
+
115
+ ```mermaid
116
+ %%{init: {'theme':'neutral'}}%%
117
+ flowchart LR
118
+ A[用户操作] --> B[系统响应]
119
+ B --> C[结果展示]
120
+ ```
121
+
122
+ **业务规则**:
123
+ - 规则1:
124
+ - 规则2:
125
+
126
+ **界面原型**:
127
+ > 附上原型链接或截图
128
+
129
+ **验收标准**:
130
+ - [ ]
131
+ - [ ]
132
+
133
+ **边界情况**:
134
+ | 场景 | 处理方式 |
135
+ |-----|---------|
136
+ | | |
137
+
138
+ ---
139
+
140
+ ## 4. 非功能需求
141
+
142
+ ### 4.1 性能需求
143
+
144
+ | 场景 | 指标 | 目标值 | 测量方法 |
145
+ |-----|-----|-------|---------|
146
+ | 页面加载 | 首屏时间 | < 2s | |
147
+ | API 响应 | P95 延迟 | < 200ms | |
148
+ | 并发能力 | QPS | | |
149
+ | 数据量 | 单表记录 | | |
150
+
151
+ ### 4.2 可用性需求
152
+
153
+ - 系统可用性:99.9%
154
+ - 计划内维护窗口:
155
+ - 故障恢复时间(RTO):
156
+ - 数据恢复点(RPO):
157
+
158
+ ### 4.3 安全需求
159
+
160
+ | 类别 | 需求 | 优先级 |
161
+ |-----|-----|-------|
162
+ | 认证 | | P0 |
163
+ | 授权 | | P0 |
164
+ | 数据安全 | | P0 |
165
+ | 审计日志 | | P1 |
166
+ | 合规要求 | | |
167
+
168
+ ### 4.4 兼容性需求
169
+
170
+ **Web 端**:
171
+ - 浏览器:Chrome、Firefox、Safari、Edge(最新两个版本)
172
+
173
+ **移动端**:
174
+ - iOS:12.0+
175
+ - Android:8.0+
176
+
177
+ **其他**:
178
+ - 屏幕分辨率:
179
+ - 网络环境:
180
+
181
+ ---
182
+
183
+ ## 5. 数据需求
184
+
185
+ ### 5.1 数据模型
186
+
187
+ > 描述核心数据实体及其关系
188
+
189
+ | 实体 | 描述 | 关键字段 |
190
+ |-----|-----|---------|
191
+ | | | |
192
+
193
+ ### 5.2 数据采集
194
+
195
+ | 数据点 | 采集时机 | 用途 | 保留期限 |
196
+ |-------|---------|-----|---------|
197
+ | | | | |
198
+
199
+ ### 5.3 数据报表
200
+
201
+ | 报表名称 | 维度 | 指标 | 更新频率 |
202
+ |---------|-----|-----|---------|
203
+ | | | | |
204
+
205
+ ---
206
+
207
+ ## 6. 技术方案
208
+
209
+ ### 6.1 系统架构
210
+
211
+ > 简要描述技术选型和整体架构
212
+
213
+ **前端**:
214
+ - 框架:
215
+ - 状态管理:
216
+ - UI 组件库:
217
+
218
+ **后端**:
219
+ - 语言/框架:
220
+ - 数据库:
221
+ - 缓存:
222
+ - 消息队列:
223
+
224
+ **基础设施**:
225
+ - 部署方式:
226
+ - 监控告警:
227
+ - 日志系统:
228
+
229
+ ### 6.2 第三方依赖
230
+
231
+ | 服务类型 | 服务商 | 用途 | 备选方案 |
232
+ |---------|-------|-----|---------|
233
+ | | | | |
234
+
235
+ ### 6.3 接口设计
236
+
237
+ > 列出关键 API 接口
238
+
239
+ | 接口 | 方法 | 描述 |
240
+ |-----|-----|-----|
241
+ | | | |
242
+
243
+ ---
244
+
245
+ ## 7. 发布计划
246
+
247
+ ### 7.1 版本规划
248
+
249
+ | 版本 | 目标 | 核心功能 | 预计时间 |
250
+ |-----|-----|---------|---------|
251
+ | MVP | 验证核心假设 | | |
252
+ | v1.0 | 正式上线 | | |
253
+ | v1.x | 持续迭代 | | |
254
+
255
+ ### 7.2 里程碑
256
+
257
+ | 里程碑 | 计划时间 | 实际时间 | 状态 | 备注 |
258
+ |-------|---------|---------|-----|-----|
259
+ | 需求评审通过 | | | 待开始 | |
260
+ | 技术方案确定 | | | 待开始 | |
261
+ | UI/UX 设计完成 | | | 待开始 | |
262
+ | 开发完成 | | | 待开始 | |
263
+ | 测试通过 | | | 待开始 | |
264
+ | 上线发布 | | | 待开始 | |
265
+
266
+ ### 7.3 灰度策略
267
+
268
+ > 描述上线的灰度发布计划
269
+
270
+ ---
271
+
272
+ ## 8. 风险管理
273
+
274
+ ### 8.1 风险识别
275
+
276
+ | 风险 | 类型 | 可能性 | 影响 | 应对措施 | 负责人 |
277
+ |-----|-----|-------|-----|---------|-------|
278
+ | | 技术/业务/资源 | 高/中/低 | 高/中/低 | | |
279
+
280
+ ### 8.2 依赖项
281
+
282
+ | 依赖项 | 类型 | 状态 | 风险 |
283
+ |-------|-----|-----|-----|
284
+ | | 内部/外部 | 已确认/待确认 | |
285
+
286
+ ### 8.3 假设与约束
287
+
288
+ **假设**:
289
+ -
290
+
291
+ **约束**:
292
+ -
293
+
294
+ ---
295
+
296
+ ## 9. 需求追踪
297
+
298
+ > 本章节由 `/req:new` 和 `/req:done` 命令自动维护,记录所有从本 PRD 派生的需求。
299
+
300
+ | 编号 | 标题 | 模块 | 状态 | 创建日期 | 完成日期 |
301
+ |-----|------|------|------|---------|---------|
302
+ | - | 暂无需求 | - | - | - | - |
303
+
304
+ ---
305
+
306
+ ## 10. 附录
307
+
308
+ ### 10.1 术语表
309
+
310
+ | 术语 | 定义 |
311
+ |-----|-----|
312
+ | | |
313
+
314
+ ### 10.2 参考资料
315
+
316
+ -
317
+
318
+ ### 10.3 相关文档
319
+
320
+ | 文档 | 链接 |
321
+ |-----|-----|
322
+ | 原型设计 | |
323
+ | 技术方案 | |
324
+ | 测试用例 | |
325
+
326
+ ---
327
+
328
+ ## 审批记录
329
+
330
+ | 角色 | 姓名 | 意见 | 日期 |
331
+ |-----|-----|-----|-----|
332
+ | 产品负责人 | | | |
333
+ | 技术负责人 | | | |
334
+ | 业务负责人 | | | |
335
+
336
+ ---
337
+
338
+ > 下一步:完善 PRD 后,可使用 `/req:new <标题>` 创建具体需求
@@ -0,0 +1,71 @@
1
+ # QUICK-XXX 标题
2
+
3
+ ## 元信息
4
+
5
+ | 字段 | 值 |
6
+ |-----|-----|
7
+ | 编号 | QUICK-XXX |
8
+ | 改动类型 | bug修复 / 小功能 / 优化 |
9
+ | 端类型 | 后端 / 前端 / 全栈 |
10
+ | 状态 | 草稿 |
11
+ | 模块 | - |
12
+ | 优先级 | P2 |
13
+ | 创建时间 | YYYY-MM-DD |
14
+ | 负责人 | |
15
+ | 关联需求 | - |
16
+ | branch | - |
17
+ | issue | - |
18
+
19
+ ## 生命周期
20
+
21
+ - [x] 草稿
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
+ | path/to/file.go | 修改 | [改动说明] |
51
+
52
+ ### 改动量
53
+ - 预估:小 / 中
54
+ - 涉及文件:X 个
55
+ - 代码行数:约 XX 行
56
+
57
+ ---
58
+
59
+ ## 验证方式
60
+
61
+ - [ ] [验证步骤1]
62
+ - [ ] [验证步骤2]
63
+ - [ ] 确认无副作用
64
+
65
+ ---
66
+
67
+ ## 开发记录
68
+
69
+ ### YYYY-MM-DD
70
+ - 创建快速需求
71
+ - [开发过程记录...]
@@ -0,0 +1,51 @@
1
+ # Release 配置
2
+
3
+ > 本文件由 `/req:release` 在步骤 0 读取,注入项目特有的发版规则。
4
+ > 删除不需要的章节即可——所有章节均为可选,缺失时使用插件默认行为。
5
+
6
+ ## 版本号文件
7
+
8
+ > 版本号确定后(步骤 2),自动更新并暂存以下文件中的版本号字段。
9
+ > 章节为空时跳过,不影响其他步骤。
10
+
11
+ <!--
12
+ 示例:
13
+ - `package.json` → `version`(直接写入本次 release 版本号,去掉 v 前缀)
14
+ - `pyproject.toml` → `[project] version`
15
+ - `src/version.go` → `const Version = "<version>"`
16
+ -->
17
+
18
+ ## 发版前检查
19
+
20
+ > 在生成任何产物(SQL 合并、changelog、commit)之前必须通过的检查。
21
+ > 检查失败时硬停止,不继续执行后续步骤。
22
+
23
+ <!--
24
+ 示例:
25
+ - 运行测试:`npm test` / `go test ./...` / `pytest`
26
+ - 构建验证:`npm run build`
27
+ - Lint:`eslint src/`
28
+ -->
29
+
30
+ ## 发版后步骤
31
+
32
+ > Release 创建成功后执行(草稿模式下不执行,publish 后由人工触发)。
33
+ > 仅输出提示,不自动执行副作用操作(通知、部署等由人工确认)。
34
+
35
+ <!--
36
+ 示例:
37
+ - 通知渠道:发版后在 #releases 频道 @ 团队
38
+ - 部署:触发 staging 环境部署流水线
39
+ - 文档:更新 docs 站点版本号
40
+ -->
41
+
42
+ ## 额外附件
43
+
44
+ > 除 SQL 文件外,需要上传到 Release 的其他文件或目录。
45
+ > 支持 glob 模式,路径相对项目根目录。
46
+
47
+ <!--
48
+ 示例:
49
+ - `dist/app-*.zip`
50
+ - `docs/api-spec.yaml`
51
+ -->