@modus-ai/modus 0.2.5 → 0.2.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 (49) hide show
  1. package/README.md +62 -45
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +37 -6
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/generators/claude.js +1 -1
  6. package/dist/generators/claude.js.map +1 -1
  7. package/dist/generators/codebuddy.d.ts.map +1 -1
  8. package/dist/generators/codebuddy.js +3 -1
  9. package/dist/generators/codebuddy.js.map +1 -1
  10. package/dist/generators/codex.d.ts +10 -0
  11. package/dist/generators/codex.d.ts.map +1 -0
  12. package/dist/generators/codex.js +178 -0
  13. package/dist/generators/codex.js.map +1 -0
  14. package/dist/generators/cursor.d.ts.map +1 -1
  15. package/dist/generators/cursor.js +36 -7
  16. package/dist/generators/cursor.js.map +1 -1
  17. package/dist/generators/custom.d.ts +55 -0
  18. package/dist/generators/custom.d.ts.map +1 -0
  19. package/dist/generators/custom.js +166 -0
  20. package/dist/generators/custom.js.map +1 -0
  21. package/dist/generators/index.d.ts +1 -0
  22. package/dist/generators/index.d.ts.map +1 -1
  23. package/dist/generators/index.js +10 -0
  24. package/dist/generators/index.js.map +1 -1
  25. package/dist/utils/config.d.ts +6 -1
  26. package/dist/utils/config.d.ts.map +1 -1
  27. package/dist/utils/config.js.map +1 -1
  28. package/package.json +1 -1
  29. package/schemas/harness-schema.yaml +178 -53
  30. package/templates/agents/modus-analyst.md +1 -1
  31. package/templates/commands/auto.md +61 -27
  32. package/templates/commands/harness.md +94 -34
  33. package/templates/commands/init.md +43 -10
  34. package/templates/commands/modus.md +55 -28
  35. package/templates/commands/plan.md +60 -18
  36. package/templates/commands/spec.md +69 -25
  37. package/templates/commands/upgrade.md +54 -0
  38. package/templates/commands/vibe.md +55 -5
  39. package/templates/knowledge-catalog.md +23 -10
  40. package/templates/skills/modus-agents/analyst/SKILL.md +11 -12
  41. package/templates/skills/modus-agents/developer/SKILL.md +14 -12
  42. package/templates/skills/modus-agents/reviewer/SKILL.md +50 -23
  43. package/templates/skills/modus-auto/SKILL.md +580 -123
  44. package/templates/skills/modus-design-brief/SKILL.md +17 -9
  45. package/templates/skills/modus-harness/SKILL.md +95 -96
  46. package/templates/skills/modus-init/SKILL.md +403 -188
  47. package/templates/skills/modus-plan/SKILL.md +16 -5
  48. package/templates/skills/modus-platform/SKILL.md +271 -0
  49. package/templates/skills/modus-vibe/SKILL.md +285 -187
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: modus-init
3
- description: Use this skill when executing /modus:init command to scan the codebase, classify business domains, and generate Business Skill files, team-conventions Skill, tech-wiki Skill, and knowledge-catalog index. Trigger on /modus:init command or when user asks to initialize Modus or build business Skills from scratch.
3
+ description: Use this skill when executing /modus:init command (or /modus:init --help/--enhance/--migrate/--dry-run etc.) to scan the codebase, classify business domains, generate Business Skill files in modus/knowledge/, update knowledge-catalog.md, and sync to multi-platform adapters. Trigger on /modus:init or any of its parameter variants. (Modus v3.2)
4
4
  allowed-tools: Read, Write, Glob, Bash
5
5
  disable: false
6
6
  supported_platforms:
@@ -28,11 +28,84 @@ supported_platforms:
28
28
 
29
29
  # modus-init
30
30
 
31
- **触发条件:** 用户运行 `/modus:init` 时使用此 Skill。
31
+ **触发条件:** 用户运行 `/modus:init [参数]` 时使用此 Skill。
32
32
 
33
- ## 职责
33
+ ## 参数参考(完整列表)
34
34
 
35
- 分析当前项目代码库,按业务领域分类,为每个业务域生成 Business Skill 文件,同时初始化团队约定 Skill(Layer 0-T)、技术知识 Skill(Layer 1)和知识全景目录索引(`modus/knowledge-catalog.md`),作为后续所有 Modus 命令的知识底座。
35
+ ```
36
+ /modus:init [参数]
37
+
38
+ 参数:
39
+ --help 显示本帮助文档(中文)
40
+ --project <name> 指定项目(多项目 workspace 必填,单项目可省略)
41
+ --enhance <domain> 仅增量更新指定业务域,不重建全部(如 --enhance biz-track)
42
+ --enhance-all 重建所有业务域 Skill(保留框架 Skill,不影响 _conventions/_tech-wiki)
43
+ --platform <p1,p2> 仅同步指定平台(claude,cursor,codex,copilot,逗号分隔)
44
+ --dry-run 预览将生成/修改的文件清单,不写入磁盘
45
+ --force 跳过所有「是否确认」交互,直接执行
46
+ --no-sync 跳过多平台同步,仅生成 modus/knowledge/ 下的文件
47
+ --migrate 将旧路径 .codebuddy/skills/modus-biz-* 迁移到 modus/knowledge/
48
+ --verbose 输出详细扫描过程(文件列表、token 预估、hash 变化)
49
+ --reset-maturity 重置所有 Skill 的 maturity 为 draft(谨慎使用)
50
+
51
+ 组合示例:
52
+ /modus:init # 全量初始化(首次或大重构后)
53
+ /modus:init --enhance biz-track # 仅更新歌曲域知识
54
+ /modus:init --migrate --dry-run # 预览迁移操作,不写入
55
+ /modus:init --migrate # 执行知识库路径迁移(旧 → modus/knowledge/)
56
+ /modus:init --enhance-all --no-sync # 重建所有业务域,不同步平台
57
+ /modus:init --project operations-job --enhance biz-album # 多项目指定
58
+ ```
59
+
60
+ ---
61
+
62
+ ## --help 响应模板
63
+
64
+ 当用户运行 `/modus:init --help` 时,输出以下内容:
65
+
66
+ ```
67
+ Modus Init — 业务知识库初始化工具
68
+ 版本:3.2.0
69
+
70
+ 用途:
71
+ 扫描项目代码,按业务域分类,生成结构化 Skill 文件,作为后续所有
72
+ Modus 命令(vibe/plan/spec/harness)的知识底座。
73
+ 支持多项目工作区路由,知识库统一存放于 modus/knowledge/(平台无关)。
74
+
75
+ 语法:
76
+ /modus:init [参数]
77
+
78
+ 参数:
79
+ --help 显示本帮助
80
+ --project <name> 指定项目(多项目时必须)
81
+ --enhance <domain> 仅增量更新指定业务域
82
+ --enhance-all 重建所有业务域 Skill
83
+ --platform <p1,p2> 仅同步指定平台(claude,cursor,codex,copilot)
84
+ --dry-run 预览模式,不写入文件
85
+ --force 跳过所有确认提示
86
+ --no-sync 跳过多平台同步
87
+ --migrate 迁移旧知识路径到 modus/knowledge/
88
+ --verbose 显示详细扫描日志
89
+ --reset-maturity 重置 Skill 成熟度为 draft
90
+
91
+ 知识库路径(v3.1):
92
+ modus/knowledge/_conventions/SKILL.md — Layer 0-T 团队约定
93
+ modus/knowledge/_tech-wiki/SKILL.md — Layer 1 技术知识
94
+ modus/knowledge/biz-*/SKILL.md — Layer 2 业务域知识(Single Source of Truth)
95
+
96
+ 平台适配文件(引用式,勿直接编辑):
97
+ .codebuddy/skills/modus-biz-*/SKILL.md — CodeBuddy 引用桩
98
+ .cursor/rules/modus-knowledge.mdc — Cursor 引用
99
+ CLAUDE.md(Modus 章节) — Claude Code 引用
100
+ AGENTS.md — Codex/OpenCode 引用
101
+
102
+ 相关命令:
103
+ /modus:vibe -- 上下文感知编码
104
+ /modus:plan -- 功能规划
105
+ /modus:spec -- 规范驱动开发
106
+ /modus:harness -- 全自动交付流程
107
+ /modus:auto -- 智能模式推荐
108
+ ```
36
109
 
