@miniidealab/openlogos 0.9.23 → 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.
Files changed (55) hide show
  1. package/claude-plugin-template/.claude-plugin/plugin.json +1 -1
  2. package/dist/commands/init.d.ts +1 -1
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +59 -36
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/commands/launch.d.ts.map +1 -1
  7. package/dist/commands/launch.js +54 -0
  8. package/dist/commands/launch.js.map +1 -1
  9. package/dist/commands/merge.d.ts.map +1 -1
  10. package/dist/commands/merge.js +3 -1
  11. package/dist/commands/merge.js.map +1 -1
  12. package/dist/commands/next.d.ts.map +1 -1
  13. package/dist/commands/next.js +37 -63
  14. package/dist/commands/next.js.map +1 -1
  15. package/dist/commands/smoke.d.ts +30 -0
  16. package/dist/commands/smoke.d.ts.map +1 -0
  17. package/dist/commands/smoke.js +237 -0
  18. package/dist/commands/smoke.js.map +1 -0
  19. package/dist/commands/status.d.ts +20 -1
  20. package/dist/commands/status.d.ts.map +1 -1
  21. package/dist/commands/status.js +148 -25
  22. package/dist/commands/status.js.map +1 -1
  23. package/dist/commands/verify.d.ts.map +1 -1
  24. package/dist/commands/verify.js +32 -1
  25. package/dist/commands/verify.js.map +1 -1
  26. package/dist/i18n.d.ts +1 -1
  27. package/dist/i18n.d.ts.map +1 -1
  28. package/dist/i18n.js +85 -33
  29. package/dist/i18n.js.map +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +9 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/lib/sync-resource-index.d.ts.map +1 -1
  34. package/dist/lib/sync-resource-index.js +21 -2
  35. package/dist/lib/sync-resource-index.js.map +1 -1
  36. package/package.json +1 -1
  37. package/skills/architecture-designer/SKILL.md +27 -5
  38. package/skills/change-writer/SKILL.md +61 -11
  39. package/skills/code-implementor/SKILL.md +5 -5
  40. package/skills/code-reviewer/SKILL.md +1 -1
  41. package/skills/deployment-designer/SKILL.md +137 -0
  42. package/skills/deployment-executor/SKILL.md +133 -0
  43. package/skills/merge-executor/SKILL.md +17 -4
  44. package/skills/project-init/SKILL.md +42 -2
  45. package/skills/test-orchestrator/SKILL.md +6 -6
  46. package/skills/test-writer/SKILL.md +67 -8
  47. package/spec/agents-md.md +21 -9
  48. package/spec/change-management.md +60 -20
  49. package/spec/cli-json-output.md +95 -16
  50. package/spec/directory-convention.md +28 -6
  51. package/spec/logos-project.md +44 -1
  52. package/spec/logos.config.schema.json +32 -2
  53. package/spec/tasks-spec.md +47 -11
  54. package/spec/test-results.md +2 -2
  55. package/spec/workflow.md +115 -33
@@ -20,9 +20,10 @@
20
20
 
21
21
  1. 理解用户描述的变更意图
22
22
  2. 扫描 `logos/resources/` 中的现有文档,定位受影响范围
23
- 3. 根据变更传播规则判断变更类型(需求级 / 设计级 / 接口级 / 代码级)
24
- 4. 生成符合规范的 proposal.md
25
- 5. 按变更类型自动拆解 tasks.md
23
+ 3. 根据变更传播规则判断变更类型(需求级 / 设计级 / 接口级 / 部署级 / 代码级)
24
+ 4. 判断本次变更是否需要部署、是否需要数据迁移、是否需要 smoke 验证
25
+ 5. 生成符合规范的 proposal.md
26
+ 6. 按变更类型自动拆解 tasks.md
26
27
 
27
28
  ## 执行步骤
28
29
 
@@ -40,10 +41,11 @@
40
41
 
41
42
  1. 读取需求文档(`prd/1-product-requirements/`),检查相关场景定义
42
43
  2. 读取产品设计(`prd/2-product-design/`),检查相关功能规格和原型
43
- 3. 读取技术方案(`prd/3-technical-plan/`),检查相关时序图
44
+ 3. 读取技术方案(`prd/3-technical-plan/`),检查相关架构、时序图、部署方案
44
45
  4. 读取 API 文档(`api/`),检查相关端点
45
46
  5. 读取 DB 文档(`database/`),检查相关表结构
