@modus-ai/modus 0.1.7 → 0.2.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.
package/README.md CHANGED
@@ -42,7 +42,7 @@ modus init # CLI 初始化,生成框架文件和配置
42
42
  |------|------|-----------|
43
43
  | `/modus:init` | 扫描项目,生成业务/团队/技术三层知识库 + 知识目录 | `.codebuddy/skills/` + `modus/knowledge-catalog.md` |
44
44
  | `/modus:vibe` | 氛围编程,渐进式加载业务上下文后直接编码 | 直接修改代码,无新增文件 |
45
- | `/modus:plan` | 功能规划,复杂度自动分级,含 ADR 决策记录和 pitfall 风险提示 | `modus/plans/{name}/` |
45
+ | `/modus:plan` | 功能规划,两层知识检索 + 3 问澄清 + 单一 plan.md + Build 确认执行 | `modus/plans/{name}/plan.md` |
46
46
  | `/modus:spec` | 规范开发,delta specs + GIVEN/WHEN/THEN 验收,含可选 verify + 冲突检测 | `modus/changes/{name}/`,归档合并到 `modus/specs/` |
47
47
  | `/modus:auto` | 智能模式推荐:读 TAPD Story,四维评分,推荐 vibe/plan/spec/harness | 启动所选模式后按该模式产出 |
48
48
  | `/modus:harness` | 全自动双 Loop 多智能体流程,8 个 SubAgent 协作,含知识沉淀闭环 | `modus/plans/active/{story-id}/` |
@@ -138,7 +138,7 @@ your-project/
138
138
  ├── config.yaml ← 项目宪法
139
139
  ├── knowledge-catalog.md ← 全景索引(~200 tokens)
140
140
  ├── specs/{domain}/spec.md ← 主规格库(/spec 归档后)
141
- ├── plans/{name}/ ← /plan 活跃目录
141
+ ├── plans/{name}/plan.md ← /plan 唯一规划文档(含 .modus-state.yaml)
142
142
  ├── plans/active/{story-id}/ ← /harness 产出物
143
143
  ├── plans/archive/ ← /plan 归档
144
144
  └── changes/ ← /spec 产出物及归档
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modus-ai/modus",
3
- "version": "0.1.7",
3
+ "version": "0.2.1",
4
4
  "description": "Modus — Business-grounded AI coding accelerator for CodeBuddy IDE",