37
110
  ---
38
111
 
@@ -42,9 +115,9 @@ supported_platforms:
42
115
 
43
116
  | 区块 | 内容 | Agent 读取时机 | 典型使用场景 |
44
117
  |------|------|----------------|------------|
45
- | **区块 A:执行流程**(Step 0-11) | Agent 执行 `/modus:init` 时的完整步骤指令 | **每次执行 `/modus:init` 必须完整读取** | 全新初始化、重新初始化(模式 1-4)、补全新节 |
46
- | **区块 B:防腐机制总览** | 防腐字段说明、双级 hash 规则、活跃度感知衰减、status 全链路图、同步副本管理规约 | 执行 Step 5 生成 Skill 前必读;执行 `/modus:verify`、`/modus:refresh` 前必读 | hash 不一致处理、status 升降级、副本同步问题排查 |
47
- | **区块 C:Business Skill 标准格式**(v3/17节模板) | 多语言适配说明 + 生成每个业务 Skill 时的完整格式参考 | 执行 Step 5 时按需读取对应节的格式要求;辅助命令 `/modus:verify`、`/modus:refresh` 执行时读取 | 格式参考、节内容门槛检查、信号词归属判断 |
118
+ | **区块 A:执行流程**(Step 0-14) | Agent 执行 `/modus:init` 时的完整步骤指令 | **每次执行 `/modus:init` 必须完整读取** | 全新初始化、重新初始化(模式 1-4)、补全新节 |
119
+ | **区块 B:防腐机制总览** | 防腐字段说明、双级 hash 规则、活跃度感知衰减、status 全链路图、同步副本管理规约 | 执行 Step 8 生成 Skill 前必读;执行 `/modus:verify`、`/modus:refresh` 前必读 | hash 不一致处理、status 升降级、副本同步问题排查 |
120
+ | **区块 C:Business Skill 标准格式**(v3/17节模板) | 多语言适配说明 + 生成每个业务 Skill 时的完整格式参考 | 执行 Step 8 时按需读取对应节的格式要求;辅助命令 `/modus:verify`、`/modus:refresh` 执行时读取 | 格式参考、节内容门槛检查、信号词归属判断 |
48
121
 
49
122
  ---
50
123
  <!-- ============================================================ -->
@@ -53,24 +126,166 @@ supported_platforms:
53
126
 
54
127
  ## 执行流程
55
128
 
56
- ### Step 0:读取项目宪法 + 重新初始化检查
129
+ ### Step 0:参数解析
57
130
 
58
- 读取 `modus/config.yaml`(若存在),提取 `constitution` 字段中的硬性约束,作为整个初始化过程的最高优先级约束。
131
+ **在做任何其他事之前**,解析用户输入的参数:
59
132
 
60
- 若 `modus/config.yaml` 不存在,将在 Step 10 创建默认配置。
133
+ ```
134
+ 输入:/modus:init [参数字符串]
61
135
 
62
- #### 重新初始化分支检查(Step 0 末尾执行)
136
+ 解析规则:
137
+ 1. 扫描参数字符串,提取所有 --xxx 和 --xxx value 对
138
+ 2. 识别特殊参数:
139
+ --help → 输出 --help 响应模板,立即结束,不执行后续 Step
140
+ --dry-run → 设置 DRY_RUN=true,所有文件写入操作仅打印不执行
141
+ --force → 设置 FORCE=true,跳过所有 confirm 交互
142
+ --migrate → 设置 MIGRATE_MODE=true,转入迁移流程(Step 1)
143
+ --enhance X → 设置 ENHANCE_DOMAIN=X,转入增量更新流程(Step 2)
144
+ --enhance-all → 设置 ENHANCE_ALL=true,全量重建业务域(保留框架 Skill)
145
+ --platform X → 设置 TARGET_PLATFORMS=X(逗号分隔)
146
+ --no-sync → 设置 NO_SYNC=true,跳过 Step 6 平台同步
147
+ --verbose → 设置 VERBOSE=true,详细输出
148
+ --project X → 设置 TARGET_PROJECT=X,读取对应项目路径
149
+ --reset-maturity → 设置 RESET_MATURITY=true
150
+ ```
63
151
 
64
- 在进入 Step 1 之前,检查是否已有业务 Skill:
152
+ **参数路由决策树:**
65
153
 
66
- ```bash
67
- # 检查是否存在已有的业务 Skill(支持 Bash 的平台)
68
- ls .codebuddy/skills/modus-biz-* 2>/dev/null
69
154
  ```
155
+ 检测到 --help?
156
+ 是 → 输出帮助文档,结束
157
+
158
+ 检测到 --migrate?
159
+ 是 → 跳转到 Step 1(迁移模式)
160
+
161
+ 检测到 --enhance <domain> 或 --enhance-all?
162
+ 是 → 跳转到 Step 2(增量更新模式)
163
+
164
+ 以上都无 → 执行标准全量初始化(Step 3 → Step 14)
165
+ ```
166
+
167
+ ---
168
+
169
+ ### Step 1:迁移模式(--migrate)
170
+
171
+ 当用户运行 `/modus:init --migrate` 时执行此流程。
172
+
173
+ **目标:** 将旧路径 `.codebuddy/skills/modus-biz-*` 迁移到 `modus/knowledge/biz-*`
174
+
175
+ **执行步骤:**
176
+
177
+ ```
178
+ Step 1-1: 扫描现有文件
179
+ 检测 .codebuddy/skills/modus-biz-*/SKILL.md(旧路径)
180
+ 检测 modus/knowledge/biz-*/SKILL.md(新路径,若已存在则提示)
181
+
182
+ Step 1-2: 展示迁移计划(即使不带 --dry-run 也先展示)
183
+ 迁移计划(共 N 个域):
184
+ ┌──────────────────────────────────────────────────┐
185
+ │ 从:.codebuddy/skills/modus-biz-track/SKILL.md │
186
+ │ 到:modus/knowledge/biz-track/SKILL.md │
187
+ │ 操作:复制 → 改写原文件为引用桩 │
188
+ └──────────────────────────────────────────────────┘
189
+ (重复 N 次)
190
+ 同时更新:knowledge-catalog.md 路径引用
191
+ 同时更新:CLAUDE.md / AGENTS.md / .cursor/rules/ 中的路径
192
+
193
+ Step 1-3: 用户确认(--force 时跳过)
194
+ 确认执行迁移?[Y/n]
195
+
196
+ Step 1-4: 执行迁移
197
+ 对每个业务域:
198
+ a. mkdir -p modus/knowledge/biz-{domain}/
199
+ b. 复制完整 SKILL.md 内容到新路径
200
+ c. 将原 .codebuddy/skills/modus-biz-{domain}/SKILL.md 改写为引用桩:
201
+ ---
202
+ name: modus-biz-{domain}
203
+ modus_ref: "{project}/modus/knowledge/biz-{domain}/SKILL.md"
204
+ stub: true
205
+ ---
206
+ <!-- MODUS_REF: {project}/modus/knowledge/biz-{domain}/SKILL.md -->
207
+ > 业务知识已迁移至:`{project}/modus/knowledge/biz-{domain}/SKILL.md`
208
+ d. 对 _conventions 和 _tech-wiki 同理处理
209
+
210
+ Step 1-5: 更新所有引用文件
211
+ - knowledge-catalog.md:更新 Skill 文件路径索引
212
+ - CLAUDE.md:更新 Modus 章节中的知识库路径说明
213
+ - AGENTS.md:更新知识库入口路径
214
+ - .cursor/rules/modus-knowledge.mdc(若存在):更新路径
215
+
216
+ Step 1-6: 完成回报
217
+ ✅ 迁移完成
218
+ 已迁移 N 个业务域:
219
+ biz-track → modus/knowledge/biz-track/SKILL.md ✓
220
+ ...
221
+ 已更新引用文件:knowledge-catalog.md, CLAUDE.md, AGENTS.md
222
+ ```
223
+
224
+ ---
225
+
226
+ ### Step 2:增量更新模式(--enhance <domain> 或 --enhance-all)
227
+
228
+ **目标:** 仅重建指定域的 Skill,不触动其他域和框架 Skill
229
+
230
+ ```
231
+ Step 2-1: 确定目标域
232
+ --enhance biz-track → 目标:modus/knowledge/biz-track/SKILL.md
233
+ --enhance-all → 目标:所有 modus/knowledge/biz-*/SKILL.md
70
234
 