46
47
  6. 读取编排测试(`scenario/`),检查相关测试用例
48
+ 7. 读取 smoke 测试用例(`test/smoke/`),检查部署后冒烟覆盖是否需要更新
47
49
 
48
50
  ### Step 3: 判断变更类型
49
51
 
@@ -51,10 +53,11 @@
51
53
 
52
54
  | 变更类型 | 最少需要更新 |
53
55
  |---------|------------|
54
- | 需求级变更 | 全链路(需求 → 设计 → 架构 → API/DB → 编排 → 代码) |
55
- | 设计级变更 | 原型 + 场景 + API/DB + 编排 + 代码 |
56
- | 接口级变更 | API/DB + 编排 + 代码 |
57
- | 代码级修复 | 代码 + 重新验收 |
56
+ | 需求级变更 | 全链路(需求 → 设计 → 架构 → 部署 → API/DB → 测试 → 编排 → 代码) |
57
+ | 设计级变更 | 原型 + 场景 + API/DB + 测试/编排 + 代码 + 部署影响分析 |
58
+ | 接口级变更 | API/DB + 编排 + 代码 + 部署影响分析 |
59
+ | 部署级变更 | 部署方案 + smoke 用例 + `[deploy]` 任务 |
60
+ | 代码级修复 | 代码 + 重新验收 + 部署影响分析 |
58
61
 
59
62
  ### Step 4: 生成 proposal.md
60
63
 
@@ -67,15 +70,25 @@
67
70
  [为什么要做这个变更?来源于哪个需求/反馈/Bug?]
68
71
 
69
72
  ## 变更类型
70
- [需求级 / 设计级 / 接口级 / 代码级]
73
+ [需求级 / 设计级 / 接口级 / 部署级 / 代码级]
71
74
 
72
75
  ## 变更范围
73
76
  - 影响的需求文档:[列表,精确到文件名和章节]
74
77
  - 影响的功能规格:[列表]
75
78
  - 影响的业务场景:[场景编号列表]
79
+ - 影响的部署方案:[列表]
76
80
  - 影响的 API:[端点列表]
77
81
  - 影响的 DB 表:[表名列表]
78
82
  - 影响的编排测试:[列表]
83
+ - 影响的 smoke 测试:[列表]
84
+
85
+ ## 部署影响
86
+ - 是否需要部署:是 / 否
87
+ - 部署原因:[说明为什么需要或不需要部署]
88
+ - 影响环境:[本地 / 测试 / 预发 / 生产 / 无]
89
+ - 是否涉及数据迁移:是 / 否
90
+ - 是否需要回滚预案:是 / 否
91
+ - 是否需要 smoke:是 / 否
79
92
 
80
93
  ## 变更概述
81
94
  [用 1-3 段话概述具体改什么]
@@ -85,14 +98,35 @@
85
98
 
86
99
  根据变更类型和影响范围,使用结构化 section 格式生成任务清单。完整格式规范见 `spec/tasks-spec.md`。
87
100
 
88
- > **禁止在 tasks.md 中写入 verify / 验收 / 人工验证类条目**——这些属于 verify 步骤,不属于实现任务。`openlogos verify` 是独立的 CLI 操作节点,由面板的 verify 步骤触发;tasks.md 只追踪实现任务。
101
+ > **禁止在 tasks.md 中写入 verify / smoke / 人工验证类条目**——这些属于独立 CLI 操作节点。tasks.md 只追踪 delta、代码和部署执行任务。
89
102
 
90
103
  **格式规则**:
91
104
  - `## [delta] <描述>` section:只列 delta 文档产出任务,每条对应一个 delta 文件
92
105
  - `## [code] <描述>` section:只列代码实现任务,直接修改源文件,不产出 delta
93
- - 两个 section 均为可选:纯代码提案只有 `[code]`,纯规格提案只有 `[delta]`
106
+ - `## [deploy] <描述>` section:只列部署执行任务,只能在 verify PASS 后、人类明确确认后执行
107
+ - 不需要部署的提案不得创建 `[deploy]` section
108
+ - 需要部署的提案必须在 `[delta]` section 中包含部署方案和 smoke 用例变更(如受影响)
94
109
  - **严禁混用**:delta 任务不得写入 `[code]` section,代码任务不得写入 `[delta]` section
95
110
 
