@miniidealab/openlogos 0.9.22 → 0.9.24
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/claude-plugin-template/.claude-plugin/plugin.json +1 -1
- package/dist/commands/init.d.ts +2 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +70 -37
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +54 -0
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/merge.d.ts.map +1 -1
- package/dist/commands/merge.js +3 -1
- package/dist/commands/merge.js.map +1 -1
- package/dist/commands/next.d.ts.map +1 -1
- package/dist/commands/next.js +37 -63
- package/dist/commands/next.js.map +1 -1
- package/dist/commands/smoke.d.ts +30 -0
- package/dist/commands/smoke.d.ts.map +1 -0
- package/dist/commands/smoke.js +237 -0
- package/dist/commands/smoke.js.map +1 -0
- package/dist/commands/status.d.ts +20 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +148 -25
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +32 -1
- package/dist/commands/verify.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +85 -33
- package/dist/i18n.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/sync-resource-index.d.ts.map +1 -1
- package/dist/lib/sync-resource-index.js +21 -2
- package/dist/lib/sync-resource-index.js.map +1 -1
- package/package.json +1 -1
- package/skills/architecture-designer/SKILL.md +27 -5
- package/skills/change-writer/SKILL.md +61 -11
- package/skills/code-implementor/SKILL.md +5 -5
- package/skills/code-reviewer/SKILL.md +1 -1
- package/skills/deployment-designer/SKILL.md +137 -0
- package/skills/deployment-executor/SKILL.md +133 -0
- package/skills/merge-executor/SKILL.md +17 -4
- package/skills/project-init/SKILL.md +42 -2
- package/skills/test-orchestrator/SKILL.md +6 -6
- package/skills/test-writer/SKILL.md +67 -8
- package/spec/agents-md.md +21 -9
- package/spec/change-management.md +60 -20
- package/spec/cli-json-output.md +95 -16
- package/spec/directory-convention.md +28 -6
- package/spec/logos-project.md +44 -1
- package/spec/logos.config.schema.json +32 -2
- package/spec/tasks-spec.md +47 -11
- package/spec/test-results.md +2 -2
- package/spec/workflow.md +115 -33
|
@@ -5,18 +5,19 @@
|
|
|
5
5
|
## 触发条件
|
|
6
6
|
|
|
7
7
|
- 用户要求设计测试用例或测试方案
|
|
8
|
-
- 用户提到 "Phase 3 Step
|
|
8
|
+
- 用户提到 "Phase 3 Step 4a"、"Step 4a"、"测试先行"、"测试设计"
|
|
9
9
|
- 已有场景时序图,需要在写代码前设计测试
|
|
10
10
|
- 用户指定某个场景编号(如 S01)需要设计测试
|
|
11
11
|
|
|
12
12
|
## 前置依赖
|
|
13
13
|
|
|
14
14
|
- `logos/resources/prd/3-technical-plan/2-scenario-implementation/` 中包含场景时序图(**必需**)
|
|
15
|
+
- `logos/resources/prd/3-technical-plan/3-deployment/` 中包含部署方案(如项目需要部署则必需)
|
|
15
16
|
- `logos/resources/api/` 中包含 API 规格(有则读取,无则跳过——非 API 项目可能没有)
|
|
16
17
|
- `logos/resources/database/` 中包含 DB DDL(有则读取,无则跳过)
|
|
17
18
|
- `logos/resources/prd/1-product-requirements/` 中包含需求文档(用于追溯验收条件)
|
|
18
19
|
|
|
19
|
-
**不可跳过**:无论项目类型如何,Step
|
|
20
|
+
**不可跳过**:无论项目类型如何,Step 4a(本 Skill)都必须执行。若部署方案声明需要部署,本 Skill 必须一并设计部署后冒烟测试。
|
|
20
21
|
|
|
21
22
|
## 核心能力
|
|
22
23
|
|
|
@@ -25,7 +26,8 @@
|
|
|
25
26
|
3. 从业务规则和 EX 异常用例中的单点错误处理提取单元测试用例
|
|
26
27
|
4. 从时序图 Step 序列提取场景测试用例(主路径)
|
|
27
28
|
5. 从 EX 异常用例提取场景测试用例(异常路径)
|
|
28
|
-
6.
|
|
29
|
+
6. 从部署方案提取 smoke 测试用例(仅需要部署的项目)
|
|
30
|
+
7. 从 Phase 1/2 验收条件反向校验测试覆盖完整性
|
|
29
31
|
|
|
30
32
|
## 执行步骤
|
|
31
33
|
|
|
@@ -34,6 +36,7 @@
|
|
|
34
36
|
读取以下文件建立完整上下文:
|
|
35
37
|
|
|
36
38
|
- 场景时序图(`logos/resources/prd/3-technical-plan/2-scenario-implementation/`)
|
|
39
|
+
- 部署方案(`logos/resources/prd/3-technical-plan/3-deployment/`)—— 如果项目需要部署
|
|
37
40
|
- API YAML(`logos/resources/api/`)—— 如果存在
|
|
38
41
|
- DB DDL(`logos/resources/database/`)—— 如果存在
|
|
39
42
|
- Phase 1 需求文档(验收条件)
|
|
@@ -132,6 +135,32 @@
|
|
|
132
135
|
|
|
133
136
|
**判断标准**:如果该用例在 CI 无头环境中无法稳定运行并自动断言结果,就应加 `[manual]`。
|
|
134
137
|
|
|
138
|
+
#### 3d: 部署后冒烟测试(需要部署时)
|
|
139
|
+
|
|
140
|
+
当部署方案存在且声明需要部署时,必须设计 smoke 测试用例。冒烟测试验证“部署后的环境是否可用”,不替代 UT/ST/API 编排测试。
|
|
141
|
+
|
|
142
|
+
从部署方案中提取以下用例:
|
|
143
|
+
|
|
144
|
+
- 健康检查:服务进程、HTTP health endpoint、CLI version 或桌面应用启动检查
|
|
145
|
+
- 核心入口:主页、登录页、主 API、主命令
|
|
146
|
+
- 数据库迁移:关键表/字段存在、迁移版本正确、初始化数据可读
|
|
147
|
+
- 静态资源:前端 bundle、图片、CSS、字体或下载资源可访问
|
|
148
|
+
- 配置与密钥:必要环境变量存在且没有使用测试占位值
|
|
149
|
+
- 关键链路:最小可用用户路径,例如登录、创建一条核心记录、读取结果
|
|
150
|
+
- 日志与监控:部署后没有阻断性错误
|
|
151
|
+
|
|
152
|
+
**每个 smoke 用例格式**:
|
|
153
|
+
|
|
154
|
+
| 字段 | 说明 |
|
|
155
|
+
|------|------|
|
|
156
|
+
| ID | `SMOKE-{模块}-{序号}`,如 `SMOKE-core-01` |
|
|
157
|
+
| 描述 | 验证什么部署后行为 |
|
|
158
|
+
| 来源 | 部署方案章节或检查项 |
|
|
159
|
+
| 目标环境 | local / staging / production |
|
|
160
|
+
| 前置条件 | 部署完成、迁移完成、必要配置存在 |
|
|
161
|
+
| 操作 | 执行的命令、请求或访问动作 |
|
|
162
|
+
| 预期结果 | 返回码、页面状态、日志、数据库状态 |
|
|
163
|
+
|
|
135
164
|
### Step 4: 覆盖度校验
|
|
136
165
|
|
|
137
166
|
反向校验测试用例是否覆盖了所有关键约束:
|
|
@@ -141,6 +170,7 @@
|
|
|
141
170
|
- [ ] 每个 EX 异常用例至少对应 1 个 ST 用例
|
|
142
171
|
- [ ] API 每个 `required` 字段至少 1 个 UT 用例
|
|
143
172
|
- [ ] DB 每个 `UNIQUE` / `CHECK` 约束至少 1 个 UT 用例
|
|
173
|
+
- [ ] 如需要部署,部署方案中的每个部署后检查项至少对应 1 个 SMOKE 用例
|
|
144
174
|
|
|
145
175
|
如有未覆盖项,补充用例或向用户说明理由。
|
|
146
176
|
|
|
@@ -165,13 +195,13 @@
|
|
|
165
195
|
|
|
166
196
|
### Step 6: 输出测试用例规格文档
|
|
167
197
|
|
|
168
|
-
按场景输出 Markdown
|
|
198
|
+
按场景输出 Markdown 格式的测试用例规格文档。若需要部署,同时输出 smoke 测试用例规格文档。
|
|
169
199
|
|
|
170
200
|
### Step 7: 引导后续操作
|
|
171
201
|
|
|
172
202
|
根据项目类型引导用户进入下一步:
|
|
173
203
|
|
|
174
|
-
- **涉及 API** → 「继续进入 Step
|
|
204
|
+
- **涉及 API** → 「继续进入 Step 4b 设计 API 编排测试?」
|
|
175
205
|
- **不涉及 API** → 「测试设计已完成,建议进入代码生成:对我说『按 S01 的规格帮我实现』」
|
|
176
206
|
|
|
177
207
|
## 输出规范
|
|
@@ -180,7 +210,9 @@
|
|
|
180
210
|
- **存放位置**:`logos/resources/test/`
|
|
181
211
|
- **命名规则**:`<module>-{场景编号}-test-cases.md`(如 `core-S01-test-cases.md`;从 `logos-project.yaml` 的 `modules[]` 读取当前模块,默认为 `core`)
|
|
182
212
|
- 每个文件包含:单元测试用例(按来源分组)+ 场景测试用例(主路径 + 异常路径)
|
|
183
|
-
-
|
|
213
|
+
- **Smoke 存放位置**:`logos/resources/test/smoke/`
|
|
214
|
+
- **Smoke 命名规则**:`<module>-smoke-test-cases.md`
|
|
215
|
+
- 用例 ID 全局唯一:`UT-{场景编号}-{序号}` / `ST-{场景编号}-{序号}` / `SMOKE-{module}-{序号}`
|
|
184
216
|
|
|
185
217
|
### 文档结构模板
|
|
186
218
|
|
|
@@ -235,6 +267,32 @@
|
|
|
235
267
|
| S01-AC-03 | 异常:项目已初始化 — 显示错误提示 | ST-S01-03, UT-S01-05 |
|
|
236
268
|
```
|
|
237
269
|
|
|
270
|
+
### Smoke 文档结构模板
|
|
271
|
+
|
|
272
|
+
```markdown
|
|
273
|
+
# {module}: 部署后冒烟测试用例
|
|
274
|
+
|
|
275
|
+
## 一、冒烟测试范围
|
|
276
|
+
|
|
277
|
+
| 环境 | 覆盖范围 | 说明 |
|
|
278
|
+
|------|----------|------|
|
|
279
|
+
| staging | 健康检查、核心 API、迁移检查 | launch 前必跑 |
|
|
280
|
+
|
|
281
|
+
## 二、冒烟测试用例
|
|
282
|
+
|
|
283
|
+
| ID | 描述 | 来源 | 目标环境 | 前置条件 | 操作 | 预期结果 |
|
|
284
|
+
|----|------|------|----------|----------|------|----------|
|
|
285
|
+
| SMOKE-core-01 | 健康检查接口可访问 | 部署方案:部署后检查 | staging | 服务已部署 | GET /health | 200 OK |
|
|
286
|
+
|
|
287
|
+
## 三、覆盖度校验
|
|
288
|
+
|
|
289
|
+
- [x] 健康检查:已覆盖
|
|
290
|
+
- [x] 核心入口:已覆盖
|
|
291
|
+
- [x] 数据库迁移:已覆盖
|
|
292
|
+
- [x] 静态资源:已覆盖
|
|
293
|
+
- [x] 关键链路:已覆盖
|
|
294
|
+
```
|
|
295
|
+
|
|
238
296
|
## 用例 ID 合约
|
|
239
297
|
|
|
240
298
|
用例 ID(`UT-S01-01`、`ST-S01-01`)是设计文档与运行时的**绑定合约**:
|
|
@@ -242,13 +300,14 @@
|
|
|
242
300
|
- 在 test-cases.md 中定义的 ID,必须在生成的测试代码中被原样使用
|
|
243
301
|
- 测试代码的 reporter 会把每个用例的 ID 和运行结果写入 JSONL 文件
|
|
244
302
|
- `openlogos verify` 通过 ID 将运行结果映射回测试用例规格,自动判定验收
|
|
245
|
-
-
|
|
303
|
+
- `SMOKE-*` 由 smoke 测试脚本写入 `smoke-results.jsonl`,供 `openlogos smoke` 判定
|
|
304
|
+
- 修改用例 ID 时必须同步修改对应测试代码或 smoke 脚本中的 ID
|
|
246
305
|
|
|
247
306
|
详细的 JSONL 格式定义和各语言 reporter 代码模板见 `logos/spec/test-results.md`。
|
|
248
307
|
|
|
249
308
|
## 实践经验
|
|
250
309
|
|
|
251
|
-
- **测试用例是设计文档,不是代码**:本 Skill 产出的是 Markdown 格式的测试用例规格,具体的测试代码在 Step
|
|
310
|
+
- **测试用例是设计文档,不是代码**:本 Skill 产出的是 Markdown 格式的测试用例规格,具体的测试代码在 Step 5 代码生成阶段由 AI 基于此规格实现
|
|
252
311
|
- **先单元后场景**:单元测试用例覆盖单个函数的正确性,场景测试覆盖跨模块串联——先确保积木正确,再验证积木拼接
|
|
253
312
|
- **不要遗漏 DB 约束**:很多 Bug 来自数据库层面的约束违反,DB 约束是单元测试用例的重要来源
|
|
254
313
|
- **场景测试关注数据传递**:Step 间的数据传递(前一步输出 → 后一步输入)是最容易出错的地方
|
package/spec/agents-md.md
CHANGED
|
@@ -27,6 +27,9 @@ Read `logos/logos-project.yaml` first to understand the project resource index.
|
|
|
27
27
|
3. All API designs must originate from scenario sequence diagrams
|
|
28
28
|
4. All code changes must have corresponding API orchestration tests
|
|
29
29
|
5. Use the Delta change workflow for iterations (see logos/changes/ directory)
|
|
30
|
+
6. All generated test code must include an OpenLogos reporter
|
|
31
|
+
7. Deployment is a human confirmation point; AI must not deploy without explicit authorization
|
|
32
|
+
8. If deployment is required, smoke tests must be designed with the test plan and run via `openlogos smoke` after deployment
|
|
30
33
|
|
|
31
34
|
## Document Edit Verification
|
|
32
35
|
[Fixed locale-specific paragraph — re-read from disk after Markdown/text spec edits]
|
|
@@ -44,19 +47,26 @@ Phase detection logic:
|
|
|
44
47
|
- design exists but `3-technical-plan/1-architecture/` is empty → suggest Phase 3 Step 0 (architecture-designer)
|
|
45
48
|
- architecture exists but `3-technical-plan/2-scenario-implementation/` is empty → suggest Phase 3 Step 1 (scenario-architect)
|
|
46
49
|
- scenarios exist but `logos/resources/api/` is empty → suggest Phase 3 Step 2 (api-designer + db-designer)
|
|
47
|
-
- API exists but `
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
- API/DB exists but `3-technical-plan/3-deployment/` is empty → suggest Phase 3 Step 3 (deployment-designer)
|
|
51
|
+
- deployment plan exists but `logos/resources/test/` is empty → suggest Phase 3 Step 4a (test-writer)
|
|
52
|
+
- test cases exist but `logos/resources/scenario/` is empty → suggest Phase 3 Step 4b (test-orchestrator, API projects only)
|
|
53
|
+
- orchestration tests exist but `logos/resources/implementation/` is empty → suggest Phase 3 Step 5 (code-implementor)
|
|
54
|
+
- code generated but `logos/resources/verify/acceptance-report.md` is missing or verify has not passed → suggest Phase 3 Step 6 (`openlogos verify`)
|
|
55
|
+
- verify passed but deployment is required and `deployment-report.md` is missing → suggest Phase 3 Step 7 (deployment-executor, human confirmation required)
|
|
56
|
+
- deployment done but `smoke-report.md` / `SMOKE_PASS` is missing → suggest Phase 3 Step 8 (`openlogos smoke`)
|
|
57
|
+
- smoke passed → suggest `openlogos launch`
|
|
58
|
+
|
|
59
|
+
Step 5 execution rules (large tasks):
|
|
53
60
|
1. Large implementation can be split by scenario/module, but each batch must be closed-loop
|
|
54
61
|
2. Each batch must include business code + UT/ST test code + OpenLogos reporter
|
|
55
62
|
3. Before generating code, list the UT/ST case IDs covered in this batch and keep IDs aligned with `logos/resources/test/*.md`
|
|
56
63
|
4. Do not postpone all tests to the final batch
|
|
57
64
|
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
Deployment rules:
|
|
66
|
+
1. AI must not run deployment commands unless the user explicitly authorizes deployment
|
|
67
|
+
2. AI must read `logos/resources/prd/3-technical-plan/3-deployment/` before deployment
|
|
68
|
+
3. Deployment completion must be followed by `openlogos smoke`
|
|
69
|
+
4. Initial modules can be launched only after verify, deployment, and smoke gates pass, unless explicitly marked as not requiring deployment
|
|
60
70
|
|
|
61
71
|
## Active Skills
|
|
62
72
|
[根据 `logos.config.json` 的 `aiTool` 字段动态生成]
|
|
@@ -105,7 +115,9 @@ AGENTS.md 的内容从以下文件中自动提取:
|
|
|
105
115
|
4. All code changes must have corresponding API orchestration tests
|
|
106
116
|
5. Use the Delta change workflow for iterations
|
|
107
117
|
6. All generated test code must include an OpenLogos reporter (see spec/test-results.md)
|
|
108
|
-
7.
|
|
118
|
+
7. Deployment is a human confirmation point; AI must not deploy without explicit authorization
|
|
119
|
+
8. If deployment is required, smoke tests must be designed and run via `openlogos smoke` after deployment
|
|
120
|
+
9. After editing Markdown / text specs, re-read from disk and show excerpts to the user (see 「文档修改后的验证」生成段)
|
|
109
121
|
|
|
110
122
|
### 生成时机
|
|
111
123
|
|
|
@@ -7,10 +7,11 @@
|
|
|
7
7
|
## 核心原则
|
|
8
8
|
|
|
9
9
|
1. **不直接修改主文档**:每次变更先在 `logos/changes/` 中创建提案
|
|
10
|
-
2. **影响分析先行**:在 `proposal.md`
|
|
10
|
+
2. **影响分析先行**:在 `proposal.md` 中明确变更范围和部署影响
|
|
11
11
|
3. **按需传播**:不是每次都全链路更新,只更新受影响的环节
|
|
12
|
-
4.
|
|
13
|
-
5.
|
|
12
|
+
4. **部署可追溯**:需要部署的提案必须产出部署 delta、部署任务和冒烟测试方案
|
|
13
|
+
5. **归档留痕**:变更完成后归档,保留完整历史
|
|
14
|
+
6. **guard 互斥**:同一时间只允许一个活动提案;存在活动 guard 时,必须阻止新的 `openlogos change`
|
|
14
15
|
|
|
15
16
|
## 目录结构
|
|
16
17
|
|
|
@@ -47,17 +48,30 @@ project-root/
|
|
|
47
48
|
## 变更原因
|
|
48
49
|
[为什么要做这个变更?来源于哪个需求/反馈/Bug?]
|
|
49
50
|
|
|
51
|
+
## 变更类型
|
|
52
|
+
[需求级 / 设计级 / 接口级 / 代码级]
|
|
53
|
+
|
|
50
54
|
## 变更范围
|
|
51
55
|
- 影响的需求文档:[列表]
|
|
52
56
|
- 影响的功能规格:[列表]
|
|
53
57
|
- 影响的业务场景:[列表]
|
|
54
58
|
- 影响的 API:[列表]
|
|
55
59
|
- 影响的 DB 表:[列表]
|
|
60
|
+
- 影响的编排测试:[列表]
|
|
61
|
+
|
|
62
|
+
## 部署影响
|
|
63
|
+
- 是否需要部署:是 / 否
|
|
64
|
+
- 部署原因:[说明为什么需要或不需要部署]
|
|
65
|
+
- 影响环境:[本地 / 测试 / 预发 / 生产 / 无]
|
|
66
|
+
- 是否涉及数据迁移:是 / 否
|
|
67
|
+
- 是否需要回滚预案:是 / 否
|
|
56
68
|
|
|
57
69
|
## 变更概述
|
|
58
70
|
[用 1-3 段话概述具体改什么]
|
|
59
71
|
```
|
|
60
72
|
|
|
73
|
+
`## 部署影响` 是人工审核依据。CLI 的部署状态判断以 `tasks.md` 的 `[deploy]` section 和提案目录标记文件为准,不解析自由文本作为唯一依据。
|
|
74
|
+
|
|
61
75
|
### tasks.md
|
|
62
76
|
|
|
63
77
|
实现任务清单,使用结构化 section 格式,每个 section 对应提案流程中的一个阶段。完整格式规范见 `spec/tasks-spec.md`。
|
|
@@ -72,15 +86,21 @@ project-root/
|
|
|
72
86
|
## [code] 代码实现
|
|
73
87
|
- [ ] 实现 src/xxx 中的业务逻辑
|
|
74
88
|
- [ ] 编写对应测试
|
|
89
|
+
|
|
90
|
+
## [deploy] 部署任务
|
|
91
|
+
- [ ] 按部署方案部署到 staging
|
|
92
|
+
- [ ] 确认迁移、配置、服务启动和回滚预案
|
|
75
93
|
```
|
|
76
94
|
|
|
77
95
|
Section 标记规则:
|
|
78
96
|
- `## [delta]` — delta 文档产出任务,该 section 全部勾选后可进入 `ready-to-merge`
|
|
79
97
|
- `## [code]` — 代码实现任务,直接修改源文件,不产出 delta
|
|
98
|
+
- `## [deploy]` — 部署执行任务,只能在 verify PASS 后、人类明确确认后执行
|
|
80
99
|
- 纯代码提案可只有 `[code]` section(无 `[delta]`),CLI 会直接跳过 delta-writing 阶段
|
|
100
|
+
- 不需要部署的提案不得创建 `[deploy]` section
|
|
81
101
|
- 旧格式(无 section 标记)向后兼容,降级为全局勾选判断
|
|
82
102
|
|
|
83
|
-
> **注意**:`openlogos verify`
|
|
103
|
+
> **注意**:`openlogos verify` 和 `openlogos smoke` 是独立 CLI 操作节点,不应写入 tasks.md 作为可勾选任务。tasks.md 只追踪 delta、代码和部署执行任务。
|
|
84
104
|
|
|
85
105
|
### deltas/ 目录
|
|
86
106
|
|
|
@@ -103,14 +123,18 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
103
123
|
- `deltas/database/` → 对应 `logos/resources/database/` 的变更
|
|
104
124
|
- `deltas/scenario/` → 对应 `logos/resources/scenario/` 的变更
|
|
105
125
|
- `deltas/test/` → 对应 `logos/resources/test/` 的变更
|
|
126
|
+
- `deltas/spec/` → 对应项目根目录 `spec/` 的方法论规范变更
|
|
127
|
+
- `deltas/skills/` → 对应 `logos/skills/` 的 Skill 文档变更
|
|
128
|
+
|
|
129
|
+
部署方案 delta 使用 `deltas/prd/3-technical-plan/3-deployment/`,合并目标为 `logos/resources/prd/3-technical-plan/3-deployment/`。
|
|
106
130
|
|
|
107
|
-
`openlogos merge` 会递归扫描上述目录,保留子目录映射。例如 `deltas/prd/
|
|
131
|
+
`openlogos merge` 会递归扫描上述目录,保留子目录映射。例如 `deltas/prd/3-technical-plan/3-deployment/core-01-deployment-plan.md` 会合并到 `logos/resources/prd/3-technical-plan/3-deployment/core-01-deployment-plan.md`。
|
|
108
132
|
|
|
109
133
|
## 变更工作流
|
|
110
134
|
|
|
111
|
-
> **核心原则**:`openlogos merge`、`openlogos verify`、`openlogos archive` 和 `git push` 是人类确认点。AI 可提醒、解释、准备命令;未经用户明确授权不得执行。用户以明确请求或 slash command 授权时,AI
|
|
135
|
+
> **核心原则**:`openlogos merge`、`openlogos verify`、部署执行、`openlogos smoke`、`openlogos archive` 和 `git push` 是人类确认点。AI 可提醒、解释、准备命令;未经用户明确授权不得执行。用户以明确请求或 slash command 授权时,AI 可以代为执行。不得在“顺手完成流程”“按流程走完”等隐式场景中自动触发。
|
|
112
136
|
>
|
|
113
|
-
>
|
|
137
|
+
> **规格驱动代码**:代码实现必须在规格合并进主文档之后才能开始,不允许基于 delta 草稿直接写代码。
|
|
114
138
|
|
|
115
139
|
```
|
|
116
140
|
1. 创建变更提案(CLI)
|
|
@@ -152,14 +176,29 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
152
176
|
└── 验收通过(PASS)→ 继续步骤 9
|
|
153
177
|
└── 验收失败(FAIL)→ 修复代码后重新运行,不需要重走 merge 流程
|
|
154
178
|
|
|
155
|
-
9.
|
|
179
|
+
9. 部署执行(如需要)【人类确认点】
|
|
180
|
+
└── 仅当 VERIFY_PASS 存在且 tasks.md 有 [deploy] section 时进入
|
|
181
|
+
└── 用户必须明确授权 AI 执行部署
|
|
182
|
+
└── AI 必须读取合并后的部署方案文档和 [deploy] section
|
|
183
|
+
└── 部署完成后生成 logos/resources/verify/deployment-report.md
|
|
184
|
+
└── 部署完成后写入 logos/changes/{slug}/DEPLOY_DONE
|
|
185
|
+
└── 部署失败时不得写入 DEPLOY_DONE,应输出失败点和回滚建议
|
|
186
|
+
|
|
187
|
+
10. 运行部署后冒烟测试(CLI)【人类确认点】
|
|
188
|
+
└── 部署完成后运行 openlogos smoke
|
|
189
|
+
└── openlogos smoke 读取 smoke 结果并生成 logos/resources/verify/smoke-report.md
|
|
190
|
+
└── 冒烟通过写入 SMOKE_PASS
|
|
191
|
+
└── 冒烟失败写入 SMOKE_FAIL
|
|
192
|
+
└── SMOKE_PASS 后才能归档提案;Initial 阶段还必须通过该门禁后才能 openlogos launch
|
|
193
|
+
|
|
194
|
+
11. 归档变更(CLI)【人类确认点】
|
|
156
195
|
└── openlogos archive {slug}
|
|
157
196
|
└── 将 logos/changes/{slug}/ 移入 logos/changes/archive/
|
|
158
197
|
└── 若当前 guard 指向该提案,则删除 logos/.openlogos-guard
|
|
159
198
|
└── 归档完成后,AI 自动 commit 归档变更(告知用户,无需确认)
|
|
160
199
|
└── commit message 格式:chore({slug}): archive change proposal
|
|
161
200
|
|
|
162
|
-
|
|
201
|
+
12. 推送到远端(Git)【人类确认点】
|
|
163
202
|
└── AI 提示用户确认是否执行 git push
|
|
164
203
|
└── 用户明确授权后,AI 执行 git push
|
|
165
204
|
└── 未获授权不得自动推送
|
|
@@ -169,9 +208,9 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
169
208
|
|
|
170
209
|
| 变更类型 | commit 策略 |
|
|
171
210
|
|---------|------------|
|
|
172
|
-
| 需求级 / 设计级变更 | 至少 3 个 commit:规格(Step 6)+ 代码(Step 7)+ 归档(Step
|
|
173
|
-
| 接口级变更 | 至少 2 个 commit:规格+代码合并(Step 6-7)+ 归档(Step
|
|
174
|
-
| 代码级修复 | 至少 2 个 commit:代码(Step 7)+ 归档(Step
|
|
211
|
+
| 需求级 / 设计级变更 | 至少 3 个 commit:规格(Step 6)+ 代码(Step 7)+ 归档(Step 11) |
|
|
212
|
+
| 接口级变更 | 至少 2 个 commit:规格+代码合并(Step 6-7)+ 归档(Step 11) |
|
|
213
|
+
| 代码级修复 | 至少 2 个 commit:代码(Step 7)+ 归档(Step 11) |
|
|
175
214
|
|
|
176
215
|
## 变更传播规则
|
|
177
216
|
|
|
@@ -179,10 +218,11 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
179
218
|
|
|
180
219
|
| 变更类型 | 最少需要更新 | 说明 |
|
|
181
220
|
|---------|------------|------|
|
|
182
|
-
| 需求级变更 | 全链路 | 需求变了,所有下游都可能受影响 |
|
|
183
|
-
| 设计级变更 | 原型 + 场景 + API/DB + 编排 + 代码 | 需求不变,实现方案调整 |
|
|
184
|
-
| 接口级变更 | API/DB + 编排 + 代码 | 设计不变,接口细节调整 |
|
|
185
|
-
|
|
|
221
|
+
| 需求级变更 | 全链路 + 部署影响分析 | 需求变了,所有下游都可能受影响 |
|
|
222
|
+
| 设计级变更 | 原型 + 场景 + API/DB + 编排 + 代码 + 部署影响分析 | 需求不变,实现方案调整 |
|
|
223
|
+
| 接口级变更 | API/DB + 编排 + 代码 + 部署影响分析 | 设计不变,接口细节调整 |
|
|
224
|
+
| 部署级变更 | 部署方案 + smoke 用例 + `[deploy]` 任务 | 发布平台、环境变量、迁移、回滚、健康检查变化 |
|
|
225
|
+
| 代码级修复 | 代码 + 重新验收 + 部署影响分析 | Bug 修复,不涉及设计变更时仍需判断是否需要重新部署 |
|
|
186
226
|
|
|
187
227
|
## Git 集成
|
|
188
228
|
|
|
@@ -199,9 +239,9 @@ AI 在以下三个节点自动提交(告知用户,无需确认):
|
|
|
199
239
|
|------|-------------------|---------|
|
|
200
240
|
| merge 完成后(Step 6) | `docs({slug}): merge spec deltas` | logos/resources/ 下的规格文档变更 |
|
|
201
241
|
| 代码实现完成后(Step 7) | `feat/fix({slug}): implement changes` | 业务代码 + 测试代码 |
|
|
202
|
-
| archive 完成后(Step
|
|
242
|
+
| archive 完成后(Step 11) | `chore({slug}): archive change proposal` | logos/changes/archive/ 归档文件 |
|
|
203
243
|
|
|
204
|
-
push 是独立的人类确认点(Step
|
|
244
|
+
push 是独立的人类确认点(Step 12),AI 必须等待用户明确授权后才执行。
|
|
205
245
|
|
|
206
246
|
## MERGE_PROMPT.md 文件规范
|
|
207
247
|
|
|
@@ -221,7 +261,7 @@ push 是独立的人类确认点(Step 10),AI 必须等待用户明确授
|
|
|
221
261
|
|
|
222
262
|
### 1. {delta-relative-path}
|
|
223
263
|
- Delta 文件:`logos/changes/{slug}/deltas/{category}/{relative-file}`
|
|
224
|
-
- 目标目录:`
|
|
264
|
+
- 目标目录:`{target-dir}/`
|
|
225
265
|
- 操作:读取 delta 中的 ADDED / MODIFIED / REMOVED 标记,合并到目标目录中对应的主文档
|
|
226
266
|
|
|
227
267
|
## 执行要求
|
|
@@ -235,7 +275,7 @@ push 是独立的人类确认点(Step 10),AI 必须等待用户明确授
|
|
|
235
275
|
8. 所有变更合并完成后,自动执行 git commit(告知用户,无需确认):
|
|
236
276
|
`git add -A && git commit -m "docs({slug}): merge spec deltas"`
|
|
237
277
|
9. 写入 `logos/changes/{slug}/SPEC_MERGED`
|
|
238
|
-
|
|
278
|
+
然后提示用户:按更新后的规格实现代码;代码完成后运行 `openlogos verify`;如有 `[deploy]` section,验收通过后由用户明确授权部署,再运行 `openlogos smoke`;最后明确授权执行 `openlogos archive {slug}`。
|
|
239
279
|
```
|
|
240
280
|
|
|
241
281
|
## CLI 命令
|
package/spec/cli-json-output.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 1. 概述
|
|
6
6
|
|
|
7
|
-
OpenLogos CLI 的 `status`、`next`、`verify`、`detect`
|
|
7
|
+
OpenLogos CLI 的 `status`、`next`、`verify`、`smoke`、`detect` 五类命令支持 `--format json` 参数,输出结构化 JSON 供外部工具(如 RunLogos)以编程方式消费。
|
|
8
8
|
|
|
9
9
|
### 1.1 通用约定
|
|
10
10
|
|
|
@@ -21,10 +21,10 @@ OpenLogos CLI 的 `status`、`next`、`verify`、`detect` 四个命令支持 `--
|
|
|
21
21
|
|
|
22
22
|
```jsonc
|
|
23
23
|
{
|
|
24
|
-
"command": "<command-name>", // "status" | "next" | "verify" | "detect" | "module list"
|
|
25
|
-
"version": "<cli-version>",
|
|
26
|
-
"timestamp": "<ISO-8601>",
|
|
27
|
-
"data": { ... }
|
|
24
|
+
"command": "<command-name>", // "status" | "next" | "verify" | "smoke" | "detect" | "module list"
|
|
25
|
+
"version": "<cli-version>",
|
|
26
|
+
"timestamp": "<ISO-8601>",
|
|
27
|
+
"data": { ... }
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -106,8 +106,29 @@ openlogos status --format json # JSON 格式
|
|
|
106
106
|
"done": false,
|
|
107
107
|
"skipped": false,
|
|
108
108
|
"files": []
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"key": "phase.3-3-deployment",
|
|
112
|
+
"label": "Phase 3-3 · 部署方案",
|
|
113
|
+
"done": true,
|
|
114
|
+
"skipped": false,
|
|
115
|
+
"files": ["core-01-deployment-plan.md"]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"key": "phase.3-7-deploy",
|
|
119
|
+
"label": "Phase 3-7 · 部署执行",
|
|
120
|
+
"done": false,
|
|
121
|
+
"skipped": false,
|
|
122
|
+
"files": []
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"key": "phase.3-8-smoke",
|
|
126
|
+
"label": "Phase 3-8 · 部署冒烟测试(smoke)",
|
|
127
|
+
"done": false,
|
|
128
|
+
"skipped": false,
|
|
129
|
+
"files": []
|
|
109
130
|
}
|
|
110
|
-
// ... 所有
|
|
131
|
+
// ... 所有 phase
|
|
111
132
|
],
|
|
112
133
|
"modules": [ // 模块注册表(来自 logos-project.yaml)
|
|
113
134
|
{
|
|
@@ -135,7 +156,7 @@ openlogos status --format json # JSON 格式
|
|
|
135
156
|
"phase_progress": null,
|
|
136
157
|
"active_change": { // 当前活跃变更提案
|
|
137
158
|
"slug": "add-refund",
|
|
138
|
-
"proposal_step": "delta-writing", //
|
|
159
|
+
"proposal_step": "delta-writing", // 见 proposal_step 枚举
|
|
139
160
|
"proposal_step_label": "撰写 Delta",
|
|
140
161
|
"has_proposal": true,
|
|
141
162
|
"has_tasks": true,
|
|
@@ -184,10 +205,10 @@ openlogos status --format json # JSON 格式
|
|
|
184
205
|
| `modules[].phase_progress` | object \| null | 是 | 各阶段进度 map(key = phase key);`launched` 模块为 null |
|
|
185
206
|
| `modules[].phase_progress[key].done` | boolean | 是 | 该阶段是否已完成 |
|
|
186
207
|
| `modules[].phase_progress[key].skipped` | boolean | 是 | 该阶段是否被跳过 |
|
|
187
|
-
| `modules[].phase_progress[key].scenario_coverage` | object \| undefined | 否 | 仅场景类阶段(`phase.3-1`、`phase.3-
|
|
208
|
+
| `modules[].phase_progress[key].scenario_coverage` | object \| undefined | 否 | 仅场景类阶段(`phase.3-1`、`phase.3-4a`)存在 |
|
|
188
209
|
| `modules[].active_change` | object \| null | 是 | 当前活跃变更提案;`initial` 模块或无活跃提案时为 null |
|
|
189
210
|
| `modules[].active_change.slug` | string | 是 | 提案 slug |
|
|
190
|
-
| `modules[].active_change.proposal_step` | string | 是 | 提案阶段:`"writing"` \| `"delta-writing"` \| `"ready-to-merge"` \| `"merge-generated"` \| `"coding"`;`"implementing"` / `"in-progress"` 为旧版本兼容值 |
|
|
211
|
+
| `modules[].active_change.proposal_step` | string | 是 | 提案阶段:`"writing"` \| `"delta-writing"` \| `"ready-to-merge"` \| `"merge-generated"` \| `"coding"` \| `"ready-to-verify"` \| `"verify-passed"` \| `"verify-failed"` \| `"ready-to-deploy"` \| `"deploy-done"` \| `"ready-to-smoke"` \| `"smoke-passed"` \| `"smoke-failed"`;`"implementing"` / `"in-progress"` 为旧版本兼容值 |
|
|
191
212
|
| `modules[].active_change.proposal_step_label` | string | 是 | 提案阶段本地化标签 |
|
|
192
213
|
| `modules[].active_change.has_proposal` | boolean | 是 | 是否存在 proposal.md |
|
|
193
214
|
| `modules[].active_change.has_tasks` | boolean | 是 | 是否存在 tasks.md |
|
|
@@ -306,7 +327,65 @@ openlogos verify --format json # JSON 格式
|
|
|
306
327
|
|
|
307
328
|
---
|
|
308
329
|
|
|
309
|
-
## 5.
|
|
330
|
+
## 5. `openlogos smoke --format json`
|
|
331
|
+
|
|
332
|
+
冒烟测试用于验收部署后的目标环境是否可用,不并入 `openlogos verify`。
|
|
333
|
+
|
|
334
|
+
### 5.1 用法
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
openlogos smoke # 人类可读格式
|
|
338
|
+
openlogos smoke --format json # JSON 格式
|
|
339
|
+
openlogos smoke --env staging
|
|
340
|
+
openlogos smoke --env production --format json
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### 5.2 JSON Schema(data 部分)
|
|
344
|
+
|
|
345
|
+
```jsonc
|
|
346
|
+
{
|
|
347
|
+
"environment": "staging", // smoke 目标环境;未指定时为 null
|
|
348
|
+
"summary": {
|
|
349
|
+
"defined_count": 5, // 定义的 smoke 用例数
|
|
350
|
+
"executed_count": 5, // 已执行 smoke 用例数
|
|
351
|
+
"passed_count": 5,
|
|
352
|
+
"failed_count": 0,
|
|
353
|
+
"skipped_count": 0,
|
|
354
|
+
"uncovered_count": 0,
|
|
355
|
+
"coverage_pct": 100,
|
|
356
|
+
"pass_rate_pct": 100
|
|
357
|
+
},
|
|
358
|
+
"gate": {
|
|
359
|
+
"result": "PASS", // "PASS" | "FAIL"
|
|
360
|
+
"reason": null // 失败原因分类
|
|
361
|
+
},
|
|
362
|
+
"failed_cases": [],
|
|
363
|
+
"uncovered_cases": [],
|
|
364
|
+
"skipped_cases": [],
|
|
365
|
+
"report_path": "logos/resources/verify/smoke-report.md",
|
|
366
|
+
"result_path": "logos/resources/verify/smoke-results.jsonl"
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### 5.3 字段说明
|
|
371
|
+
|
|
372
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
373
|
+
|------|------|------|------|
|
|
374
|
+
| `environment` | string \| null | 是 | 目标环境,由 `--env` 指定 |
|
|
375
|
+
| `summary.defined_count` | number | 是 | smoke 用例规格中定义的用例数 |
|
|
376
|
+
| `summary.executed_count` | number | 是 | smoke 结果中实际执行的用例数 |
|
|
377
|
+
| `gate.result` | string | 是 | `PASS` 或 `FAIL` |
|
|
378
|
+
| `gate.reason` | string \| null | 是 | 失败原因,如 `failed_cases` / `incomplete_coverage` |
|
|
379
|
+
| `failed_cases` | array | 是 | 失败 smoke 用例 |
|
|
380
|
+
| `uncovered_cases` | array | 是 | 未覆盖 smoke 用例 ID |
|
|
381
|
+
| `report_path` | string | 是 | smoke 报告路径 |
|
|
382
|
+
| `result_path` | string | 是 | smoke 结果路径 |
|
|
383
|
+
|
|
384
|
+
`openlogos smoke` 与 `openlogos verify` 共享 JSONL 结果思想,但读取的是 `smoke.result_path`,默认 `logos/resources/verify/smoke-results.jsonl`。冒烟测试用例建议存放在 `logos/resources/test/smoke/`。
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## 6. 错误处理
|
|
310
389
|
|
|
311
390
|
当命令因错误退出时(如项目未初始化、找不到文件等),JSON 模式下输出错误 JSON 到 **stderr** 并以非零退出码退出:
|
|
312
391
|
|
|
@@ -322,7 +401,7 @@ openlogos verify --format json # JSON 格式
|
|
|
322
401
|
}
|
|
323
402
|
```
|
|
324
403
|
|
|
325
|
-
###
|
|
404
|
+
### 6.1 错误码
|
|
326
405
|
|
|
327
406
|
| 错误码 | 说明 |
|
|
328
407
|
|--------|------|
|
|
@@ -332,18 +411,18 @@ openlogos verify --format json # JSON 格式
|
|
|
332
411
|
|
|
333
412
|
---
|
|
334
413
|
|
|
335
|
-
##
|
|
414
|
+
## 7. `openlogos module list --format json`
|
|
336
415
|
|
|
337
416
|
列出项目中注册的所有模块及其生命周期状态。
|
|
338
417
|
|
|
339
|
-
###
|
|
418
|
+
### 7.1 用法
|
|
340
419
|
|
|
341
420
|
```bash
|
|
342
421
|
openlogos module list # 人类可读格式
|
|
343
422
|
openlogos module list --format json # JSON 格式
|
|
344
423
|
```
|
|
345
424
|
|
|
346
|
-
###
|
|
425
|
+
### 7.2 JSON Schema(data 部分)
|
|
347
426
|
|
|
348
427
|
```jsonc
|
|
349
428
|
{
|
|
@@ -362,7 +441,7 @@ openlogos module list --format json # JSON 格式
|
|
|
362
441
|
}
|
|
363
442
|
```
|
|
364
443
|
|
|
365
|
-
###
|
|
444
|
+
### 7.3 字段说明
|
|
366
445
|
|
|
367
446
|
| 字段 | 类型 | 必填 | 说明 |
|
|
368
447
|
|------|------|------|------|
|
|
@@ -375,7 +454,7 @@ openlogos module list --format json # JSON 格式
|
|
|
375
454
|
|
|
376
455
|
---
|
|
377
456
|
|
|
378
|
-
##
|
|
457
|
+
## 8. 完整用法示例
|
|
379
458
|
|
|
380
459
|
```bash
|
|
381
460
|
# 获取项目状态(机器可读)
|
|
@@ -22,13 +22,15 @@ project-root/
|
|
|
22
22
|
│ │ │ │ └── 2-page-design/ # Phase 2: 页面设计 + HTML 原型
|
|
23
23
|
│ │ │ └── 3-technical-plan/
|
|
24
24
|
│ │ │ ├── 1-architecture/ # Phase 3: 架构与技术选型
|
|
25
|
-
│ │ │
|
|
25
|
+
│ │ │ ├── 2-scenario-implementation/ # Phase 3: 场景实现文档
|
|
26
|
+
│ │ │ └── 3-deployment/ # Phase 3: 部署方案 + 冒烟测试方案
|
|
26
27
|
│ │ ├── api/ # Phase 3: OpenAPI YAML
|
|
27
28
|
│ │ ├── database/ # Phase 3: SQL DDL
|
|
28
29
|
│ │ ├── test/ # Phase 3: 测试用例规格(Markdown)
|
|
30
|
+
│ │ │ └── smoke/ # Phase 3: 部署后冒烟测试用例(Markdown,可选)
|
|
29
31
|
│ │ ├── scenario/ # Phase 3: API 编排测试(JSON)
|
|
30
|
-
│ │ ├── implementation/ # Phase 3
|
|
31
|
-
│ │ └── verify/ # Phase 3:
|
|
32
|
+
│ │ ├── implementation/ # Phase 3: 代码实现清单(Markdown)
|
|
33
|
+
│ │ └── verify/ # Phase 3: 验收、部署、冒烟结果(JSONL + 报告)
|
|
32
34
|
│ │
|
|
33
35
|
│ └── changes/ # 变更提案工作区
|
|
34
36
|
│ ├── {change-name}/ # 进行中的变更提案
|
|
@@ -57,14 +59,16 @@ OpenLogos 方法论的统一入口。包含配置文件、研发资源文档和
|
|
|
57
59
|
| `prd/1-product-requirements/` | Phase 1: WHY | 需求文档、用户故事、竞品分析 |
|
|
58
60
|
| `prd/2-product-design/1-feature-specs/` | Phase 2: WHAT | 功能规格、信息架构、设计规范 |
|
|
59
61
|
| `prd/2-product-design/2-page-design/` | Phase 2: WHAT | 页面设计文档 + HTML 原型 |
|
|
60
|
-
| `prd/3-technical-plan/1-architecture/` | Phase 3: HOW |
|
|
62
|
+
| `prd/3-technical-plan/1-architecture/` | Phase 3: HOW | 整体架构、技术选型、部署约束 |
|
|
61
63
|
| `prd/3-technical-plan/2-scenario-implementation/` | Phase 3: HOW | 业务场景文档(时序图 + 步骤说明) |
|
|
64
|
+
| `prd/3-technical-plan/3-deployment/` | Phase 3: HOW | 部署方案、环境配置、回滚策略、冒烟测试方案 |
|
|
62
65
|
| `api/` | Phase 3: HOW | OpenAPI YAML 规格文件 |
|
|
63
66
|
| `database/` | Phase 3: HOW | SQL DDL 设计文件 |
|
|
64
67
|
| `test/` | Phase 3: HOW | 单元测试 + 场景测试用例规格(Markdown) |
|
|
68
|
+
| `test/smoke/` | Phase 3: HOW | 部署后冒烟测试用例规格(Markdown,仅需部署的项目) |
|
|
65
69
|
| `scenario/` | Phase 3: HOW | API 编排测试用例(JSON,仅 API 项目) |
|
|
66
|
-
| `implementation/` | Phase 3
|
|
67
|
-
| `verify/` | Phase 3: HOW |
|
|
70
|
+
| `implementation/` | Phase 3: HOW | 代码实现清单(Markdown),标记代码实现阶段完成 |
|
|
71
|
+
| `verify/` | Phase 3: HOW | 测试验收、部署执行、冒烟测试结果(JSONL + 报告) |
|
|
68
72
|
|
|
69
73
|
### logos/changes/
|
|
70
74
|
|
|
@@ -104,6 +108,21 @@ OpenLogos 方法论的统一入口。包含配置文件、研发资源文档和
|
|
|
104
108
|
- 使用 Markdown 格式,包含单元测试和场景测试的用例设计
|
|
105
109
|
- 每个文件对应一个场景编号,覆盖该场景的所有测试层级
|
|
106
110
|
|
|
111
|
+
### 部署方案文件
|
|
112
|
+
|
|
113
|
+
- 部署方案默认文件名:`core-01-deployment-plan.md`
|
|
114
|
+
- 命名格式:`<module>-{序号}-deployment-plan.md`
|
|
115
|
+
- 存放位置:`logos/resources/prd/3-technical-plan/3-deployment/`
|
|
116
|
+
- 内容至少包含:目标环境、部署拓扑、环境变量、构建命令、发布命令、数据迁移、回滚策略、部署后检查、冒烟测试方案
|
|
117
|
+
|
|
118
|
+
### 冒烟测试用例文件
|
|
119
|
+
|
|
120
|
+
- 冒烟测试用例默认文件名:`core-smoke-test-cases.md`
|
|
121
|
+
- 命名格式:`<module>-smoke-test-cases.md`
|
|
122
|
+
- 存放位置:`logos/resources/test/smoke/`
|
|
123
|
+
- 用例 ID 建议使用 `SMOKE-{module}-{序号}`,例如 `SMOKE-core-01`
|
|
124
|
+
- 冒烟测试只验证部署后的环境可用性,不替代 `UT-*` / `ST-*` 用例
|
|
125
|
+
|
|
107
126
|
### 场景文件
|
|
108
127
|
|
|
109
128
|
- 按场景分文件:`user-auth.json`、`payment-flow.json`
|
|
@@ -113,6 +132,9 @@ OpenLogos 方法论的统一入口。包含配置文件、研发资源文档和
|
|
|
113
132
|
|
|
114
133
|
- 测试结果:`test-results.jsonl`(JSONL 格式,每行一个用例结果)
|
|
115
134
|
- 验收报告:`acceptance-report.md`(由 `openlogos verify` 自动生成)
|
|
135
|
+
- 部署报告:`deployment-report.md`(部署执行完成后生成)
|
|
136
|
+
- 冒烟结果:`smoke-results.jsonl`(JSONL 格式,每行一个冒烟用例结果)
|
|
137
|
+
- 冒烟报告:`smoke-report.md`(由 `openlogos smoke` 自动生成)
|
|
116
138
|
- 详细格式定义见 [test-results.md](./test-results.md)
|
|
117
139
|
|
|
118
140
|
## 可选目录
|