71
- > **Cursor 平台替代**(无 Bash):使用 Glob 工具匹配 `.codebuddy/skills/modus-biz-*/SKILL.md`;若 Glob 返回结果即表示存在已有 Skill。
235
+ Step 2-2: hash 检查(跳过未变化的域)
236
+ 读取当前 Skill frontmatter 中的 last_hash
237
+ 计算对应 key_files 的当前 SHA-1
238
+ 若 hash 相同 → 跳过,输出 "biz-track: 无变化,跳过重建"
239
+ 若 hash 不同 → 继续重建
72
240
 
73
- **若发现已存在 `modus-biz-*` 目录:**
241
+ Step 2-3: 扫描目标域代码
242
+ 深度扫描 key_files 中列出的源文件
243
+ 提取:核心实体变化、业务规则变化、API 契约变化
244
+
245
+ Step 2-4: 重建 Skill 文件
246
+ 更新 modus/knowledge/biz-{domain}/SKILL.md
247
+ 更新 frontmatter: updated, last_hash, last_referenced
248
+
249
+ Step 2-5: 同步引用桩(若平台适配文件存在)
250
+ 更新 .codebuddy/skills/modus-biz-{domain}/SKILL.md 引用桩的摘要行
251
+
252
+ Step 2-6: 更新 knowledge-catalog.md 的 updated 时间戳
253
+
254
+ Step 2-7: 完成回报
255
+ ✅ 增量更新完成
256
+ biz-track: 已重建(3 处实体变化,1 条新 pitfall)
257
+ biz-album: 无变化,已跳过
258
+ ```
259
+
260
+ ---
261
+
262
+ ### Step 3:读取项目宪法 + 多项目工作区检测 + 重新初始化检查
263
+
264
+ **多项目工作区检测:**
265
+
266
+ ```
267
+ 优先级:
268
+ 1. 若用户传入 --project <name>:直接读取 modus-workspace.yaml 中对应项目配置
269
+ 2. 若当前工作目录在某项目子目录内:自动检测项目(匹配 modus-workspace.yaml 中 path)
270
+ 3. 若都不满足:读取 modus/workspace-catalog.md,展示项目列表让用户选择
271
+ ```
272
+
273
+ 扫描 workspace 根目录是否存在 `modus-workspace.yaml`:
274
+
275
+ - 若**存在**:读取 `workspace_catalog`(新字段)和 `projects` 列表,按上方优先级路由
276
+ - 若**不存在**:检查当前目录是否为单项目(有 `modus/config.yaml` 或 `pom.xml`),若是直接初始化;若检测到多个子项目,**提示用户是否创建 `modus-workspace.yaml`**
277
+
278
+ **读取项目宪法:**
279
+
280
+ 读取 `modus/config.yaml`(若存在),提取 `constitution` 字段中的硬性约束,作为整个初始化过程的最高优先级约束。
281
+
282
+ 若 `modus/config.yaml` 不存在,将在 Step 13 创建默认配置。
283
+
284
+ #### 重新初始化分支检查(Step 3 末尾执行)
285
+
286
+ 在进入 Step 4 之前,检查是否已有业务 Skill(`modus/knowledge/biz-*` 或 `.codebuddy/skills/modus-biz-*`):
287
+
288
+ **若发现已存在业务 Skill:**
74
289
 
75
290
  ```
76
291
  当前已有以下业务 Skill:
@@ -88,22 +303,23 @@ ls .codebuddy/skills/modus-biz-* 2>/dev/null
88
303
  ```
89
304
 
90
305
  **各模式执行规则:**
91
- - **全量重建(模式 1)**:清空 `.codebuddy/skills/modus-biz-*/`,然后从 Step 1 开始全量执行
92
- - **仅更新指定域(模式 2)**:用户选定域后,对这些域重新执行 Step 2→Step 5;其余域保持不变
93
- - **新增缺失域(模式 3)**:执行 Step 2 扫描,仅对新发现的域执行 Step 5 生成,已有域跳过
306
+ - **全量重建(模式 1)**:清空业务 Skill 目录,然后从 Step 4 开始全量执行
307
+ - **仅更新指定域(模式 2)**:用户选定域后,对这些域重新执行 Step 5→Step 8;其余域保持不变
308
+ - **新增缺失域(模式 3)**:执行 Step 5 扫描,仅对新发现的域执行 Step 8 生成,已有域跳过
94
309
  - **补全新节(模式 4,推荐)**:
95
310
  - 读取已有 Skill 的已有节,**不修改任何已有内容**
96
311
  - 仅追加缺失节(满足域适用性条件的节,不满足则跳过,不填占位符)
97
312
  - 对 v2 → v3 迁移:补充 Section 15(业务不变量)、Section 16(领域词汇表)、Section 17(新人上手指南)
98
313
  - 同步扩展 frontmatter 的 `key_files`(补充优先级 2/3 类文件,上限 20 个)
99
314
  - 更新 `format_version`(v1→v2 或 v2→v3)、`version`(小版本 +1)和 `updated` 日期
100
- - 迁移完成后自动触发 Step 6 多平台同步
315
+ - 迁移完成后自动触发 Step 9 多平台同步(`--force` 时默认选择「仅新增缺失域」)
101
316
 
102
317
  无论何种模式,都在最后更新 `modus/knowledge-catalog.md` 的索引信息。
103
318
 
104
- **若未发现已有 Skill:** 继续 Step 1 开始全新初始化流程。
319
+ **若未发现已有 Skill:** 继续 Step 4 开始全新初始化流程。
320
+
105
321
 
106
- ### Step 1:扫描已有 AI 工具配置
322
+ ### Step 4:扫描已有 AI 工具配置
107
323
 
108
324
  在扫描业务代码之前,先读取项目中已有的 AI 工具配置文件,将存量规则、上下文和 MCP 配置融入 Modus 知识库,避免重复发明轮子。
109
325
 
@@ -123,7 +339,7 @@ ls .codebuddy/skills/modus-biz-* 2>/dev/null
123
339
  | **CodeBuddy** | `.codebuddy/rules/*.mdc` | 项目规则 |
124
340
  | **CodeBuddy** | `.codebuddy/settings.json` | MCP 服务器配置 |
125
341
  | **Continue.dev** | `.continue/config.json`、`.continue/config.yaml` | 上下文提供者、模型配置 |
126
- | **OpenCode** | `AGENT.md`、`.claude-internal/AGENT.md` | 项目 Agent 指令 |
342
+ | **OpenCode/Codex** | `AGENTS.md`、`AGENT.md`、`.claude-internal/AGENT.md` | 项目 Agent 指令 |
127
343
 
128
344
  #### 提取与融合规则
129
345
 
@@ -131,29 +347,22 @@ ls .codebuddy/skills/modus-biz-* 2>/dev/null
131
347
 
132
348
  1. **项目描述 / 背景**(`context` 字段)
133
349
  - 从 `CLAUDE.md` / `AGENTS.md` 的开头段落提取项目一句话描述
134
- - 若 `modus/config.yaml` 中 `context` 为空,自动填入(需用户确认)
135
350
 
136
351
  2. **技术栈信息**(`techStack` 字段)
137
352
  - 从 `CLAUDE.md` 中寻找构建命令、框架名称等技术栈线索
138
- - 与代码文件检测结果合并,用于 Step 7 的技术知识 Skill
139
353
 
140
- 3. **编码规范 / 团队约定**(→ `modus-team-conventions` Skill)
141
- - 将各工具中找到的约定规则(命名规范、禁止模式、最佳实践等)汇总
142
- - 在 Step 6 生成团队约定 Skill 时,把这些规则作为**基础输入**,标注来源(如 `[来源: .cursor/rules/naming.mdc]`)
143
- - 避免重复:如果规则已在其他 Skill 中描述,仅添加引用
354
+ 3. **编码规范 / 团队约定**(→ `modus/knowledge/_conventions` Skill)
355
+ - 将各工具中找到的约定规则汇总,标注来源(如 `[来源: .cursor/rules/naming.mdc]`)
144
356
 
145
357
  4. **MCP 服务器配置**(→ `modus/config.yaml` `mcpServers` 字段)
146
- - `modus init` CLI 已自动检测并写入 `mcpServers`,则跳过
147
- - 否则从 `.claude/settings.json` / `.cursor/mcp.json` 提取,写入 `modus/config.yaml`
358
+ - `.claude/settings.json` / `.cursor/mcp.json` 提取,写入 `modus/config.yaml`
148
359
 
149
360
  5. **已有自定义命令**(仅记录,不重复生成)
150
- - 列出 `.claude/commands/` 中已有的命令名称
151
- - 在 `/modus:init` 完成回报中提示用户这些命令已存在
152
361
 
153
362
  #### 向用户展示扫描结果
154
363
 
155
364
  ```
156
- 🔍 扫描已有 AI 工具配置...
365
+ 扫描已有 AI 工具配置...
157
366
 
158
367
  ✓ Claude Code — 找到 3 个文件
159
368
  CLAUDE.md(项目指令 + 构建命令)
@@ -164,15 +373,13 @@ ls .codebuddy/skills/modus-biz-* 2>/dev/null
164
373
  .cursor/rules/naming.mdc(命名规范)
165
374
  .cursor/mcp.json(MCP: tapd)
166
375
 
167
- 将把以上规则融入 modus-team-conventions Skill,MCP 配置写入 modus/config.yaml。
168
- 继续?[Y/n]
376
+ 将把以上规则融入 modus/knowledge/_conventions/SKILL.md,MCP 配置写入 modus/config.yaml。
377
+ 继续?[Y/n](--force 时自动确认)
169
378
  ```
170
379
 
171
- 若用户确认,继续 Step 2;若无任何已有配置,直接进入 Step 2。
172
-
173
380
  ---
174
381
 
175
- ### Step 2:项目扫描与业务分类(5 轮全量扫描)
382
+ ### Step 5:项目扫描与业务分类(5 轮全量扫描)
176
383
 
177
384
  启动一个「项目分析 SubAgent」,执行以下 **5 轮结构化扫描**(替代原有的简单目录读取):
178
385
 
@@ -344,7 +551,7 @@ scanRules.exclude_patterns(用户配置)
344
551
 
345
552
  扫描完成 ─────────────────────────────────────────────
346
553
  确认域:{N} 个 | 待确认:{M} 个 | 孤立表:{K} 张
347
- 下一步:展示域汇总,等待用户确认
554
+ 下一步:展示域汇总,等待用户确认(Step 6)
348
555
  ──────────────────────────────────────────────────────
349
556
  ```
350
557
 
@@ -375,21 +582,21 @@ scanRules.exclude_patterns(用户配置)
375
582
  **扫描结果展示(向用户展示):**
376
583
 
377
584
  ```
378
- 我识别到以下业务域,请确认:
585
+ 我识别到以下业务域,请确认(将生成到 modus/knowledge/):
379
586
 
380
- 1. order(订单域)— 订单创建、状态流转、查询 [置信度: 9/10 ✅]
587
+ 1. biz-order(订单域)— 订单创建、状态流转、查询 [置信度: 9/10 ✅]
381
588
  关键文件: OrderController, OrderService, OrderMapper, OrderDomain, OrderStatus(Enum)
382
589
  独占表: order_main, order_item(共2个)
383
590
 
384
- 2. payment(支付域)— 支付发起、回调、退款 [置信度: 8/10 ✅]
591
+ 2. biz-payment(支付域)— 支付发起、回调、退款 [置信度: 8/10 ✅]
385
592
  关键文件: PayFacade, PayManager, PayRecordMapper, PayStatus(Enum)
386
593
  独占表: payment_record(共1个)
387
594
 
388
- 3. user(用户域)— 用户注册、登录、权限 [置信度: 5/10 ⚠️ 请确认]
595
+ 3. biz-user(用户域)— 用户注册、登录、权限 [置信度: 5/10 ⚠️ 请确认]
389
596
  关键文件: UserController, UserService, AuthManager
390
597
  ⚠️ 该域未发现独立 Entity 类(得分偏低),请确认是否独立域?
391
598
 
392
- 4. diversion(流量分发)— 流量路由 [置信度: 2/10 ❌ 需要决策]
599
+ 4. biz-diversion(流量分发)— 流量路由 [置信度: 2/10 ❌ 需要决策]
393
600
  ❌ 低置信度:仅 2 个业务类,无 Controller/Facade,无独占表
394
601
  建议选择:A) 合并至 user 域 B) 合并至 platform 域 C) 保持独立
395
602
 
@@ -422,9 +629,9 @@ scanRules.exclude_patterns(用户配置)
422
629
 
423
630
  ---
424
631
 
425
- ### Step 3:用户确认 + 置信度门槛 + 小包评估 + 大域保护
632
+ ### Step 6:用户确认 + 置信度门槛 + 小包评估 + 大域保护
426
633
 
427
- 等待用户确认域列表之前,先执行以下评估:
634
+ 等待用户确认域列表之前,先执行以下评估(`--force` 时自动确认):
428
635
 
429
636
  #### 3.0 置信度门槛强制执行
430
637
 
@@ -486,9 +693,9 @@ scanRules.exclude_patterns(用户配置)
486
693
 
487
694
  ---
488
695
 
489
- ### Step 4:结构化访谈问卷(隐性知识捕获)
696
+ ### Step 7:结构化访谈问卷(隐性知识捕获)
490
697
 
491
- **触发时机:** 用户确认域列表后、Step 5 启动前执行。
698
+ **触发时机:** 用户确认域列表后、Step 8 启动前执行。`--force` 时自动跳过(隐性知识率标为 0%)。
492
699
 
493
700
  **核心目的:** 代码扫描只能获得「显性结构知识」,此步骤通过动态生成的针对性问题,补全代码中无法推断的**隐性业务知识**(口口相传的规则、历史决策、业务背景)。
494
701
 
@@ -551,20 +758,20 @@ scanRules.exclude_patterns(用户配置)
551
758
 
552
759
  ---
553
760
 
554
- ### Step 5:生成业务 Skill(Layer 2)—— 并行执行
761
+ ### Step 8:生成业务 Skill(Layer 2)—— 并行执行
555
762
 
556
763
  用户确认后,**同时**为每个业务域启动独立的「Skills Builder SubAgent」(`modus-skill-creator` Skill,模式 A),并行生成所有业务 Skill 文件。各域之间完全独立,无需等待彼此完成。
557
764
 
558
- **目标路径:** `.codebuddy/skills/modus-biz-{domain}/SKILL.md`
765
+ **目标路径(v3.1):** `modus/knowledge/biz-{domain}/SKILL.md`
559
766
 
560
767
  **并行调度规则:**
561
768
 
562
769
  ```
563
770
  用户确认域列表后,立即并行启动 N 个 SubAgent:
564
771
 
565
- SubAgent-1 (order域) ──► 扫描订单全量文件(含Enum/MQ/Config等全10类)──► 生成 modus-biz-order/SKILL.md
566
- SubAgent-2 (payment域) ──► 扫描支付全量文件(含Enum/MQ/Config等全10类)──► 生成 modus-biz-payment/SKILL.md
567
- SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config等全10类)──► 生成 modus-biz-user/SKILL.md
772
+ SubAgent-1 (biz-order域) ──► 扫描订单全量文件(含Enum/MQ/Config等全10类)──► 生成 modus/knowledge/biz-order/SKILL.md
773
+ SubAgent-2 (biz-payment域) ──► 扫描支付全量文件(含Enum/MQ/Config等全10类)──► 生成 modus/knowledge/biz-payment/SKILL.md
774
+ SubAgent-3 (biz-user域) ──► 扫描用户全量文件(含Enum/MQ/Config等全10类)──► 生成 modus/knowledge/biz-user/SKILL.md
568
775
  │ │
569
776
  └──────────────────── 所有 SubAgent 完成 ─────────────────────────────┘
570
777
 
@@ -575,7 +782,7 @@ SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config
575
782
 
576
783
  **每个 SubAgent 的任务(模式 A 标准流程):**
577
784
 
578
- 1. 接收域名称 + **全量文件路径列表**(来自 Step 2 轮次 2/3 的分析结果,含所有 10 类文件)
785
+ 1. 接收域名称 + **全量文件路径列表**(来自 Step 5 轮次 2/3 的分析结果,含所有 10 类文件)
579
786
  2. 按优先级分三批扫描(**无文件数量上限,全量覆盖**):
580
787
  - **第一批(核心知识,必须完整扫描)**
581
788
  - ① Controller/Facade → API 契约、权限注解
@@ -605,7 +812,7 @@ SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config
605
812
  → 在 Skill 末尾标注:「[两段合并扫描: 批次A={N}个 + 批次B={M}个,共 {N+M} 个文件]」
606
813
 
607
814
  当两段都超限时(超大域 > 200 个文件):
608
- → 按域内子包进一步拆分(如 order-core / order-query / order-settle)
815
+ → 按域内子包进一步拆分(如 biz-order-core / biz-order-query / biz-order-settle)
609
816
  → 提示用户是否手动拆分为多个子域,或接受分段扫描
610
817
  ```
611
818
 
@@ -618,24 +825,24 @@ SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config
618
825
  **Section 10 跨域依赖回写(所有 SubAgent 完成后,主流程执行):**
619
826
 
620
827
  所有并行 SubAgent 完成后,主流程统一执行一轮跨域依赖分析:
621
- 1. 汇总 Step 2 轮次 4 的跨域依赖关系图
828
+ 1. 汇总 Step 5 轮次 4 的跨域依赖关系图
622
829
  2. 对每个域 Skill 的 Section 10 进行回写,填入上游依赖域和下游被依赖域
623
830
  3. 同步更新各 Skill frontmatter 的 `upstream_skills` 和 `downstream_skills` 字段
624
- 4. 执行 upstream/downstream 双向同步(详见 `modus-skill-creator`(SubAgent 00)Step 4 扩展算法)
831
+ 4. 执行 upstream/downstream 双向同步(详见 `modus-skill-creator`(SubAgent 00)Step 7 扩展算法)
625
832
 
626
- **聚合等待:** 所有 SubAgent 完成后,收集各 SubAgent 的完成状态摘要,在主流程中汇总展示:
833
+ **聚合等待:**
627
834
 
628
835
  ```
629
- ✓ modus-biz-order 已生成(v3/17节,18个key_files,6条业务规则,5个API,状态机含4个状态)
630
- ✓ modus-biz-payment 已生成(v3/17节,12个key_files,5条业务规则,3个API,⚠️ 共87个文件,已覆盖50个)
631
- ✓ modus-biz-user 已生成(v3/17节,10个key_files,4条业务规则,6个API)
836
+ ✓ modus/knowledge/biz-order 已生成(v3/17节,18个key_files,6条业务规则,5个API,状态机含4个状态)
837
+ ✓ modus/knowledge/biz-payment 已生成(v3/17节,12个key_files,5条业务规则,3个API,⚠️ 共87个文件,已覆盖50个)
838
+ ✓ modus/knowledge/biz-user 已生成(v3/17节,10个key_files,4条业务规则,6个API)
632
839
 
633
840
  跨域依赖 Section 10 回写完成:
634
- order.upstream_skills = [payment, user]
635
- payment.downstream_skills = [order, refund]
841
+ biz-order.upstream_skills = [biz-payment, biz-user]
842
+ biz-payment.downstream_skills = [biz-order, biz-refund]
636
843
  ```
637
844
 
638
- ### Step 5 补充:生成 Business Skill 时必须填写完整 frontmatter(防腐机制核心)
845
+ ### Step 8 补充:生成 Business Skill 时必须填写完整 frontmatter(防腐机制核心)
639
846
 
640
847
  在生成每个业务 Skill(`.codebuddy/skills/modus-biz-{domain}/SKILL.md`)时,**必须**在 frontmatter 中填写以下**完整字段清单**。这些字段是知识防腐机制的核心,缺一不可:
641
848
 
@@ -675,10 +882,10 @@ SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config
675
882
  - 确保 Enum/MQ/ErrorCode/Config 的变化能被 hash 检查感知
676
883
 
677
884
  #### 四、质量评分字段(必填,用于知识库质量报告)
678
- - **`domain_confidence`**: 本域的置信度评分(0-10),来自 Step 2 置信度评分矩阵
885
+ - **`domain_confidence`**: 本域的置信度评分(0-10),来自 Step 5 置信度评分矩阵
679
886
  - **`invariant_count`**: 生成的业务不变量条目数(Section 15)
680
887
  - **`glossary_size`**: 领域词汇表条目数(Section 16)
681
- - **`hidden_knowledge_rate`**: 隐性知识补全率(0-100,来自 Step 4 访谈问卷)
888
+ - **`hidden_knowledge_rate`**: 隐性知识补全率(0-100,来自 Step 7 访谈问卷)
682
889
  - **`contract_version`**: 本域对外暴露接口的当前版本(初始 "1.0");接口升级时更新,下游调用域在自己的 Section 10 中记录此版本号
683
890
 
684
891
  #### 五、跨域依赖字段(由 Section 10 回写阶段自动填入)
@@ -711,29 +918,40 @@ SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config
711
918
 
712
919
  ---
713
920
 
714
- ### Step 6:多平台同步(Business Skills)
921
+ ### Step 9:多平台同步(Business Skills)
715
922
 
716
- Business Skills 全部生成后,读取 `modus/config.yaml` 的 `platforms` 字段,将每个业务 Skill 同步到其他已选平台。
923
+ Business Skills(Step 8)全部生成后,读取 `modus/config.yaml` 的 `platforms` 字段(若带 `--no-sync` 则跳过此 Step)。
717
924
 
718
- **读取 platforms 配置:**
925
+ **核心设计原则:引用式适配(Reference over Copy)**
719
926
 
720
- ```bash
721
- # 检查已选平台(支持 Bash 的平台)
722
- grep -A5 "^platforms:" modus/config.yaml
723
- ```
927
+ `modus/knowledge/` 是 Single Source of Truth。各平台适配文件**不复制内容**,只写引用说明。
724
928
 
725
- > **Cursor 平台替代**(无 Bash):使用 Read 工具读取 `modus/config.yaml` 完整内容,解析其中的 `platforms:` 列表。
929
+ > **读取 platforms 配置**:使用 Read 工具读取 `modus/config.yaml` 完整内容,解析其中的 `platforms:` 列表。(Bash 环境也可用 `grep -A5 "^platforms:" modus/config.yaml`)
726
930
 
727
931
  **各平台同步规则(仅处理 codebuddy 以外的平台):**
728
932
 
729
- #### Claude Code(`.claude/agents/modus-biz-{domain}.md`)
933
+ #### Claude Code(更新 `CLAUDE.md` + 创建 `.claude/agents/modus-biz-{domain}.md`)
934
+
935
+ 更新 `CLAUDE.md` 的 Modus 章节(若存在则更新,否则追加):
936
+
937
+ ```markdown
938
+ ## Modus 知识库(AI 编码加速框架)v3.1
939
+
940
+ 执行任何涉及业务逻辑的任务时:
941
+
942
+ 1. 先读取 `modus/knowledge-catalog.md` 或 `modus/workspace-catalog.md`(多项目)
943
+ 2. 按需加载 `{project}/modus/knowledge/biz-*/SKILL.md` 获取完整业务上下文
944
+ 3. **知识库统一在 modus/knowledge/,不要去 .codebuddy/skills/modus-biz-* 读取(已是引用桩)**
945
+
946
+ 可用命令:/modus:init | /modus:vibe | /modus:plan | /modus:spec | /modus:harness | /modus:auto
947
+ ```
730
948
 