5
5
  "keywords": [
6
6
  "ai",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: modus-design-brief
3
- description: 在代码开发前生成结构化的设计方案(design-brief),将需求分析信息转化为 LLM 可直接消费的实现指南。由 modus-plan、modus-spec 内部调用(落盘为 design-brief.md),或由 modus-vibe 内联调用(注入上下文,不落盘)。触发条件:plan/spec/vibe Skill 内部 Step 5.5 调用,或用户直接运行 @modus-design-brief。
3
+ description: 在代码开发前生成结构化的设计方案(design-brief),将需求分析信息转化为 LLM 可直接消费的实现指南。由 modus-plan、modus-spec 内部调用(落盘为 design-brief.md),或由 modus-vibe 内联调用(注入上下文,不落盘)。触发条件:plan/spec/vibe Skill 内部 Step 6 调用,或用户直接运行 @modus-design-brief。
4
4
  allowed-tools: Read, Write, Glob, Bash
5
5
  disable: false
6
6
  ---
@@ -305,7 +305,7 @@ public enum {EnumName} {
305
305
 
306
306
  ### plan / spec 模式调用方式
307
307
 
308
- 在 Step 5.5 中,直接调用本 Skill,传入以下参数:
308
+ 在 Step 6 中,直接调用本 Skill,传入以下参数:
309
309
  ```
310
310
  output_path: modus/plans/{name}/design-brief.md # plan 模式
311
311
  output_path: modus/changes/{name}/design-brief.md # spec 模式
@@ -85,7 +85,7 @@ B. 强制继续(无业务上下文,风险较高)
85
85
  - 创建工作目录:`modus/plans/active/{story-id}/`
86
86
  - 扫描目录,若存在部分产出物(含 HANDOFF 块),从断点处继续
87
87
 
88
- ### Step 0.5:澄清意图(仅全新流程)⏸️ 【人工交互节点】
88
+ ### Step 1:澄清意图(仅全新流程)⏸️ 【人工交互节点】
89
89
 
90
90
  读取 TAPD Story 内容后,在启动 SubAgent 01 之前,先确认关键信息:
91
91
 
@@ -115,7 +115,7 @@ B. 强制继续(无业务上下文,风险较高)
115
115
  启动 Harness 流程...
116
116
  ```
117
117
 
118
- ### Step 1:INIT——知识注入
118
+ ### Step 2:INIT——知识注入
119
119
 
120
120
  **Level 1 → Level 2 加载:**
121
121
  基于用户确认的业务域,调用 SubAgent 00(模式 B:增量更新):
@@ -261,4 +261,4 @@ feat: {业务摘要}
261
261
  5. Gate 失败 → 按规则处理(重入/上报)
262
262
  6. 输出本轮进度卡片
263
263
  7. 若 SubAgent 07 完成 → 触发 ARCHIVE 知识提取(SubAgent 00 模式 D)
264
- 8. 等待 SubAgent 写入产出物,重复 Step 1
264
+ 8. 等待 SubAgent 写入产出物,重复 Step 2
@@ -21,9 +21,9 @@ disable: false
21
21
 
22
22
  读取 `modus/config.yaml`(若存在),提取 `constitution` 字段中的硬性约束,作为整个初始化过程的最高优先级约束。
23
23
 
24
- 若 `modus/config.yaml` 不存在,将在 Step 5 创建默认配置。
24
+ 若 `modus/config.yaml` 不存在,将在 Step 7 创建默认配置。
25
25
 
26
- ### Step 0.5:扫描已有 AI 工具配置
26
+ ### Step 1:扫描已有 AI 工具配置
27
27
 
28
28
  在扫描业务代码之前,先读取项目中已有的 AI 工具配置文件,将存量规则、上下文和 MCP 配置融入 Modus 知识库,避免重复发明轮子。
29
29
 
@@ -55,11 +55,11 @@ disable: false
55
55
 
56
56
  2. **技术栈信息**(`techStack` 字段)
57
57
  - 从 `CLAUDE.md` 中寻找构建命令、框架名称等技术栈线索
58
- - 与代码文件检测结果合并,用于 Step 5 的技术知识 Skill
58
+ - 与代码文件检测结果合并,用于 Step 7 的技术知识 Skill
59
59
 
60
60
  3. **编码规范 / 团队约定**(→ `modus-team-conventions` Skill)
61
61
  - 将各工具中找到的约定规则(命名规范、禁止模式、最佳实践等)汇总
62
- - 在 Step 4 生成团队约定 Skill 时,把这些规则作为**基础输入**,标注来源(如 `[来源: .cursor/rules/naming.mdc]`)
62
+ - 在 Step 6 生成团队约定 Skill 时,把这些规则作为**基础输入**,标注来源(如 `[来源: .cursor/rules/naming.mdc]`)
63
63
  - 避免重复:如果规则已在其他 Skill 中描述,仅添加引用
64
64
 
65
65
  4. **MCP 服务器配置**(→ `modus/config.yaml` `mcpServers` 字段)
@@ -88,11 +88,11 @@ disable: false
88
88
  继续?[Y/n]
89
89
  ```
90
90
 
91
- 若用户确认,继续 Step 1;若无任何已有配置,直接进入 Step 1
91
+ 若用户确认,继续 Step 2;若无任何已有配置,直接进入 Step 2
92
92
 
93
93
  ---
94
94
 
95
- ### Step 1:项目扫描与业务分类
95
+ ### Step 2:项目扫描与业务分类
96
96
 
97
97
  启动一个「项目分析 SubAgent」,执行以下操作:
98
98
 
@@ -120,7 +120,7 @@ disable: false
120
120
  是否确认以上分类?(可以修改/新增/删除)
121
121
  ```
122
122
 
123
- ### Step 2:用户确认
123
+ ### Step 3:用户确认
124
124
 
125
125
  等待用户确认或修改业务域列表。用户可以:
126
126
  - 直接回复「确认」继续
@@ -128,7 +128,7 @@ disable: false
128
128
  - 增加遗漏的业务域
129
129
  - 删除不需要的域
130
130
 
131
- ### Step 3:生成业务 Skill(Layer 2)—— 并行执行
131
+ ### Step 4:生成业务 Skill(Layer 2)—— 并行执行
132
132
 
133
133
  用户确认后,**同时**为每个业务域启动独立的「Skills Builder SubAgent」(`modus-harness-00-skills-builder` Skill,模式 A),并行生成所有业务 Skill 文件。各域之间完全独立,无需等待彼此完成。
134
134
 
@@ -145,11 +145,11 @@ SubAgent-3 (user域) ──► 扫描用户相关文件 ──► 生成 modu
145
145
  │ │
146
146
  └──────────────── 所有 SubAgent 完成 ──────────┘
147
147
 
148
- 进入 Step 4(串行)
148
+ 进入 Step 6(串行)
149
149
  ```
150
150
 
151
151
  **每个 SubAgent 的任务(模式 A 标准流程):**
152
- 1. 接收域名称 + 代表性文件路径列表(来自 Step 1 的分析结果)
152
+ 1. 接收域名称 + 代表性文件路径列表(来自 Step 2 的分析结果)
153
153
  2. 深度扫描该域的 Service/Manager/Mapper/Domain/Entity 层文件
154
154
  3. 提取:核心实体、业务规则、API 契约、关键代码模式
155
155
  4. 生成标准格式的 Skill 文件(含 `key_files`、`maturity: draft`)
@@ -164,7 +164,7 @@ SubAgent-3 (user域) ──► 扫描用户相关文件 ──► 生成 modu
164
164
 
165
165
  每个 Skill 文件遵循 Business Skill 标准格式(含 maturity/last_referenced/usage_count 字段)。
166
166
 
167
- ### Step 3.5:多平台同步(Business Skills)
167
+ ### Step 5:多平台同步(Business Skills)
168
168
 
169
169
  Business Skills 全部生成后,读取 `modus/config.yaml` 的 `platforms` 字段,将每个业务 Skill 同步到其他已选平台。
170
170
 
@@ -234,13 +234,13 @@ alwaysApply: false
234
234
 
235
235
  ---
236
236
 
237
- ### Step 4:生成团队约定 Skill(Layer 0-T)
237
+ ### Step 6:生成团队约定 Skill(Layer 0-T)
238
238
 
239
239
  调用「Skills Builder SubAgent」(模式 E:团队约定初始化):
240
240
 
241
241
  从以下来源提取团队规范(**按优先级排列**):
242
242
 
243
- 1. **Step 0.5 扫描结果**(最高优先级)
243
+ 1. **Step 1 扫描结果**(最高优先级)
244
244
  - 从 `CLAUDE.md` / `AGENTS.md` / `.cursor/rules/` / `.codebuddy/rules/` 提取的编码规范
245
245
  - 每条规则注明来源,例如:`[来源: .cursor/rules/naming.mdc]`
246
246
  - 若同一规则在多个工具中重复,合并为一条并列出所有来源
@@ -253,26 +253,26 @@ alwaysApply: false
253
253
 
254
254
  生成文件:`.codebuddy/skills/modus-team-conventions/SKILL.md`
255
255
 
256
- **注意:** 若 Step 0.5 中已有来自其他工具的规则,在 Skill 文件开头添加来源声明:
256
+ **注意:** 若 Step 1 中已有来自其他工具的规则,在 Skill 文件开头添加来源声明:
257
257
  ```markdown
258
258
  > 本 Skill 融合了以下 AI 工具的已有配置:Claude Code (CLAUDE.md)、Cursor (.cursor/rules/)
259
259
  > 原始文件保持不变,Modus 仅在此处做统一索引。
260
260
  ```
261
261
 
262
- ### Step 5:生成技术知识 Skill(Layer 1)
262
+ ### Step 7:生成技术知识 Skill(Layer 1)
263
263
 
264
264
  调用「Skills Builder SubAgent」(模式 E:技术知识初始化),初始化技术知识骨架:
265
265
 
266
266
  生成文件:`.codebuddy/skills/modus-tech-wiki/SKILL.md`
267
267
 
268
268
  初始内容来源(按优先级):
269
- 1. **Step 0.5 扫描结果中的技术信息**
269
+ 1. **Step 1 扫描结果中的技术信息**
270
270
  - `CLAUDE.md` 中记录的构建命令、测试命令(如 `mvn test`、`npm run test`)
271
271
  - `.continue/config.json` 中的模型/上下文提供者配置
272
272
  2. 从构建文件提取的技术栈(`pom.xml` → Spring Boot 版本、`package.json` → 框架版本等)
273
273
  3. 占位符章节(反模式库、架构决策、跨项目经验——待后续工作流积累)
274
274
 
275
- ### Step 6:生成知识全景目录(knowledge-catalog.md)
275
+ ### Step 8:生成知识全景目录(knowledge-catalog.md)
276
276
 
277
277
  在 `modus/knowledge-catalog.md` 创建全景索引,内容如下:
278
278
 
@@ -300,7 +300,7 @@ updated: {YYYY-MM-DD}
300
300
  衰减规则:proven 12 个月未引用 → verified;verified 6 个月未引用 → draft(标注 ⚠️ 可能已过时)
301
301
  ```
302
302
 
303
- ### Step 7:初始化 modus/config.yaml(若不存在)
303
+ ### Step 9:初始化 modus/config.yaml(若不存在)
304
304
 
305
305
  若项目尚无 `modus/config.yaml`,生成默认配置:
306
306
 
@@ -327,7 +327,7 @@ constitution:
327
327
 
328
328
  提示用户填写 `constitution` 字段,以便后续命令无需重复说明项目约束。
329
329
 
330
- ### Step 8:完成回报
330
+ ### Step 10:完成回报
331
331
 
332
332
  所有业务 Skill 生成完毕后,回复用户:
333
333
 
@@ -383,7 +383,7 @@ constitution:
383
383
 
384
384
  ---
385
385
 
386
- ### Step 3 补充:生成 Business Skill 时必须填写 key_files
386
+ ### Step 4 补充:生成 Business Skill 时必须填写 key_files
387
387
 
388
388
  在生成每个业务 Skill(`.codebuddy/skills/modus-biz-{domain}/SKILL.md`)时,**必须**在 frontmatter 中填写 `key_files` 字段:
389
389
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: modus-plan
3
- description: Use this skill when executing /modus:plan command to generate structured planning documents (proposal, design, tasks) backed by up-to-date business Skills. Trigger on /modus:plan command or when user wants to plan a feature with full business context. Supports --quick flag to skip design.md. Auto-routes to simple/medium/complex depth based on complexity assessment.
3
+ description: Use this skill when executing /modus:plan command to generate a single structured plan.md backed by up-to-date business Skills. Trigger on /modus:plan command or when user wants to plan a feature with full business context. Loads Skill domains first, falls back to platform rules + source scan, then asks exactly 3 targeted questions before generating the plan. Ends with a Build confirmation loop where user can iterate on plan.md before executing code generation.
4
4
  allowed-tools: Read, Write, Glob, Bash
5
5
  disable: false
6
6
  ---
@@ -9,19 +9,9 @@ disable: false
9
9
 
10
10
  **触发条件:** 用户运行 `/modus:plan [需求描述]` 时使用此 Skill。
11
11
 
12
- 支持快速模式:`/modus:plan --quick [描述]` 跳过 design.md 和 design-brief.md,仅生成 proposal + tasks。
13
-
14
12
  ## 职责
15
13
 
16
- 功能规划入口。通过**三级渐进加载**获取业务上下文(前置更新),先评估需求复杂度自动分级(simple/medium/complex),再基于最新知识生成结构化的 proposal/design/tasks 文档(proposal 自动融入 Skill pitfall 生成已知风险章节),归档后将本次规划中的新知识回写到 Skill(后置更新),并将状态写入 `.modus-state.yaml` 支持断点续跑。
17
-
18
- ### 复杂度分级与产出物对应
19
-
20
- | 级别 | 判定标准 | 产出物 | 自动建议 |
21
- |------|----------|--------|---------|
22
- | Simple | 单域、≤3 文件变更、无架构变化、bug fix 类 | proposal + tasks | 自动建议 `--quick` |
23
- | Medium | 1-2 个域、有新接口但无架构变化、≤5 文件 | proposal + design + tasks | 完整模式 |
24
- | Complex | 跨 3+ 域 / 新增数据表 / 引入新中间件 / 重构 | proposal + design + design-brief + tasks | 完整模式(提示考虑 /spec) |
14
+ 功能规划入口。通过**两层知识检索**获取业务上下文,先评估需求复杂度自动分级(simple/medium/complex),再基于加载的知识向用户提出恰好 3 个精准澄清问题,最终生成单一 `plan.md` 规划文档。文档生成后进入 Build 确认循环,用户可反复修改直至满意后触发代码执行,并将本次规划中的新知识回写到 Skill(后置更新)。
25
15
 
26
16
  ---
27
17
 
@@ -45,11 +35,19 @@ disable: false
45
35
  - 若用户选择继续,跳到对应的未完成步骤
46
36
  - 若是全新流程,正常从 Step 1 开始
47
37
 
38
+ ---
39
+
48
40
  ### Step 1:Level 1 加载——读知识目录(~200 tokens)
49
41
 
50
42
  读取 `modus/knowledge-catalog.md`,了解当前可用 Skill 及其状态。
51
43
 
52
- 若不存在,与 vibe 模式相同的降级提示(建议先运行 /modus:init)。
44
+ 若不存在,输出降级提示:
45
+ ```
46
+ ⚠️ 未找到 modus/knowledge-catalog.md,建议先运行 /modus:init 初始化知识库。
47
+ 将使用平台规则文件和源码扫描作为替代知识来源继续执行。
48
+ ```
49
+
50
+ ---
53
51
 
54
52
  ### Step 2:域匹配与确认(有则更新,无则新增)
55
53
 
@@ -65,9 +63,11 @@ disable: false
65
63
  确认?
66
64
  ```
67
65
 
68
- ### Step 2.5:复杂度评估与自动分级
66
+ ---
67
+
68
+ ### Step 3:复杂度评估与自动分级
69
69
 
70
- 域确认后,在澄清之前,快速评估需求复杂度并输出分级建议:
70
+ 域确认后,快速评估需求复杂度并输出分级建议:
71
71
 
72
72
  **评估维度:**
73
73
 
@@ -94,18 +94,13 @@ disable: false
94
94
  ✓ 预估 3-5 个文件变更
95
95
  ✓ 无新数据表,无新中间件
96
96
  ⚠ 有接口契约变更(影响复杂度)
97
-
98
- 建议文档深度:
99
- {Simple → 建议使用 --quick 模式(proposal + tasks)}
100
- {Medium → 完整模式(proposal + design + tasks)}
101
- {Complex → 完整模式 + design-brief,或考虑升级为 /modus:spec}
102
97
  ```
103
98
 
104
99
  **复杂度为 Complex 时的特别提示:**
105
100
 
106
101
  ```
107
102
  ⚠️ 此需求复杂度较高,建议考虑以下方案:
108
- A. 继续使用 /modus:plan(完整模式,含 design-brief)
103
+ A. 继续使用 /modus:plan(生成 plan.md,含方案对比和任务清单)
109
104
  B. 升级为 /modus:spec(可获得 delta specs 和 GIVEN/WHEN/THEN 验收标准)
110
105
  C. 拆分需求后分别 /modus:plan
111
106
 
@@ -114,56 +109,21 @@ disable: false
114
109
 
115
110
  若用户选择 B,退出当前 plan 流程,以相同 prompt 启动 `/modus:spec`。
116
111
 
117
- **快速模式自动建议:** 若判定为 Simple 且用户未传 `--quick`,询问:
118
- ```
119
- 需求较简单,是否使用快速模式(跳过 design.md,仅生成 proposal + tasks)?[y/N]
120
- ```
121
-
122
- ### Step 3:澄清用户意图(AskUserQuestion)
123
-
124
- 确认域后,在正式启动规划前,提出 1-3 个关键澄清问题:
125
-
126
- **提问原则:**
127
- - 聚焦影响规划方向的不确定点(范围、优先级、约束条件)
128
- - 若 prompt 已足够具体,可跳过此步
129
- - 从 Skill 中已有的 `[pitfall]` 和 `[decision]` 检查是否存在相关风险点
130
-
131
- **示例问题类型:**
132
- ```
133
- 为了生成准确的规划文档,我需要确认:
134
-
135
- 1. [范围] 这次改动是否涉及 {相邻域},还是严格限定在 {domain} 域内?
136
- 2. [优先级] 功能上线有时间限制吗?影响 Sprint 拆分方式。
137
- 3. [兼容性] {已有接口/数据结构} 是否可以修改,还是需要向后兼容?
138
- 4. [规模] 预期数据量级是多少?影响技术方案选型。
139
- 5. [风险] ⚠️ Skill 中记录了已知坑:{pitfall},是否已考虑到?
140
- ```
141
-
142
- 等待用户回答后,输出意图摘要:
143
-
144
- ```
145
- 理解已确认:
146
- - 目标: {一句话概括}
147
- - 边界: {在范围内 / 不在范围内}
148
- - 约束: {技术/业务约束}
149
- - 项目硬性规则: {来自 constitution 的关键规则}
150
-
151
- 开始前置更新 Skill,然后生成规划文档。
152
- ```
112
+ ---
153
113
 
154
- ### Step 4:前置 Skill 更新(Level 2 加载,含 hash 检查)
114
+ ### Step 4Skill 业务域加载(Level 2,含 hash 检查)
155
115
 
156
- 确认域和意图后,对每个涉及的业务域执行以下流程(**先 hash 检查,再决定是否全量更新**):
116
+ 域确认后,对每个涉及的业务域执行以下流程(**先 hash 检查,再决定是否全量更新**):
157
117
 
158
- #### Step 4a:读取 Skill frontmatter(轻量操作,仅读前 20 行)
118
+ #### 4-1:读取 Skill frontmatter(轻量操作,仅读前 20 行)
159
119
 
160
120
  读取 `.codebuddy/skills/modus-biz-{domain}/SKILL.md` 的 YAML frontmatter,提取:
161
121
  - `last_hash`:上次记录的 key_files 内容摘要
162
122
  - `key_files`:关键源文件列表
163
123
 
164
- 若 Skill 不存在,跳到 Step 4d(新建)。
124
+ 若 Skill 不存在,跳到 4-4(新建)。
165
125
 
166
- #### Step 4b:计算当前 key_files 的 hash
126
+ #### 4-2:计算当前 key_files 的 hash
167
127
 
168
128
  使用 Bash 对 `key_files` 列出的文件内容做 SHA-1 摘要:
169
129
 
@@ -175,7 +135,7 @@ shasum -a 1 {file1} {file2} ... | awk '{print $1}' | sort | shasum -a 1 | awk '{
175
135
  - 若某个 `key_files` 中的文件不存在(可能已被重命名/删除),视为「已变化」,强制更新
176
136
  - 若 `key_files` 为空或缺失,视为「已变化」,强制更新
177
137
 
178
- #### Step 4c:对比 hash,决定是否跳过
138
+ #### 4-3:对比 hash,决定是否跳过
179
139
 
180
140
  ```
181
141
  当前 hash == last_hash(且 last_hash 非空)
@@ -184,10 +144,10 @@ shasum -a 1 {file1} {file2} ... | awk '{print $1}' | sort | shasum -a 1 | awk '{
184
144
  → 继续 Step 5
185
145
 
186
146
  当前 hash != last_hash OR last_hash 为空
187
- → 进入 Step 4d 执行完整更新
147
+ → 进入 4-4 执行完整更新
188
148
  ```
189
149
 
190
- #### Step 4d:完整前置更新(仅在 hash 不匹配时执行)
150
+ #### 4-4:完整前置更新(仅在 hash 不匹配时执行)
191
151
 
192
152
  启动「Skill 更新 SubAgent」(`modus-harness-00-skills-builder` 模式 B),执行:
193
153
 
@@ -196,7 +156,7 @@ shasum -a 1 {file1} {file2} ... | awk '{print $1}' | sort | shasum -a 1 | awk '{
196
156
  3. 对比 Skill 内容与代码现实,识别差异
197
157
  4. 更新 Skill 文件中过时的信息,更新 `last_referenced`、`usage_count` 和 `last_hash`
198
158
 
199
- **输出变更摘要 block(透明度关键):**
159
+ **输出变更摘要 block:**
200
160
 
201
161
  ```
202
162
  ✓ modus-biz-order Skill 已更新
@@ -212,188 +172,194 @@ shasum -a 1 {file1} {file2} ... | awk '{print $1}' | sort | shasum -a 1 | awk '{
212
172
 
213
173
  若有未初始化的域,调用模式 A 新建 Skill(`last_hash` 留空,`key_files` 由 AI 填写)。
214
174
 
215
- ### Step 5:生成计划文档
175
+ **若所有域均已初始化且 Skill 加载成功,直接进入 Step 6,跳过 Step 5。**
216
176
 
217
- 基于更新后的 Skill 和已澄清的意图,生成文档到 `modus/plans/{name}/`。
177
+ ---
218
178
 
219
- **写入状态文件:**
220
- 创建 `modus/plans/{name}/.modus-state.yaml`:
221
- ```yaml
222
- mode: plan
223
- name: {name}
224
- status: in-progress
225
- complexity: medium # simple | medium | complex(来自 Step 2.5 评估)
226
- quick_mode: false # --quick flag 或 simple 复杂度时用户选择跳过 design
227
- domains: [{domain1}, {domain2}]
228
- completed: []
229
- pending: [proposal, design, design-brief, tasks] # quick_mode 时 pending 仅含 proposal + tasks
230
- created: {ISO8601时间戳}
231
- ```
179
+ ### Step 5:平台知识兜底扫描(仅在 Step 4 无命中时执行)
232
180
 
233
- **确定 plan 名称:**
234
- - 从用户 prompt 提取关键词,生成 kebab-case 名称(如 `add-batch-approve`)
235
- - 如果目录已存在,提示用户确认
181
+ `knowledge-catalog.md` 不存在,或当前需求涉及的域全部未初始化时,切换到平台知识扫描模式:
182
+
183
+ **按已启用平台依次扫描规则文件:**
184
+
185
+ | 平台 | 扫描路径 |
186
+ |------|---------|
187
+ | CodeBuddy | `.codebuddy/skills/*/SKILL.md` |
188
+ | Claude | `CLAUDE.md` + `.claude/agents/*.md` |
189
+ | Cursor | `.cursor/rules/*.mdc` |
190
+ | Copilot | `.github/copilot-instructions.md` |
236
191
 
237
- **快速模式(`--quick`)产出物:** proposal.md + tasks.md(跳过 design.md 和 design-brief.md)
192
+ 扫描完规则文件后,通过 Glob/Read 检索与用户需求关键词相关的源码文件(最多 5 个),提取架构约束与已有模式。
238
193
 
239
- **产出物依赖(完整模式):**
194
+ **输出兜底加载摘要:**
240
195
 
241
196
  ```
242
- proposal.md ─────────────┐
243
-
244
- design.md ────────────► design-brief.md ────────────► tasks.md
197
+ ⚠️ 未找到已初始化的业务 Skill,已切换到平台知识扫描模式
198
+ 已读取: .cursor/rules/modus-biz-order.mdc(Cursor 规则)
199
+ 已读取: CLAUDE.md(项目约定)
200
+ 已扫描: OrderService.java、OrderMapper.java(相关源码,共 2 个文件)
201
+ 建议后续运行 /modus:init 正式初始化该业务域 Skill
245
202
  ```
246
203
 
247
- **1. proposal.md** — 意图与范围
204
+ ---
248
205
 
249
- ```markdown
250
- # Proposal: {功能名称}
206
+ ### Step 6:精准 3 问(AskUserQuestion)
251
207
 
252
- ## 意图
253
- {为什么做,业务价值}
208
+ 基于 Step 4 或 Step 5 已加载的知识内容,向用户提出**恰好 3 个**澄清问题。
254
209
 
255
- ## 范围
256
- 在范围内:
257
- - {具体事项}
258
- 不在范围内:
259
- - {明确排除}
210
+ **生成规则(按优先级排序,必须输出恰好 3 个):**
260
211
 
261
- ## 关键约束(来自项目宪法)
262
- - {constitution.hard_rules 中与本次相关的规则}
212
+ 1. **P1 — Skill pitfall 关联问题**(最高优先级)
213
+ 若加载内容中有与当前需求相关的 `[pitfall]`,必问。
214
+ 示例:`Skill 中记录了「并发创建订单需加分布式锁」的坑,本次改动是否涉及并发写入场景?`
215
+ 若有多个相关 pitfall,选取与本次需求匹配度最高的 1 个。
263
216
 
264
- ## 已知风险 ⚠️
265
- <!-- 自动从相关业务 Skill 的 [pitfall] 标签中提取,并结合本次改动范围筛选 -->
266
- - [pitfall | 来源: modus-biz-order] {具体风险描述,如:并发创建订单时需加分布式锁}
267
- - [pitfall | 来源: modus-team-conventions] {具体风险描述,如:@Transactional 内部调用不生效}
268
- <!-- 若相关 Skill 中无 [pitfall] 记录,此章节留空或注明"暂无已知风险" -->
217
+ 2. **P2 — 范围/边界问题**
218
+ 影响规划深度的不确定点(跨域边界、兼容性要求、数据量级)。
219
+ 示例:`这次改动是否需要向后兼容旧的导出格式,还是可以直接替换?`
220
+
221
+ 3. **P3 优先级/约束问题**
222
+ 时间窗口、技术选型偏好、外部依赖。
223
+ 示例:`功能是否有明确的上线时间节点?这会影响 Sprint 拆分方式。`
224
+
225
+ **若 pitfall 不存在**,P1 改为「核心目标澄清」:本次改动的最高优先级目标是什么?
269
226
 
270
- ## 影响分析
271
- 涉及文件变更(预估):
272
- - {文件路径} — {新增/修改/删除,一句话说明变更目的}
227
+ 等待用户回答后,输出意图确认摘要:
273
228
 
274
- ## 方案概述
275
- {技术路径的高层描述}
276
229
  ```
230
+ 理解已确认:
231
+ - 目标: {一句话概括}
232
+ - 边界: {在范围内 / 不在范围内}
233
+ - 约束: {技术/业务约束}
234
+ - 项目硬性规则: {来自 constitution 的关键规则}
277
235
 
278
- **已知风险章节的生成规则:**
279
- 1. 从 Step 4 已加载的业务 Skill 内容中,提取所有 `[pitfall]` 标签条目
280
- 2. 结合本次改动范围(涉及的域、预估的文件变更),筛选与当前功能相关的 pitfall
281
- 3. 每条 pitfall 注明来源 Skill(`来源: modus-biz-{domain}` 或 `来源: modus-team-conventions`)
282
- 4. 若无相关 pitfall,写 `暂无已知风险(相关 Skill 中未记录 pitfall)`,而非省略章节
236
+ 开始生成 plan.md。
237
+ ```
283
238
 
284
- **2. design.md** — 技术方案
239
+ ---
285
240
 
286
- ```markdown
287
- # Design: {功能名称}
241
+ ### Step 7:生成 plan.md
288
242
 
289
- ## 技术方案
290
- {详细实现路径,引用具体的类/方法/接口}
243
+ 基于已加载的知识和用户确认的意图,生成单一规划文档到 `modus/plans/{name}/plan.md`。
291
244
 
292
- ## 架构决策记录(ADR)[decision]
293
- <!-- 每个有技术选型的决策点独立记录,后续可沉淀到 modus-tech-wiki -->
245
+ **确定 plan 名称:**
246
+ - 从用户 prompt 提取关键词,生成 kebab-case 名称(如 `add-batch-approve`)
247
+ - 如果目录已存在,提示用户确认
294
248
 
295
- ### ADR-01: {决策点标题,如"选择异步 MQ 而非同步 RPC"}
249
+ **写入状态文件:**
250
+ 创建 `modus/plans/{name}/.modus-state.yaml`:
251
+ ```yaml
252
+ mode: plan
253
+ name: {name}
254
+ status: in-progress
255
+ complexity: medium # simple | medium | complex(来自 Step 3 评估)
256
+ domains: [{domain1}, {domain2}]
257
+ completed: []
258
+ pending: [plan]
259
+ created: {ISO8601时间戳}
260
+ ```
296
261
 
297
- | 字段 | 内容 |
298
- |------|------|
299
- | 状态 | 已采纳 / 被否决 / 待评估 |
300
- | 背景 | {为什么需要做这个决策,2-3 句话} |
301
- | 选项 | A. {方案A} / B. {方案B} / C. {方案C} |
302
- | 决策 | 选择方案 {X} |
303
- | 原因 | {选择理由,包括技术/业务/成本考量} |
304
- | 放弃理由 | 方案 {Y}:{为什么不选,如:实时性要求高不适合 MQ} |
305
- | 影响 | {此决策对系统的长期影响,如:引入 MQ 后需维护消费者幂等性} |
262
+ **plan.md 内容结构(对齐 Cursor CreatePlan 风格):**
306
263
 
307
- <!-- 若有多个决策点,继续添加 ADR-02, ADR-03... -->
264
+ ```markdown
265
+ # Plan: {功能名称}
308
266
 
309
- ## 数据流
310
- {文字或 mermaid 图}
267
+ ## 概述
268
+ {1-2 句话,说明做什么、为什么做,以及核心业务价值}
311
269
 
312
- ## 涉及文件变更
313
- - {文件路径} — {新增/修改/删除,一句话说明变更目的}
314
- ```
270
+ ## 关键约束(来自项目宪法)
271
+ - {constitution.hard_rules 中与本次相关的规则}
272
+ <!-- 若无相关规则,写「以通用团队约定为准」 -->
315
273
 
316
- **ADR 使用规则:**
317
- - 每个有选型空间的技术决策都应记录一个 ADR
318
- - 若 Skill 中有 `[decision]` 标签记录了类似决策,在 ADR 背景中引用:`(参考 modus-biz-order 的历史决策:...)`
319
- - 后置 Skill 更新时,每个 ADR 条目将自动提取为 `[decision]` 写入 `modus-tech-wiki`
274
+ ## 已知风险 ⚠️
275
+ <!-- 自动从相关业务 Skill 的 [pitfall] 标签中提取,结合本次改动范围筛选 -->
276
+ - [pitfall | 来源: modus-biz-order] {具体风险描述,如:并发创建订单时需加分布式锁}
277
+ - [pitfall | 来源: modus-team-conventions] {具体风险描述,如:@Transactional 内部调用不生效}
278
+ <!-- 若无相关 pitfall,写「暂无已知风险(相关 Skill 中未记录 pitfall)」 -->
320
279
 
321
- **3. design-brief.md** — 设计方案(代码开发前的精确实现指南)
280
+ ## 方案选项对比
281
+ - 方案 A(推荐):{简述实现路径} — 优:{优点};劣:{劣点或适用前提}
282
+ - 方案 B:{简述替代路径} — 优:{优点};劣:{劣点或排除理由}
283
+ <!-- 若只有一种可行方案,写「仅一种可行方案,原因:{说明}」 -->
322
284
 
323
- 调用 `modus-design-brief` Skill,传入:
324
- - `mode: plan`
325
- - `output_path: modus/plans/{name}/design-brief.md`
326
- - `analysis_doc: proposal.md 内容`
327
- - `business_skills: 已加载的 Skill 内容`
328
- - `constitution: constitution 字段`
285
+ ## 实现 Todos
286
+ - [ ] 1. 数据层:{具体任务,如「新增 order_export 表,含 status/created_by 字段」}
287
+ - [ ] 2. 服务层:{具体任务}
288
+ - [ ] 3. 接口层:{具体任务}
289
+ - [ ] 4. 测试:单元测试 + 接口联调
329
290
 
330
- 生成后更新 `.modus-state.yaml` 的 `completed` 列表(追加 `design-brief`),并在 `pending` 中移除。
291
+ ## 影响文件(预估)
292
+ - `{文件路径}` — {新增/修改/删除,一句话说明变更目的}
293
+ ```
331
294
 
332
- **4. tasks.md** — 实现清单
295
+ **已知风险生成规则:**
296
+ 1. 从 Step 4/5 已加载内容中,提取所有 `[pitfall]` 标签条目
297
+ 2. 结合本次改动范围筛选相关条目,每条注明来源 Skill
298
+ 3. 若无相关 pitfall,明确写出而非省略章节
333
299
 
334
- ```markdown
335
- # Tasks: {功能名称}
300
+ 生成完成后更新 `.modus-state.yaml` 的 `completed` 列表(追加 `plan`)并从 `pending` 中移除。
336
301
 
337
- ## 1. 数据层
338
- - [ ] 1.1 {具体任务}
302
+ ---
339
303
 
340
- ## 2. 服务层
341
- - [ ] 2.1 {具体任务}
304
+ ### Step 8:Build 确认循环 ⏸️ 【人工审批节点】
342
305
 
343
- ## 3. 接口层
344
- - [ ] 3.1 {具体任务}
306
+ plan.md 生成后,展示结果并进入确认循环:
345
307
 
346
- ## 4. 测试
347
- - [ ] 4.1 单元测试
348
- - [ ] 4.2 接口联调
349
308
  ```
309
+ ✅ plan.md 已就绪:modus/plans/{name}/plan.md
350
310
 
351
- 生成每份文档后更新 `.modus-state.yaml` 的 `completed` 列表。
352
-
353
- ### Step 6:询问归档 ⏸️ 【人工审批节点】
311
+ ──────────────────────────────────────────
312
+ 你可以:
313
+ [修改] 直接说出修改意见,我会更新 plan.md,更新后再次展示
314
+ [Build] 确认方案,开始按 plan.md 中的 Todos 生成代码
315
+ [归档] 仅保存文档,暂不执行代码生成
354
316
 
317
+ 等待你的指令。
355
318
  ```
356
- 计划文档已生成:
357
- modus/plans/{name}/proposal.md
358
- modus/plans/{name}/design.md
359
- modus/plans/{name}/design-brief.md
360
- modus/plans/{name}/tasks.md
361
319
 
362
- 状态文件:modus/plans/{name}/.modus-state.yaml
320
+ ⏸️ **等待人工确认**
363
321
 
364
- 是否归档?归档后文档将移动到 modus/plans/archive/{YYYY-MM-DD}-{name}/
365
- (归档前可以继续编辑文档)
366
- ```
322
+ **循环逻辑:**
323
+ - 用户提出修改意见 → 更新 `plan.md` → 重新输出上述确认提示(循环,无次数限制)
324
+ - 用户回复「Build」/「开始」/「执行」→ 退出循环,以 `plan.md` 中的 Todos 为输入,启动 `/modus:vibe` 执行代码生成
325
+ - 用户回复「归档」/「稍后」→ 走归档流程,不启动代码生成
367
326
 
368
- ⏸️ **等待人工确认**(支持异步:可以在任意时间、任意设备上回复)
327
+ **Build 触发后:**
328
+ ```
329
+ 🚀 开始执行 plan.md 中的 Todos,启动 /modus:vibe...
330
+ 读取: modus/plans/{name}/plan.md
331
+ 执行范围: {Todos 列表}
332
+ ```
369
333
 
370
- 用户确认归档后:
371
- 1. 将目录移动到 `modus/plans/archive/{date}-{name}/`
334
+ **归档流程(用户选择归档时):**
335
+ 1. 将目录移动到 `modus/plans/archive/{YYYY-MM-DD}-{name}/`
372
336
  2. 更新 `.modus-state.yaml`:`status: archived`
373
- 3. 回复:`✓ 已归档到 modus/plans/archive/{date}-{name}/`
337
+ 3. 输出:`✓ 已归档到 modus/plans/archive/{YYYY-MM-DD}-{name}/,可随时运行 /modus:vibe 参考此文档开始编码`
338
+
339
+ ---
374
340
 
375
- ### Step 7:后置 Skill 更新(知识回写)
341
+ ### Step 9:后置 Skill 更新(知识回写)
376
342
 
377
- 归档完成后(或用户选择不归档但完成了规划),执行后置 Skill 更新(模式 C):
343
+ 无论用户选择 Build 还是归档,规划阶段完成后即执行后置知识回写(模式 C):
378
344
 
379
- 1. 从本次生成的 design.md 中提取所有 ADR 条目:
380
- - 每个 ADR → `[decision]` 写入 `modus-tech-wiki`(跨项目决策)或对应业务 Skill(域特有决策)
381
- - ADR 中的「影响」字段若包含风险点 → 同时写为 `[pitfall]`
382
- 2. 从 proposal.md 的「已知风险」章节中提取任何**本次新发现的**风险(非来自现有 Skill 的已有记录):
345
+ 1. `plan.md` 的「方案选项对比」中提取技术决策:
346
+ - 每个有选型依据的决策 → `[decision]` 写入 `modus-tech-wiki`(跨项目)或对应业务 Skill(域特有)
347
+ 2. 从「已知风险」章节中提取**本次新发现的**风险(非来自现有 Skill 的已有记录):
383
348
  - 新发现的风险 → `[pitfall]` 追加到对应业务 Skill
384
- 3. tasks.md 中提取具体的编码模式或约束 → `[guideline]`
349
+ 3. 从「实现 Todos」中提取具体的编码模式或约束 → `[guideline]`
385
350
  4. 更新 `modus/knowledge-catalog.md` 的 `last_referenced` 和 maturity
386
351
  5. 输出更新摘要:
387
352
  ```
388
353
  📚 知识已回写到 Skill:
389
- - [decision] tech-wiki:批量审批走 MQ 异步(ADR-01)
390
- - [decision] tech-wiki:Redis 分布式锁 key 格式规范(ADR-02)
354
+ - [decision] tech-wiki:批量审批走 MQ 异步
391
355
  - [guideline] order 域:批量操作上限 50 条,防止内存溢出
392
- - [pitfall] order 域:MQ 消费者需保证幂等性(来自 ADR-01 影响分析)
356
+ - [pitfall] order 域:MQ 消费者需保证幂等性
393
357
  maturity 变化: modus-biz-order draft→verified
394
358
  ```
395
359
 
396
- ### Step 7.5:多平台 Skill 同步(后置)
360
+ ---
361
+
362
+ ### Step 10:多平台 Skill 同步(后置)
397
363
 
398
364
  知识回写完成后,对所有本次**更新或新建**的业务 Skill 执行多平台同步。
399
365
 
@@ -401,6 +367,7 @@ design.md ────────────► design-brief.md ────
401
367
 
402
368
  1. 读取 `modus/config.yaml` 的 `platforms` 字段
403
369
  2. 对受影响的每个业务域(Step 4 前置更新 / 新建的域),按以下规则同步:
370
+ - **CodeBuddy** → 源文件即 `.codebuddy/skills/modus-biz-{domain}/SKILL.md`(已更新,无需额外操作)
404
371
  - **Claude** → 写入 `.claude/agents/modus-biz-{domain}.md`(覆盖旧版本)
405
372
  - **Cursor** → 写入 `.cursor/rules/modus-biz-{domain}.mdc`(带 frontmatter,覆盖旧版本)
406
373
  - **Copilot** → 在 `.github/copilot-instructions.md` 中替换对应域的标记段落
@@ -424,15 +391,9 @@ modus/
424
391
  ├── plans/
425
392
  │ ├── add-batch-approve/ ← 活跃计划(未归档)
426
393
  │ │ ├── .modus-state.yaml ← 状态文件(断点续跑用)
427
- │ │ ├── proposal.md
428
- │ │ ├── design.md
429
- │ │ ├── design-brief.md ← 设计方案(代码开发前的实现指南)
430
- │ │ └── tasks.md
394
+ │ │ └── plan.md ← 唯一规划文档(概述/风险/方案对比/Todos/影响文件)
431
395
  │ └── archive/
432
396
  │ └── 2026-04-20-add-batch-approve/
433
397
  │ ├── .modus-state.yaml ← status: archived
434
- ├── proposal.md
435
- │ ├── design.md
436
- │ ├── design-brief.md
437
- │ └── tasks.md
398
+ └── plan.md
438
399
  ```
@@ -90,7 +90,7 @@ disable: false
90
90
  开始前置更新 Skill,然后生成规范文档。
91
91
  ```
92
92
 
93
- ### Step 4:前置 Skill 更新(Level 2 加载,含 hash 检查,同 /modus:plan Step 4
93
+ ### Step 4:前置 Skill 更新(Level 2 加载,含 hash 检查,同 /modus:plan Step 5
94
94
 
95
95
  对每个涉及的业务域执行以下流程(**先 hash 检查,再决定是否全量更新**):
96
96
 
@@ -254,7 +254,7 @@ proposal.md
254
254
 
255
255
  生成每份文档后更新 `.modus-state.yaml` 的 `completed` 列表和 `scenarios_covered`。
256
256
 
257
- ### Step 5.5:可选实现验证(verify)
257
+ ### Step 6:可选实现验证(verify)
258
258
 
259
259
  文档生成后,询问用户是否执行实现验证(适用于代码已开发完成、准备归档前的场景):
260
260
 
@@ -320,7 +320,7 @@ git diff --name-only HEAD~3 | grep -E 'Test\.java|Spec\.java|test.*\.py'
320
320
 
321
321
  验证不阻断归档,但警告需用户显式确认后方可继续。
322
322
 
323
- ### Step 6:规格冲突检测 + 询问归档 ⏸️ 【人工审批节点】
323
+ ### Step 7:规格冲突检测 + 询问归档 ⏸️ 【人工审批节点】
324
324
 
325
325
  **归档前冲突检测(自动执行):**
326
326
 
@@ -352,7 +352,7 @@ grep -l "### Requirement:" modus/specs/{domain}/spec.md 2>/dev/null
352
352
  modus/changes/{name}/tasks.md
353
353
  modus/changes/{name}/.modus-state.yaml
354
354
 
355
- 实现验证: {passed_with_warnings / passed / skipped} [Step 5.5 结果]
355
+ 实现验证: {passed_with_warnings / passed / skipped} [Step 6 结果]
356
356
  冲突检测: {通过 / N 项需确认}
357
357
 
358
358
  是否归档?归档后:
@@ -371,7 +371,7 @@ grep -l "### Requirement:" modus/specs/{domain}/spec.md 2>/dev/null
371
371
 
372
372
  归档完成后更新 `.modus-state.yaml`:`status: archived`。
373
373
 
374
- ### Step 7:后置 Skill 更新(知识提取与回写)
374
+ ### Step 8:后置 Skill 更新(知识提取与回写)
375
375
 
376
376
  归档完成后,调用 `modus-harness-00-skills-builder` 模式 C,从 delta specs 中系统性提取知识:
377
377
 
@@ -390,7 +390,7 @@ grep -l "### Requirement:" modus/specs/{domain}/spec.md 2>/dev/null
390
390
  - knowledge-catalog.md 已更新(order 域 maturity: draft→verified)
391
391
  ```
392
392
 
393
- ### Step 7.5:多平台 Skill 同步(后置)
393
+ ### Step 9:多平台 Skill 同步(后置)
394
394
 
395
395
  知识提取与回写完成后,对本次涉及的业务域执行多平台同步。
396
396
 
@@ -124,7 +124,7 @@ B. 继续使用降级模式(无业务上下文,结果质量可能降低)
124
124
  如果理解无误,我来开始实现。
125
125
  ```
126
126
 
127
- ### Step 5.5:内联设计思考(Design Brief CoT)
127
+ ### Step 6:内联设计思考(Design Brief CoT)
128
128
 
129
129
  **触发:** 每次编码任务前强制执行,不可跳过(包括 `--quick` 模式)。
130
130
  **产出:** 内联于当前 LLM 上下文,**不写入任何文件**。
@@ -183,18 +183,18 @@ API: {Facade/Controller 类/方法}
183
183
  - 节 9 追踪矩阵在 vibe 模式下用「需求点→实现→校验方式」代替完整 Sprint 映射
184
184
  - 若 `--quick` 模式,节 3/4/9 可简化为一行摘要,但节 8 禁止事项必须完整输出
185
185
 
186
- ### Step 6:执行编码任务(Level 3 按需加载)
186
+ ### Step 7:执行编码任务(Level 3 按需加载)
187
187
 
188
- 基于 Step 5.5 内联设计方案和澄清后的意图,执行用户的编码请求:
188
+ 基于 Step 6 内联设计方案和澄清后的意图,执行用户的编码请求:
189
189
 
190
- - 以 Step 5.5 内联设计方案中节 5(实现蓝图)为编码路线图
190
+ - 以 Step 6 内联设计方案中节 5(实现蓝图)为编码路线图
191
191
  - 严格遵守节 8(禁止事项)——这是 constitution hard_rules 和 Skill [pitfall] 的汇总
192
192
  - 引用节 7(代码生成提示)中的现有类路径,不凭空创造类名
193
193
  - **Level 3 加载:** 需要具体代码实现时,按需读取 Skill 中 `关键文件索引` 指向的实际代码文件(而非预先全量读取)
194
194
  - 对不确定的业务规则,优先参考 Skill 中的规则描述
195
195
  - 如发现 Skill 中记录有误或过时,在回复末尾标注「Skill 更新建议」
196
196
 
197
- ### Step 7(可选):Skill 更新建议
197
+ ### Step 8(可选):Skill 更新建议
198
198
 
199
199
  如果在编码过程中发现业务 Skill 有遗漏或错误,在回复末尾追加:
200
200
 
@@ -204,7 +204,7 @@ API: {Facade/Controller 类/方法}
204
204
  - [pitfall] order 域:批量操作时若不分页会导致内存溢出
205
205
  ```
206
206
 
207
- ### Step 8:写入 Session 日志
207
+ ### Step 9:写入 Session 日志
208
208
 
209
209
  编码完成后,将本次会话**追加**(append-only,禁止覆盖原有内容)到 `modus/sessions/vibe-log.md`:
210
210
 
@@ -224,7 +224,7 @@ API: {Facade/Controller 类/方法}
224
224
 
225
225
  ## 氛围编程原则
226
226
 
227
- - **先设计再编码**:Step 5.5 内联设计方案是编码的前置必要步骤,不可省略
227
+ - **先设计再编码**:Step 6 内联设计方案是编码的前置必要步骤,不可省略
228
228
  - **设计驱动**:编码时以内联设计方案的实现蓝图(节 5)为路线图,禁止事项(节 8)为红线
229
229
  - **有据可依**:引用的实体、字段、接口名必须来自 Skill 或已有代码
230
230
  - **风格一致**:生成的代码应与项目现有风格保持一致