111
+ **需要部署的变更模板**:
112
+
113
+ ```markdown
114
+ # 实现任务
115
+
116
+ ## [delta] 规格变更
117
+ - [ ] 产出 delta 文件到 `deltas/prd/3-technical-plan/3-deployment/` — 更新部署方案
118
+ - [ ] 产出 delta 文件到 `deltas/test/smoke/` — 更新部署后冒烟测试用例
119
+
120
+ ## [code] 代码实现
121
+ - [ ] 实现 src/xxx 中的业务逻辑
122
+ - [ ] 编写对应测试
123
+ - [ ] 编写 smoke 测试代码或脚本
124
+
125
+ ## [deploy] 部署任务
126
+ - [ ] 按部署方案部署到 staging
127
+ - [ ] 确认迁移、配置、服务启动和回滚预案
128
+ ```
129
+
96
130
  **需求级 / 设计级变更模板**(有 delta + 有代码):
97
131
 
98
132
  ```markdown
@@ -152,9 +186,18 @@ Delta 文件写入 `logos/changes/<slug>/deltas/` 下对应子目录,与 `logo
152
186
  | `logos/resources/prd/2-product-design/2-page-design/` | `deltas/prd/2-product-design/2-page-design/` |
153
187
  | `logos/resources/prd/3-technical-plan/1-architecture/` | `deltas/prd/3-technical-plan/1-architecture/` |
154
188
  | `logos/resources/prd/3-technical-plan/2-scenario-implementation/` | `deltas/prd/3-technical-plan/2-scenario-implementation/` |
189
+ | `logos/resources/prd/3-technical-plan/3-deployment/` | `deltas/prd/3-technical-plan/3-deployment/` |
190
+ | `logos/resources/test/smoke/` | `deltas/test/smoke/` |
155
191
 
156
192
  代码实现(`src/`、`test/`)**不产出 delta**,直接修改源文件。
157
193
 
194
+ 部署相关行为规范:
195
+
196
+ - 需要部署时,必须产出部署方案 delta
197
+ - 需要部署且 smoke 覆盖受影响时,必须产出 smoke 测试用例 delta
198
+ - 不允许把部署执行命令写入 `[code]` section
199
+ - 不允许 AI 在 delta-writing 阶段执行部署命令
200
+
158
201
  #### 文件命名
159
202
 
160
203
  与目标主文档**同名**(含子目录层级)。例如:
@@ -204,6 +247,13 @@ Delta 文件写入 `logos/changes/<slug>/deltas/` 下对应子目录,与 `logo
204
247
  - 用户明确要求执行(包括使用 `/openlogos:merge`、`/openlogos:archive` slash command)时,AI 可以代为执行
205
248
  - 不得在"顺手完成流程"、"按流程走完"、"继续"等隐式场景中自动触发
206
249
 
250
+ merge 后的后续提示应按是否需要部署区分:
251
+
252
+ - **不需要部署**:实现代码 → `openlogos verify` → `openlogos archive`
253
+ - **需要部署**:实现代码 → `openlogos verify` → 用户明确授权部署 → `openlogos smoke` → `openlogos archive`
254
+
255
+ **部署执行、`openlogos smoke` 也是人类确认点**。AI 未经用户明确授权不得自动部署或自动运行 smoke。
256
+
207
257
  AI 只负责驱动内容修改,不得在未获明确授权的情况下推进提案状态。
208
258
 
209
259
  ## 输出规范
@@ -5,7 +5,7 @@
5
5
  ## 触发条件
6
6
 
7
7
  - 用户要求实现代码、生成代码或编写代码
8
- - 用户提到 "Phase 3 Step 4"、"代码生成"、"帮我实现 S01"
8
+ - 用户提到 "Phase 3 Step 5"、"代码生成"、"帮我实现 S01"
9
9
  - 测试用例设计已完成(`logos/resources/test/` 非空),需要开始编码
10
10
  - 用户指定某个场景编号(如 S01)需要实现
11
11
 
@@ -17,7 +17,7 @@
17
17
  - `logos/resources/test/` 中包含测试用例规格(**必需**)
18
18
  - `logos/logos-project.yaml` 中包含 `tech_stack`(**必需**)
19
19
 
20
- 如果时序图或测试用例目录为空,提示用户先完成 Phase 3 Step 1(scenario-architect)和 Step 3a(test-writer)。
20
+ 如果时序图或测试用例目录为空,提示用户先完成 Phase 3 Step 1(scenario-architect)和 Step 4a(test-writer)。
21
21
 
22
22
  ## 核心能力
23
23
 
@@ -33,9 +33,9 @@
33
33
 
34
34
  本 Skill 处于三者链条的中间位置:
35
35
 
36
- - **test-writer**(Step 3a):设计测试用例**规格文档**(Markdown),定义 UT/ST ID——是"出卷人"
37
- - **code-implementor**(Step 4,本 Skill):将所有规格转化为**可运行的业务代码和测试代码**——是"答卷人"
38
- - **code-reviewer**(Step 4 之后):拿着规格**审计已生成的业务代码**,输出审查报告——是"阅卷人"
36
+ - **test-writer**(Step 4a):设计测试用例**规格文档**(Markdown),定义 UT/ST ID——是"出卷人"
37
+ - **code-implementor**(Step 5,本 Skill):将所有规格转化为**可运行的业务代码和测试代码**——是"答卷人"
38
+ - **code-reviewer**(Step 5 之后):拿着规格**审计已生成的业务代码**,输出审查报告——是"阅卷人"
39
39
 
40
40
  test-writer 不写代码;code-implementor 不设计用例;code-reviewer 不修改代码。三者形成 **设计 → 执行 → 审查** 闭环。
41
41
 
@@ -5,7 +5,7 @@
5
5
  ## 触发条件
6
6
 
7
7
  - 用户要求审查代码或 Code Review
8
- - 用户提到 "Phase 3 Step 4"、"代码审核"、"代码审查"
8
+ - 用户提到 "Phase 3 Step 5"、"代码审核"、"代码审查"
9
9
  - AI 刚生成了一段代码,需要验证其质量
10
10
  - 部署前的最终检查
11
11
  - 编排测试失败后需要定位代码问题
@@ -0,0 +1,137 @@
1
+ # Skill: Deployment Designer
2
+
3
+ > 在代码实现前输出完整部署方案:部署拓扑、环境配置、发布命令、数据迁移、回滚策略和部署后冒烟测试方案。该 Skill 是 Phase 3 Step 3 的执行入口。
4
+
5
+ ## 触发条件
6
+
7
+ - 用户要求设计部署方案、发布方案或上线方案
8
+ - 用户提到 “Phase 3 Step 3”、“部署方案”、“deployment plan”
9
+ - API / DB 设计完成后,需要进入部署方案设计
10
+ - Initial 阶段准备进入测试设计前,`3-technical-plan/3-deployment/` 仍为空
11
+
12
+ ## 前置依赖
13
+
14
+ 1. `logos/resources/prd/3-technical-plan/1-architecture/` 中存在架构概要
15
+ 2. `logos/resources/prd/3-technical-plan/2-scenario-implementation/` 中存在场景实现文档
16
+ 3. API / DB 设计已完成,或对应模块在 `skip_phases` 中明确跳过
17
+ 4. `logos/logos-project.yaml` 可读
18
+
19
+ ## 核心能力
20
+
21
+ 1. 从架构、API、DB 和技术栈中推导部署目标
22
+ 2. 设计本地 / 测试 / 预发 / 生产环境部署拓扑
23
+ 3. 明确环境变量、密钥来源、构建命令和发布命令
24
+ 4. 定义数据迁移、初始化数据和回滚策略
25
+ 5. 设计部署后检查清单
26
+ 6. 设计 smoke 测试方案输入,供 `test-writer` 生成 `SMOKE-*` 用例
27
+ 7. 更新 `logos-project.yaml` 的部署门禁信息
28
+
29
+ ## 执行步骤
30
+
31
+ ### Step 1: 读取上下文
32
+
33
+ 必须读取:
34
+
35
+ - `logos/logos-project.yaml`
36
+ - 架构概要文档
37
+ - 场景实现文档
38
+ - API 规格(如存在)
39
+ - DB DDL(如存在)
40
+ - 现有部署方案(如存在)
41
+
42
+ 重点确认:
43
+
44
+ - 项目是否需要部署
45
+ - 目标环境有哪些
46
+ - 是否存在远程服务、生产环境、密钥、域名、证书或数据迁移
47
+ - smoke 需要覆盖哪些最小链路
48
+
49
+ ### Step 2: 判断部署门禁
50
+
51
+ 默认规则:
52
+
53
+ - 软件项目默认需要部署方案
54
+ - 有运行环境的项目默认需要部署执行和 smoke
55
+ - 纯文档、纯规范、无需运行环境的库项目可声明 `deployment_required: false`
56
+
57
+ 若用户选择无需部署,部署方案仍需写明原因和跳过条件。
58
+
59
+ ### Step 3: 输出部署方案
60
+
61
+ 默认文件:
62
+
63
+ `logos/resources/prd/3-technical-plan/3-deployment/core-01-deployment-plan.md`
64
+
65
+ 文档结构:
66
+
67
+ ```markdown
68
+ # core-01-deployment-plan
69
+
70
+ ## 一、部署目标
71
+
72
+ ## 二、部署拓扑
73
+
74
+ ## 三、环境变量与密钥
75
+
76
+ ## 四、构建与发布命令
77
+
78
+ ## 五、数据迁移策略
79
+
80
+ ## 六、回滚策略
81
+
82
+ ## 七、部署后检查清单
83
+
84
+ ## 八、冒烟测试方案
85
+
86
+ ## 九、门禁结论
87
+ ```
88
+
89
+ ### Step 4: 设计 smoke 输入
90
+
91
+ 在部署方案的“冒烟测试方案”中列出必须覆盖的 smoke 检查项:
92
+
93
+ - 健康检查
94
+ - 核心入口
95
+ - 数据库迁移
96
+ - 静态资源
97
+ - 配置与密钥
98
+ - 关键链路
99
+ - 日志与监控
100
+
101
+ 具体 `SMOKE-*` 用例由 `test-writer` 输出到 `logos/resources/test/smoke/`。
102
+
103
+ ### Step 5: 更新 logos-project.yaml
104
+
105
+ 如模块需要部署,建议写入:
106
+
107
+ ```yaml
108
+ deployment_gates:
109
+ core:
110
+ deployment_required: true
111
+ smoke_required: true
112
+ environments:
113
+ - staging
114
+ ```
115
+
116
+ 并将部署方案加入 `resource_index`。
117
+
118
+ ## 输出规范
119
+
120
+ - 部署方案:`logos/resources/prd/3-technical-plan/3-deployment/core-01-deployment-plan.md`
121
+ - 文档语言遵循项目 locale
122
+ - Mermaid 可用于部署拓扑图
123
+ - 不执行任何部署命令
124
+
125
+ ## 人类确认点
126
+
127
+ 本 Skill 只设计部署方案,不执行部署。部署执行必须等到:
128
+
129
+ 1. 代码实现完成
130
+ 2. `openlogos verify` 通过
131
+ 3. 用户明确授权部署
132
+
133
+ ## 推荐提示词
134
+
135
+ - `帮我设计部署方案`
136
+ - `按 Phase 3 Step 3 输出部署方案`
137
+ - `基于当前架构设计 staging 部署和 smoke 方案`
@@ -0,0 +1,133 @@
1
+ # Skill: Deployment Executor
2
+
3
+ > 在 `openlogos verify` 通过后,按已合并的部署方案执行经人类明确确认的部署任务,并引导运行 `openlogos smoke`。该 Skill 只在部署执行阶段使用。
4
+
5
+ ## 触发条件
6
+
7
+ - 用户明确要求执行部署
8
+ - 用户说“按部署方案部署”“执行当前提案的部署任务”“部署到 staging / production”
9
+ - 当前提案 `tasks.md` 存在 `[deploy]` section
10
+ - Initial 阶段 verify 通过后需要部署到目标环境
11
+
12
+ ## 前置依赖
13
+
14
+ 1. 用户明确授权部署
15
+ 2. `logos/resources/prd/3-technical-plan/3-deployment/` 中存在部署方案
16
+ 3. 当前提案已 `VERIFY_PASS`
17
+ 4. 当前提案 `tasks.md` 中存在 `[deploy]` section
18
+ 5. 部署所需命令、环境变量和回滚策略已在部署方案中声明
19
+
20
+ 如果任一条件不满足,停止并说明缺少哪一项。
21
+
22
+ ## 核心能力
23
+
24
+ 1. 读取部署方案和当前提案部署任务
25
+ 2. 将部署任务拆解为可执行步骤
26
+ 3. 在关键命令前说明目的、影响环境和回滚点
27
+ 4. 执行部署命令并记录结果
28
+ 5. 生成部署报告
29
+ 6. 写入部署完成标记
30
+ 7. 引导用户运行 `openlogos smoke`
31
+
32
+ ## 执行步骤
33
+
34
+ ### Step 1: 确认授权
35
+
36
+ 部署是人类确认点。必须看到用户明确表达,例如:
37
+
38
+ - `执行部署`
39
+ - `部署到 staging`
40
+ - `按部署方案部署`
41
+
42
+ 不能因为用户说“继续”“按流程走完”而自动部署。
43
+
44
+ ### Step 2: 读取部署上下文
45
+
46
+ 必须读取:
47
+
48
+ - `logos/resources/prd/3-technical-plan/3-deployment/*.md`
49
+ - 当前提案 `proposal.md`
50
+ - 当前提案 `tasks.md` 的 `[deploy]` section
51
+ - 已合并后的相关主规格
52
+
53
+ ### Step 3: 执行前检查
54
+
55
+ 检查:
56
+
57
+ - 当前是否 `VERIFY_PASS`
58
+ - 是否存在未完成代码任务
59
+ - 部署目标环境是否明确
60
+ - 回滚策略是否可执行
61
+ - 必要环境变量和密钥是否已由用户确认
62
+ - smoke 测试命令是否配置或已有替代说明
63
+
64
+ ### Step 4: 执行部署
65
+
66
+ 按部署方案逐项执行。
67
+
68
+ 每个关键命令前必须说明:
69
+
70
+ - 命令目的
71
+ - 影响环境
72
+ - 失败后的中止或回滚方式
73
+
74
+ 不得执行部署方案中没有定义的命令。
75
+
76
+ ### Step 5: 生成部署报告
77
+
78
+ 写入:
79
+
80
+ `logos/resources/verify/deployment-report.md`
81
+
82
+ 报告包含:
83
+
84
+ - 部署时间
85
+ - 目标环境
86
+ - 执行命令摘要
87
+ - 迁移结果
88
+ - 服务启动结果
89
+ - 回滚点
90
+ - 未解决风险
91
+
92
+ ### Step 6: 写入部署完成标记
93
+
94
+ 部署成功后:
95
+
96
+ - 勾选当前提案 `tasks.md` 中的 `[deploy]` 任务
97
+ - 写入 `logos/changes/<slug>/DEPLOY_DONE`
98
+
99
+ 部署失败时:
100
+
101
+ - 不得写入 `DEPLOY_DONE`
102
+ - 输出失败点和回滚建议
103
+ - 以 `logos/resources/verify/deployment-report.md` 记录失败摘要
104
+
105
+ ### Step 7: 引导 smoke
106
+
107
+ 部署完成后提示用户明确授权运行:
108
+
109
+ ```bash
110
+ openlogos smoke
111
+ ```
112
+
113
+ 如有目标环境:
114
+
115
+ ```bash
116
+ openlogos smoke --env staging
117
+ ```
118
+
119
+ AI 不得自动运行 `openlogos smoke`,除非用户明确授权。
120
+
121
+ ## 禁止行为
122
+
123
+ - 未经用户明确确认自动部署
124
+ - 跳过部署方案,凭经验执行命令
125
+ - 自动执行涉及生产、远程服务器、密钥、发布、域名或数据迁移的命令
126
+ - 部署失败后写入 `DEPLOY_DONE`
127
+ - 部署后直接 archive,跳过 `openlogos smoke`
128
+
129
+ ## 推荐提示词
130
+
131
+ - `按部署方案部署到 staging`
132
+ - `执行当前提案的部署任务`
133
+ - `部署完成后帮我准备 smoke 命令`
@@ -22,7 +22,7 @@
22
22
  3. 精准定位主文档中的对应章节并执行合并
23
23
  4. 保持主文档的格式和风格一致性
24
24
  5. 输出变更摘要
25
- 6. **等待人类确认后停止** — 合并完成后 AI 的职责即结束,不得主动执行 `openlogos archive`
25
+ 6. **等待人类确认后停止** — 合并完成后 AI 的职责即结束,不得主动执行 verify、部署、smoke archive
26
26
 
27
27
  ## 执行步骤
28
28
 
@@ -83,13 +83,25 @@ touch logos/changes/{slug}/SPEC_MERGED
83
83
  **Step 2:运行验收(代码实现完成后)**
84
84
  请在项目根目录运行:
85
85
  openlogos verify
86
- - 验收通过(PASS)→ 继续 Step 3 归档
86
+ - 验收通过(PASS)→ 无部署任务时可进入归档;有部署任务时进入 Step 3
87
87
  - 验收失败(FAIL)→ 修复代码后重新运行,无需重走 merge 流程
88
88
 
89
- **Step 3:归档提案(验收通过后)**
89
+ **Step 3:部署(仅当 tasks.md 存在 [deploy] section)**
90
+ 验收通过后,由用户明确授权 AI 按部署方案执行部署任务。
91
+
92
+ AI 必须读取:
93
+ - logos/resources/prd/3-technical-plan/3-deployment/
94
+ - 当前提案 tasks.md 的 [deploy] section
95
+
96
+ **Step 4:冒烟测试(仅当已部署)**
97
+ 部署完成后,由用户明确授权运行:
98
+ openlogos smoke
99
+
100
+ **Step 5:归档提案**
101
+ verify 通过且无部署任务,或部署完成且 smoke 通过后:
90
102
  openlogos archive <slug>
91
103
 
92
- openlogos verify 和 openlogos archive 均为人类确认点,AI 未经用户明确授权不得自行执行。
104
+ openlogos verify、部署执行、openlogos smoke 和 openlogos archive 均为人类确认点,AI 未经用户明确授权不得自行执行。
93
105
  ```
94
106
 
95
107
  ## 合并原则
@@ -104,6 +116,7 @@ openlogos verify 和 openlogos archive 均为人类确认点,AI 未经用户
104
116
  - 直接修改 `logos/resources/` 中的主文档(就地编辑)
105
117
  - 除写入 `logos/changes/<slug>/SPEC_MERGED` 外,不修改 `logos/changes/` 中的任何文件
106
118
  - 合并过程中不创建新文件(除非 delta 指定新增一个全新的文档)
119
+ - 合并部署 delta 时,只合并部署方案文档,不执行部署命令
107
120
 
108
121
  ## 实践经验
109
122
 
@@ -15,6 +15,7 @@
15
15
  3. 生成 `logos/logos-project.yaml` AI 协作索引
16
16
  4. 生成 `AGENTS.md` / `CLAUDE.md` AI 指令文件(根目录)
17
17
  5. 创建 `logos/changes/` 变更管理目录
18
+ 6. 创建部署方案与 smoke 测试所需目录
18
19
 
19
20
  ## 执行步骤
20
21
 
@@ -42,10 +43,15 @@ project-root/
42
43
  │ │ │ └── 2-page-design/
43
44
  │ │ └── 3-technical-plan/
44
45
  │ │ ├── 1-architecture/
45
- │ │ └── 2-scenario-implementation/
46
+ │ │ ├── 2-scenario-implementation/
47
+ │ │ └── 3-deployment/
46
48
  │ ├── api/
47
49
  │ ├── database/
48
- └── scenario/
50
+ ├── test/
51
+ │ │ └── smoke/
52
+ │ ├── scenario/
53
+ │ ├── implementation/
54
+ │ └── verify/
49
55
  └── changes/
50
56
  ```
51
57
 
@@ -66,6 +72,11 @@ project-root/
66
72
  "path": "./resources/api",
67
73
  "pattern": "**/*.{yaml,yml,json}"