731
949
  对每个业务域,创建 Claude Sub-Agent 定义文件(包含 `<!-- modus:meta -->` 机器可读注释):
732
950
 
733
951
  ```markdown
734
952
  ---
735
953
  name: modus-biz-{domain}
736
- description: Business knowledge for the {domain} domain — {核心职责一句话}
954
+ description: "[MODUS:BIZ] {中文域名}业务知识。完整知识在 {project}/modus/knowledge/biz-{domain}/SKILL.md"
737
955
  ---
738
956
  <!-- modus:meta
739
957
  last_hash: "{从 CodeBuddy 主文件读取的 last_hash 值}"
@@ -741,181 +959,168 @@ status: "{从 CodeBuddy 主文件读取的 status 值}"
741
959
  updated: "{从 CodeBuddy 主文件读取的 updated 日期}"
742
960
  -->
743
961
 
744
- {.codebuddy/skills/modus-biz-{domain}/SKILL.md 的完整内容}
962
+ <!-- MODUS_REF: {project}/modus/knowledge/biz-{domain}/SKILL.md -->
963
+ **域:** {中文域名} | **成熟度:** {maturity} | **更新:** {date}
964
+ > 完整知识见:`{project}/modus/knowledge/biz-{domain}/SKILL.md`
745
965
  ```
746
966
 
747
967
  > 注意:`<!-- modus:meta -->` 注释供工具层快速读取核心防腐字段,每次同步时自动从 CodeBuddy 主文件更新,禁止手动修改。
748
968
 
749
- #### Cursor(`.cursor/rules/modus-biz-{domain}.mdc`)
750
-
751
- 对每个业务域,创建 Cursor 规则文件(带 frontmatter):
969
+ #### Cursor(更新/创建 `.cursor/rules/modus-knowledge.mdc`)
752
970
 
753
971
  ```markdown
754
972
  ---
755
- description: "Business rules and conventions for the {domain} domain — {核心职责一句话}"
973
+ description: "[MODUS] 知识库引用规则 所有业务知识在 modus/knowledge/"
756
974
  alwaysApply: false
757
975
  ---
758
976
 
759
- {.codebuddy/skills/modus-biz-{domain}/SKILL.md 的完整内容}
977
+ <!-- MODUS v3.1 知识库路径 -->
978
+ 业务知识(Single Source of Truth):`{project}/modus/knowledge/biz-*/SKILL.md`
979
+ 团队约定:`{project}/modus/knowledge/_conventions/SKILL.md`
980
+ 技术知识:`{project}/modus/knowledge/_tech-wiki/SKILL.md`
981
+ 加载入口:`{project}/modus/knowledge-catalog.md`(~200 tokens)
760
982
  ```
761
983
 
762
- #### GitHub Copilot(`.github/copilot-instructions.md`)
984
+ #### OpenAI Codex / OpenCode(`AGENTS.md`)
763
985
 
764
- 将每个业务域的 Skill 内容以带标记的段落形式追加或更新(幂等):
986
+ `AGENTS.md` `modus init` CLI 自动生成和维护(codex 平台),此步骤无需手动写入。
987
+ 如需更新业务域引用,调用 `syncBizSkillToCodex` 在 `AGENTS.md` 的业务域索引章节追加条目即可。
765
988
 
766
- ```markdown
767
- <!-- modus:biz-skill:{domain}:start -->
989
+ #### GitHub Copilot(更新 `.github/copilot-instructions.md`)
768
990
 
769
- ### Business Skill: {domain}
991
+ 在文件中追加/更新 modus 知识库引用段落(幂等,带标记防止重复)。
770
992
 
771
- {.codebuddy/skills/modus-biz-{domain}/SKILL.md 的完整内容}
993
+ #### CodeBuddy(创建引用桩)
772
994
 
773
- <!-- modus:biz-skill:{domain}:end -->
774
- ```
995
+ 为每个业务域在 `.codebuddy/skills/modus-biz-{domain}/` 下创建引用桩 SKILL.md(内容见 Step M-4 格式)。
775
996
 
776
- **若文件中已存在对应域的标记段落,替换其内容(不重复追加)。**
997
+ #### 自定义平台(持续同步)
777
998
 
778
- **同步完成输出:**
999
+ 扫描 `modus/platforms/*/platform.yaml`,对 `bizSkill.enabled=true` 的自定义平台:
779
1000
 
780
1001
  ```
781
- 📡 多平台同步:
782
- Claude .claude/agents/modus-biz-order.md
783
- Claude .claude/agents/modus-biz-payment.md
784
- Cursor .cursor/rules/modus-biz-order.mdc
785
- Cursor .cursor/rules/modus-biz-payment.mdc
786
- ✓ Copilot .github/copilot-instructions.md(已更新 2 个域段落)
1002
+ 对每个自定义平台 {platformName}:
1003
+ outputPath = platform.yaml 中 bizSkill.outputPath 模板(替换 {domain}、{ext})
1004
+ body = platform.yaml 中 bizSkill.wrapper 模板(替换 {domain}、{content})
1005
+ wrapper 未定义,直接写入 Skill 原文
1006
+ 写入 outputPath,确保父目录存在
1007
+
1008
+ 输出:[已同步 {domain} 到自定义平台: {platform1}, {platform2}]
1009
+ 若无自定义平台:静默跳过
787
1010
  ```
788
1011
 
789
- `platforms` 只包含 `codebuddy`(或字段不存在),跳过此步骤。
1012
+ > 这一步解决了 `/modus:platform -add` 后的**持续同步痛点**:每次更新业务域知识时,
1013
+ > 所有已注册的自定义平台目录都会被自动同步,无需用户手动干预。
790
1014
 
791
1015
  ---
792
1016
 
793
- ### Step 7:生成团队约定 Skill(Layer 0-T)
1017
+ ### Step 10:生成团队约定 Skill(Layer 0-T)
794
1018
 
795
- 调用「Skills Builder SubAgent」(模式 E:团队约定初始化):
1019
+ **目标路径(v3.1):** `modus/knowledge/_conventions/SKILL.md`
796
1020
 
797
1021
  从以下来源提取团队规范(**按优先级排列**):
798
1022
 
799
- 1. **Step 1 扫描结果**(最高优先级)
800
- - `CLAUDE.md` / `AGENTS.md` / `.cursor/rules/` / `.codebuddy/rules/` 提取的编码规范
801
- - 每条规则注明来源,例如:`[来源: .cursor/rules/naming.mdc]`
802
- - 若同一规则在多个工具中重复,合并为一条并列出所有来源
803
-
804
- 2. 项目中已有的 `CONTRIBUTING.md`、`.editorconfig`、`checkstyle.xml`、`pmd.xml` 等规范文件
805
-
1023
+ 1. **Step 4 扫描结果**(最高优先级)— 各工具中找到的编码规范
1024
+ 2. 项目中已有的 `CONTRIBUTING.md`、`.editorconfig`、`checkstyle.xml` 等规范文件
806
1025
  3. `modus/config.yaml` 中的 `constitution.hard_rules`
1026
+ 4. 代码中高频出现的注解模式
807
1027
 
808
- 4. 代码中高频出现的注解模式(如 `@Transactional`、`@DistributedLock` 的用法)
809
-
810
- 生成文件:`.codebuddy/skills/modus-team-conventions/SKILL.md`
811
-
812
- **注意:** 若 Step 1 中已有来自其他工具的规则,在 Skill 文件开头添加来源声明:
813
- ```markdown
814
- > 本 Skill 融合了以下 AI 工具的已有配置:Claude Code (CLAUDE.md)、Cursor (.cursor/rules/)
815
- > 原始文件保持不变,Modus 仅在此处做统一索引。
816
- ```
1028
+ ---
817
1029
 
818
- ### Step 8:生成技术知识 Skill(Layer 1)
819
1030
 
820
- 调用「Skills Builder SubAgent」(模式 E:技术知识初始化),初始化技术知识骨架:
1031
+ ### Step 11:生成技术知识 Skill(Layer 1)
821
1032
 
822
- 生成文件:`.codebuddy/skills/modus-tech-wiki/SKILL.md`
1033
+ **目标路径(v3.1):** `modus/knowledge/_tech-wiki/SKILL.md`
823
1034
 
824
1035
  初始内容来源(按优先级):
825
- 1. **Step 1 扫描结果中的技术信息**
826
- - `CLAUDE.md` 中记录的构建命令、测试命令(如 `mvn test`、`npm run test`)
827
- - `.continue/config.json` 中的模型/上下文提供者配置
828
- 2. 从构建文件提取的技术栈(`pom.xml` → Spring Boot 版本、`package.json` → 框架版本等)
829
- 3. 占位符章节(反模式库、架构决策、跨项目经验——待后续工作流积累)
1036
+ 1. Step 4 扫描结果中的技术信息
1037
+ 2. 从构建文件提取的技术栈(`pom.xml` Spring Boot 版本等)
1038
+ 3. 占位符章节(反模式库、架构决策——待后续工作流积累)
1039
+
1040
+ ---
830
1041
 
831
- ### Step 9:生成知识全景目录(knowledge-catalog.md)
1042
+ ### Step 12:生成知识全景目录(knowledge-catalog.md)
832
1043
 
833
- 在 `modus/knowledge-catalog.md` 创建全景索引。
1044
+ 在 `modus/knowledge-catalog.md`(项目级)创建全景索引。
834
1045
 