68
74
  },
75
+ "test": {
76
+ "label": { "en": "Test Cases", "zh": "测试用例" },
77
+ "path": "./resources/test",
78
+ "pattern": "**/*.md"
79
+ },
69
80
  "scenario": {
70
81
  "label": { "en": "Scenarios", "zh": "业务场景" },
71
82
  "path": "./resources/scenario",
@@ -75,7 +86,24 @@ project-root/
75
86
  "label": { "en": "Database", "zh": "数据库" },
76
87
  "path": "./resources/database",
77
88
  "pattern": "**/*.sql"
89
+ },
90
+ "implementation": {
91
+ "label": { "en": "Implementation", "zh": "实现清单" },
92
+ "path": "./resources/implementation",
93
+ "pattern": "**/*.md"
94
+ },
95
+ "verify": {
96
+ "label": { "en": "Verify Reports", "zh": "验收报告" },
97
+ "path": "./resources/verify",
98
+ "pattern": "**/*.{jsonl,md}"
78
99
  }
100
+ },
101
+ "verify": {
102
+ "result_path": "logos/resources/verify/test-results.jsonl"
103
+ },
104
+ "smoke": {
105
+ "result_path": "logos/resources/verify/smoke-results.jsonl",
106
+ "report_path": "logos/resources/verify/smoke-report.md"
79
107
  }