835
1046
  > **单一真相来源**:目录结构、层级定义、字段格式以 `modus/templates/knowledge-catalog.md` 模板文件为准,本 Step 不再内嵌重复结构。执行时读取该模板文件并按以下规则替换占位符后写入目标路径。
836
1047
 
1048
+ **路径说明(v3.1 格式):**
1049
+ - Layer 0-T 路径:`{project}/modus/knowledge/_conventions/SKILL.md`
1050
+ - Layer 1 路径:`{project}/modus/knowledge/_tech-wiki/SKILL.md`
1051
+ - Layer 2 路径:`{project}/modus/knowledge/biz-{domain}/SKILL.md`
1052
+
837
1053
  **操作步骤:**
838
1054
  1. 读取 `{MODUS_PACKAGE}/templates/knowledge-catalog.md`(安装包模板)
839
- 2. 将 Layer 2 的 `{domain}` 条目替换为 Step 2/3/4 扫描到的实际业务域列表,每域一行
1055
+ 2. 将 Layer 2 的 `{domain}` 条目替换为 Step 5/6/7 扫描到的实际业务域列表,每域一行
840
1056
  3. 完成以下占位符替换:
841
1057
 
842
1058
  **写入前必须完成的字段替换(断言,不可遗漏):**
843
1059
  - `{YYYY-MM-DD}` → 实际执行日期(如 `2026-05-06`)
844
1060
  - `{日期}` → 实际执行日期
845
- - `{domain}` → 扫描到的实际域名(如 `order`、`payment`、`user`);每个域生成独立条目
1061
+ - `{domain}` → 扫描到的实际域名(如 `biz-order`、`biz-payment`、`biz-user`);每个域生成独立条目
846
1062
  - `{中文域名}` → 对应域的中文名称(如 `订单`、`支付`、`用户`)
847
1063
  - `{核心职责一句话}` → 对应域的简短职责描述
848
- - `{依赖域列表,无则写-}` → upstream_skills 依赖关系(Step 2 扫描结果)
1064
+ - `{依赖域列表,无则写-}` → upstream_skills 依赖关系(Step 5 扫描结果)
849
1065
  - `{last_hash 前8位}` → 运行 hash 计算后的实际值前 8 位;若无法计算,写入 `⚠️ PENDING` 并在知识目录顶部说明原因
850
- - `{待填入}` → 域依赖图(从 upstream 字段推导:payment --> order, user 等)
1066
+ - `{待填入}` → 域依赖图(从 upstream 字段推导:biz-payment --> biz-order 等)
851
1067
  - 写入后执行自检:`grep -n '{' modus/knowledge-catalog.md | grep -v '<!--'` 输出应为空(注释中的占位符示例不算)
852
1068
 
853
- ### Step 10:初始化 modus/config.yaml(若不存在)
854
-
855
- 若项目尚无 `modus/config.yaml`,生成默认配置:
856
-
857
- ```yaml
858
- # Modus 项目配置
1069
+ 同时更新工作区顶层的 `modus/workspace-catalog.md`(若存在)中的项目更新时间。
859
1070
 
860
- # TAPD 项目 ID(可选,用于 Harness 自动创建 Bug 单)
861
- tapdProjectId: ""
1071
+ ---
862
1072
 
863
- # Harness 流程配置
864
- harness:
865
- buildCommand: "mvn clean compile -q"
866
- environments: [dev, test, pre]
1073
+ ### Step 13:初始化 modus/config.yaml(若不存在)
867
1074
 
868
- # 项目宪法(所有 SubAgent 必须遵守的硬性约束)
869
- # 这些约束在每次命令执行时自动加载,无需重复说明
870
- constitution:
871
- tech_stack: "" # 如 "Java 17 + Spring Boot 3 + MyBatis"
872
- test_command: "" # 如 "mvn test -pl {module}"
873
- hard_rules: [] # 如 ["Mapper 接口必须在 dao 包下", "金额使用 Long 单位分"]
874
- build_command: "" # 如 "mvn clean compile -q"
875
- key_patterns: [] # 项目特有的技术模式描述
876
- ```
1075
+ 若项目尚无 `modus/config.yaml`,生成默认配置(参见模板),提示用户填写 `constitution` 字段。
877
1076
 
878
- 提示用户填写 `constitution` 字段,以便后续命令无需重复说明项目约束。
1077
+ ---
879
1078
 
880
- ### Step 11:完成回报
1079
+ ### Step 14:完成回报
881
1080
 
882
- 所有业务 Skill 生成完毕后,回复用户:
1081
+ 所有文件生成完毕后,回复用户:
883
1082
 
884
1083
  ```
885
- ✅ Modus 知识库初始化完成
1084
+ ✅ Modus 知识库初始化完成(v3.2)
1085
+
1086
+ 知识库路径(Single Source of Truth):
1087
+ modus/knowledge/_conventions/SKILL.md (Layer 0-T) [draft]
1088
+ modus/knowledge/_tech-wiki/SKILL.md (Layer 1) [draft]
1089
+ modus/knowledge/biz-*/SKILL.md (Layer 2) [draft] × N 个域
886
1090
 
887
1091
  已融合的已有 AI 工具配置(若有):
888
- Claude Code — CLAUDE.md + .claude/rules/ (3 条规则已写入 modus-team-conventions)
889
- Cursor — .cursor/rules/ (2 条规则已写入 modus-team-conventions)
890
- MCP 服务器 — tapd (来自 .claude/settings.json) 已写入 modus/config.yaml
1092
+ Claude Code — CLAUDE.md + .claude/rules/ (M 条规则融入 _conventions)
1093
+ Cursor — .cursor/rules/ (K 条规则融入 _conventions)
891
1094
 
892
1095
  生成了 N 个业务 Skill(Layer 2):
893
- - .codebuddy/skills/modus-biz-order/SKILL.md [draft] [v3/17节]
894
- - .codebuddy/skills/modus-biz-payment/SKILL.md [draft] [v3/17节]
1096
+ - modus/knowledge/biz-order/SKILL.md [draft] [v3/17节]
1097
+ - modus/knowledge/biz-payment/SKILL.md [draft] [v3/17节]
895
1098
  - ...
896
1099
 
897
- 多平台同步(来自 modus/config.yaml platforms 配置):
898
- - Claude Code → .claude/agents/modus-biz-*.md(N 个域)
899
- - Cursor → .cursor/rules/modus-biz-*.mdc(N 个域)
900
- - Copilot → .github/copilot-instructions.md(N 个域段落)
1100
+ 多平台同步(引用式适配,来自 modus/config.yaml platforms 配置):
1101
+ Claude CLAUDE.md 更新 + .claude/agents/modus-biz-*.md(N 个)
1102
+ Cursor → .cursor/rules/modus-knowledge.mdc(路径引用)
1103
+ Codex AGENTS.md(由 modus init CLI 生成,此处追加业务域索引条目)
1104
+ Copilot → .github/copilot-instructions.md(N 个域段落)
1105
+ CodeBuddy → .codebuddy/skills/modus-biz-*/SKILL.md(N 个引用桩)
901
1106
 
902
1107
  初始化基础 Skill:
903
- - .codebuddy/skills/modus-team-conventions/SKILL.md (Layer 0-T) [draft]
904
- └─ 融合来源:CLAUDE.md, .cursor/rules/, CONTRIBUTING.md, 代码注解模式
905
- - .codebuddy/skills/modus-tech-wiki/SKILL.md (Layer 1) [draft]
1108
+ modus/knowledge/_conventions/SKILL.md (Layer 0-T) [draft]
1109
+ └─ 融合来源:CLAUDE.md, .cursor/rules/, CONTRIBUTING.md, 代码注解模式
1110
+ modus/knowledge/_tech-wiki/SKILL.md (Layer 1) [draft]
906
1111
 
907
1112
  知识目录:
908
- - modus/knowledge-catalog.md(所有命令的快速索引,~200 tokens)
1113
+ modus/knowledge-catalog.md(所有命令的快速索引,~200 tokens)
909
1114
 
910
1115
  📊 知识库质量评分报告:
911
1116
  ┌─────────────────┬──────┬──────┬──────┬──────┬──────┬──────────┐
912
1117
  │ 域名 │置信度│规则数│状态机│API完备│不变量│隐性知识率│
913
1118
  ├─────────────────┼──────┼──────┼──────┼──────┼──────┼──────────┤
914
- modus-biz-order │ 9/10 │ 8条 │ 100% │ 100% │ 3条 │ 80% │
915
- modus-biz-payment│ 8/10 │ 5条 │ 100% │ 80% │ 2条 │ 60% │
916
- modus-biz-user │ 5/10 │ 4条 │ - │ 90% │ 1条 │ 40% ⚠️ │
1119
+ │ biz-order │ 9/10 │ 8条 │ 100% │ 100% │ 3条 │ 80% │
1120
+ │ biz-payment │ 8/10 │ 5条 │ 100% │ 80% │ 2条 │ 60% │
1121
+ │ biz-user │ 5/10 │ 4条 │ - │ 90% │ 1条 │ 40% ⚠️ │
917
1122
  └─────────────────┴──────┴──────┴──────┴──────┴──────┴──────────┘
918
- ⚠️ modus-biz-user 隐性知识补全率 40%(低于 60% 阈值),建议补充访谈。
1123
+ ⚠️ biz-user 隐性知识补全率 40%(低于 60% 阈值),建议补充访谈。
919
1124
 
920
1125
  💡 建议:填写 modus/config.yaml 中的 constitution 字段,
921
1126
  记录项目硬性约束(技术栈、命名规范等),后续所有命令将自动加载。
@@ -925,9 +1130,10 @@ constitution:
925
1130
 
926
1131
  现在可以使用:
927
1132
  /modus:vibe — 氛围编程(自动加载业务上下文)
928
- /modus:plan — 功能规划
1133
+ /modus:plan — 功能规划(可带 --story <tapd-url>)
929
1134
  /modus:spec — 规范驱动开发
930
- /modus:harness — 全自动 Harness 流程
1135
+ /modus:harness [tapd-url] — 全自动 Harness 流程
1136
+ /modus:auto [tapd-url] — 智能推荐模式
931
1137
  /modus:verify — 升级 Skill 状态(draft → verified)
932
1138
  ```