80
108
  }
81
109
  ```
@@ -124,6 +152,8 @@ Read `logos/logos-project.yaml` first to understand the project resource index.
124
152
  3. All API designs must originate from scenario sequence diagrams
125
153
  4. All code changes must have corresponding API orchestration tests
126
154
  5. Use the Delta change workflow for iterations (see logos/changes/ directory)
155
+ 6. Deployment is a human confirmation point; AI must not deploy without explicit authorization
156
+ 7. If deployment is required, smoke tests must be designed and run via `openlogos smoke` after deployment
127
157
 
128
158
  ## Conventions
129
159
  {从 logos-project.yaml 的 conventions 提取}
@@ -131,6 +161,13 @@ Read `logos/logos-project.yaml` first to understand the project resource index.
131
161
 
132
162
  同时生成 `CLAUDE.md`,内容与 AGENTS.md 一致。
133
163
 
164
+ Phase 检测逻辑必须包含:
165
+
166
+ - API/DB 完成但 `3-technical-plan/3-deployment/` 为空 → Phase 3 Step 3(deployment-designer)
167
+ - 部署方案存在但 `logos/resources/test/` 为空 → Phase 3 Step 4a(test-writer)
168
+ - verify 通过但部署未完成 → Phase 3 Step 7(deployment-executor,人类确认点)
169
+ - 部署完成但 smoke 未通过 → Phase 3 Step 8(openlogos smoke,人类确认点)
170
+
134
171
  ### Step 6: 输出初始化报告
135
172
 
136
173
  向用户报告创建了哪些文件和目录,并给出下一步建议:
@@ -145,6 +182,9 @@ Read `logos/logos-project.yaml` first to understand the project resource index.
145
182
  - `logos/logos-project.yaml`:有效的 YAML
146
183
  - `AGENTS.md` / `CLAUDE.md`:Markdown 格式,位于项目根目录
147
184
  - `logos/` 下所有目录已创建,空目录包含 `.gitkeep`
185
+ - 必须创建 `logos/resources/prd/3-technical-plan/3-deployment/`
186
+ - 必须创建 `logos/resources/test/smoke/`
187
+ - 必须创建 `logos/resources/verify/`
148
188
 
149
189
  ## 实践经验
150
190
 
@@ -1,23 +1,23 @@
1
1
  # Skill: Test Orchestrator
2
2
 
3
- > 基于业务场景和时序图设计 **API 编排测试**用例(Phase 3 Step 3b),覆盖正常/异常/边界场景,自动识别外部依赖并应用测试策略,作为端到端 API 验收标准。**仅适用于涉及 API 的项目。**
3
+ > 基于业务场景和时序图设计 **API 编排测试**用例(Phase 3 Step 4b),覆盖正常/异常/边界场景,自动识别外部依赖并应用测试策略,作为端到端 API 验收标准。**仅适用于涉及 API 的项目。**
4
4
 
5
5
  ## 与 test-writer 的关系
6
6
 
7
- 本 Skill 负责测试金字塔的**顶层**——API 编排测试(HTTP 请求级别),执行于 Phase 3 Step 3b
7
+ 本 Skill 负责测试金字塔的**顶层**——API 编排测试(HTTP 请求级别),执行于 Phase 3 Step 4b
8
8
 
9
- 底层的单元测试和场景测试(函数调用级别)由 `test-writer` Skill 在 Step 3a 完成。Step 3a 是所有项目的必选步骤,Step 3b(本 Skill)仅在项目涉及 API 时执行。
9
+ 底层的单元测试和场景测试(函数调用级别)由 `test-writer` Skill 在 Step 4a 完成。Step 4a 是所有项目的必选步骤,Step 4b(本 Skill)仅在项目涉及 API 时执行。
10
10
 
11
11
  ## 触发条件
12
12
 
13
13
  - 用户要求设计 API 编排测试
14
- - 用户提到 "Phase 3 Step 3b"、"API 编排"、"编排测试"
15
- - Step 3a(test-writer)完成后,AI 引导用户继续进入 Step 3b
14
+ - 用户提到 "Phase 3 Step 4b"、"API 编排"、"编排测试"
15
+ - Step 4a(test-writer)完成后,AI 引导用户继续进入 Step 4b
16
16
  - 用户需要验收已部署的 API 代码
17
17
 
18
18
  ## 前置依赖
19
19
 
20
- - `logos/resources/test/` 中包含测试用例规格文档(Step 3a 已完成)
20
+ - `logos/resources/test/` 中包含测试用例规格文档(Step 4a 已完成)
21
21
  - `logos/resources/prd/3-technical-plan/2-scenario-implementation/` 中包含场景时序图
22
22
  - `logos/resources/api/` 中包含 API 规格(OpenAPI YAML)
23
23
  - `logos-project.yaml` 中包含 `external_dependencies`(如有)