933
1139
 
@@ -940,6 +1146,15 @@ constitution:
940
1146
 
941
1147
  > 本章节是防腐机制的**唯一权威来源**。`knowledge-catalog.md`、`modus-init-flow.md` 等其他文档如有冲突,以本章节为准。
942
1148
 
1149
+ **重新初始化逻辑(已有 Skill 时):**
1150
+
1151
+ 如果 `modus/knowledge/biz-*` 下已存在业务 Skill:
1152
+
1153
+ 1. 展示已有域列表及 status、最后更新时间
1154
+ 2. 询问:全量重建 / 仅更新指定域(`--enhance`)/ 新增缺失域
1155
+ 3. 按用户选择执行(`--force` 时默认选择「仅新增缺失域」)
1156
+ 4. 无论何种选择,都更新 `modus/knowledge-catalog.md` 的时间戳
1157
+
943
1158
  ### 防腐机制全链路图
944
1159
 
945
1160
  ```mermaid
@@ -1127,12 +1342,12 @@ name: modus-biz-{domain}
1127
1342
 
1128
1343
  | 文件 | 角色 | 防腐字段权威性 | 更新方式 |
1129
1344
  |------|------|-------------|---------|
1130
- | `.codebuddy/skills/modus-biz-{domain}/SKILL.md` | **权威源** | 所有防腐字段的唯一权威存储 | 命令直接写入 |
1345
+ | `modus/knowledge/biz-{domain}/SKILL.md` | **权威源** | 所有防腐字段的唯一权威存储 | 命令直接写入 |
1131
1346
  | `.claude/agents/modus-biz-{domain}.md` | 只读快照 | 仅通过 `<!-- modus:meta -->` 注释暴露核心字段 | Step 6 同步时自动更新 |
1132
- | `.cursor/rules/modus-biz-{domain}.mdc` | 只读快照 | 不存储防腐字段(仅业务上下文) | Step 6 同步时自动更新 |
1347
+ | `.cursor/rules/modus-knowledge.mdc` | 只读快照 | 不存储防腐字段(仅路径引用) | Step 6 同步时自动更新 |
1133
1348
 
1134
1349
  **关键原则**:
1135
- - 所有防腐机制的触发(hash 比对、衰减计算、`usage_count` 更新)**均只操作 CodeBuddy 权威源文件**
1350
+ - 所有防腐机制的触发(hash 比对、衰减计算、`usage_count` 更新)**均只操作 `modus/knowledge/` 权威源文件**
1136
1351
  - 副本文件发生变更不触发防腐机制,不影响 status
1137
1352
  - 若副本与权威源不一致(如手动修改副本),以权威源为准,下次 Step 6 同步时强制覆盖
1138
1353
 
@@ -1141,7 +1356,7 @@ name: modus-biz-{domain}
1141
1356
  <!-- 区块 C:Business Skill 标准格式参考(执行 Step 5 时按需读取)-->
1142
1357
  <!-- ============================================================ -->
1143
1358
 
1144
- ## Business Skill 标准格式参考(v3/17节)
1359
+ ## Business Skill 标准格式参考(v3.1 / 17节)
1145
1360
 
1146
1361
  ### 多语言适配说明
1147
1362
 
@@ -1162,7 +1377,7 @@ name: modus-biz-{domain}
1162
1377
 
1163
1378
  ```markdown
1164
1379
  ---
1165
- name: modus-biz-{domain}
1380
+ name: biz-{domain}
1166
1381
  description: "[MODUS:BIZ] {中文域名}业务知识 — {核心职责一句话}"
1167
1382
  version: 1.0.0
1168
1383
  updated: {YYYY-MM-DD}
@@ -1180,15 +1395,15 @@ glossary_size: 0 # Section 16 领域词汇表条目数
1180
1395
  hidden_knowledge_rate: 0 # 隐性知识补全率(0-100),来自 Step 4 访谈问卷
1181
1396
  contract_version: "1.0" # 本域对外暴露接口的当前版本;升级接口时同步更新,下游调用域在 Section 10 中记录此版本
1182
1397
  upstream_skills: # 本 Skill 在 Section 10 中依赖的其他域 Skill
1183
- - modus-biz-payment
1184
- - modus-biz-user
1398
+ - biz-payment
1399
+ - biz-user
1185
1400
  downstream_skills: # 依赖本域的其他 Skill(被依赖方)
1186
- - modus-biz-refund
1401
+ - biz-refund
1187
1402
  key_files: # 关键源文件列表,用于 hash 检查(最多 20 个,覆盖全 10 类文件)
1188
1403
  # 优先级 1:核心业务逻辑(必选)
1189
1404
  - src/.../service/{Domain}Service.java
1190
1405
  - src/.../manager/{Domain}Manager.java
1191
- - src/.../dao/{Domain}Mapper.java
1406
+ - src/.../dao/{Domain}CustomMapper.java
1192
1407
  - src/.../domain/{Domain}.java
1193
1408
  # 优先级 2:状态与规则(强烈建议)
1194
1409
  - src/.../enums/{Domain}Status.java
@@ -1604,7 +1819,7 @@ Section 12 最低内容门槛:每条复杂 SQL 必含:查询语义说明、J
1604
1819
  - draft(fresh):usage_count = 0(Skill 刚生成,尚未用于真实任务)
1605
1820
  - draft(used) :usage_count ≥ 1(已用于至少一次开发,有反馈基础)
1606
1821
 
1607
- 1. 读取 .codebuddy/skills/{skill-name}/SKILL.md 的 frontmatter
1822
+ 1. 读取 modus/knowledge/biz-{domain}/SKILL.md 的 frontmatter(v3.2 Single Source of Truth)
1608
1823
 
1609
1824
  2. 运行质量自检清单:
1610
1825
  □ Section 3:每个 Entity 字段均有业务含义注释?
@@ -1663,7 +1878,7 @@ Section 12 最低内容门槛:每条复杂 SQL 必含:查询语义说明、J
1663
1878
  **执行逻辑:**
1664
1879
 
1665
1880
  ```
1666
- 1. 读取 .codebuddy/skills/modus-biz-{domain}/SKILL.md 的 frontmatter
1881
+ 1. 读取 modus/knowledge/biz-{domain}/SKILL.md 的 frontmatter(v3.2 Single Source of Truth):
1667
1882
  - key_files 列表
1668
1883
  - last_hash(上次生成时的 SHA-1 值)
1669
1884
  - status(若已为 archived,询问用户是否继续)