@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.
- package/README.md +62 -45
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +37 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/generators/claude.js +1 -1
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codebuddy.d.ts.map +1 -1
- package/dist/generators/codebuddy.js +3 -1
- package/dist/generators/codebuddy.js.map +1 -1
- package/dist/generators/codex.d.ts +10 -0
- package/dist/generators/codex.d.ts.map +1 -0
- package/dist/generators/codex.js +178 -0
- package/dist/generators/codex.js.map +1 -0
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +36 -7
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/custom.d.ts +55 -0
- package/dist/generators/custom.d.ts.map +1 -0
- package/dist/generators/custom.js +166 -0
- package/dist/generators/custom.js.map +1 -0
- package/dist/generators/index.d.ts +1 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +10 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/utils/config.d.ts +6 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js.map +1 -1
- package/package.json +1 -1
- package/schemas/harness-schema.yaml +178 -53
- package/templates/agents/modus-analyst.md +1 -1
- package/templates/commands/auto.md +61 -27
- package/templates/commands/harness.md +94 -34
- package/templates/commands/init.md +43 -10
- package/templates/commands/modus.md +55 -28
- package/templates/commands/plan.md +60 -18
- package/templates/commands/spec.md +69 -25
- package/templates/commands/upgrade.md +54 -0
- package/templates/commands/vibe.md +55 -5
- package/templates/knowledge-catalog.md +23 -10
- package/templates/skills/modus-agents/analyst/SKILL.md +11 -12
- package/templates/skills/modus-agents/developer/SKILL.md +14 -12
- package/templates/skills/modus-agents/reviewer/SKILL.md +50 -23
- package/templates/skills/modus-auto/SKILL.md +580 -123
- package/templates/skills/modus-design-brief/SKILL.md +17 -9
- package/templates/skills/modus-harness/SKILL.md +95 -96
- package/templates/skills/modus-init/SKILL.md +403 -188
- package/templates/skills/modus-plan/SKILL.md +16 -5
- package/templates/skills/modus-platform/SKILL.md +271 -0
- 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,
|
|
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
|
-
|
|
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-
|
|
46
|
-
| **区块 B:防腐机制总览** | 防腐字段说明、双级 hash 规则、活跃度感知衰减、status 全链路图、同步副本管理规约 | 执行 Step
|
|
47
|
-
| **区块 C:Business Skill 标准格式**(v3/17节模板) | 多语言适配说明 + 生成每个业务 Skill 时的完整格式参考 | 执行 Step
|
|
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
|
-
|
|
131
|
+
**在做任何其他事之前**,解析用户输入的参数:
|
|
59
132
|
|
|
60
|
-
|
|
133
|
+
```
|
|
134
|
+
输入:/modus:init [参数字符串]
|
|
61
135
|
|
|
62
|
-
|
|
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
|
-
|
|
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
|
-
|
|
235
|
+
Step 2-2: hash 检查(跳过未变化的域)
|
|
236
|
+
读取当前 Skill frontmatter 中的 last_hash
|
|
237
|
+
计算对应 key_files 的当前 SHA-1
|
|
238
|
+
若 hash 相同 → 跳过,输出 "biz-track: 无变化,跳过重建"
|
|
239
|
+
若 hash 不同 → 继续重建
|
|
72
240
|
|
|
73
|
-
|
|
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
|
|
92
|
-
- **仅更新指定域(模式 2)**:用户选定域后,对这些域重新执行 Step
|
|
93
|
-
- **新增缺失域(模式 3)**:执行 Step
|
|
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
|
|
315
|
+
- 迁移完成后自动触发 Step 9 多平台同步(`--force` 时默认选择「仅新增缺失域」)
|
|
101
316
|
|
|
102
317
|
无论何种模式,都在最后更新 `modus/knowledge-catalog.md` 的索引信息。
|
|
103
318
|
|
|
104
|
-
**若未发现已有 Skill:** 继续 Step
|
|
319
|
+
**若未发现已有 Skill:** 继续 Step 4 开始全新初始化流程。
|
|
320
|
+
|
|
105
321
|
|
|
106
|
-
### Step
|
|
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
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
696
|
+
### Step 7:结构化访谈问卷(隐性知识捕获)
|
|
490
697
|
|
|
491
|
-
**触发时机:** 用户确认域列表后、Step
|
|
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
|
|
761
|
+
### Step 8:生成业务 Skill(Layer 2)—— 并行执行
|
|
555
762
|
|
|
556
763
|
用户确认后,**同时**为每个业务域启动独立的「Skills Builder SubAgent」(`modus-skill-creator` Skill,模式 A),并行生成所有业务 Skill 文件。各域之间完全独立,无需等待彼此完成。
|
|
557
764
|
|
|
558
|
-
|
|
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
|
|
566
|
-
SubAgent-2 (payment域) ──► 扫描支付全量文件(含Enum/MQ/Config等全10类)──► 生成 modus
|
|
567
|
-
SubAgent-3 (user域) ──► 扫描用户全量文件(含Enum/MQ/Config等全10类)──► 生成 modus
|
|
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
|
|
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
|
|
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
|
|
831
|
+
4. 执行 upstream/downstream 双向同步(详见 `modus-skill-creator`(SubAgent 00)Step 7 扩展算法)
|
|
625
832
|
|
|
626
|
-
**聚合等待:**
|
|
833
|
+
**聚合等待:**
|
|
627
834
|
|
|
628
835
|
```
|
|
629
|
-
✓ modus
|
|
630
|
-
✓ modus
|
|
631
|
-
✓ modus
|
|
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
|
|
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
|
|
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
|
|
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
|
|
921
|
+
### Step 9:多平台同步(Business Skills)
|
|
715
922
|
|
|
716
|
-
Business Skills
|
|
923
|
+
Business Skills(Step 8)全部生成后,读取 `modus/config.yaml` 的 `platforms` 字段(若带 `--no-sync` 则跳过此 Step)。
|
|
717
924
|
|
|
718
|
-
|
|
925
|
+
**核心设计原则:引用式适配(Reference over Copy)**
|
|
719
926
|
|
|
720
|
-
|
|
721
|
-
# 检查已选平台(支持 Bash 的平台)
|
|
722
|
-
grep -A5 "^platforms:" modus/config.yaml
|
|
723
|
-
```
|
|
927
|
+
`modus/knowledge/` 是 Single Source of Truth。各平台适配文件**不复制内容**,只写引用说明。
|
|
724
928
|
|
|
725
|
-
>
|
|
929
|
+
> **读取 platforms 配置**:使用 Read 工具读取 `modus/config.yaml` 完整内容,解析其中的 `platforms:` 列表。(Bash 环境也可用 `grep -A5 "^platforms:" modus/config.yaml`)
|
|
726
930
|
|
|
727
931
|
**各平台同步规则(仅处理 codebuddy 以外的平台):**
|
|
728
932
|
|
|
729
|
-
#### Claude Code
|
|
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:
|
|
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
|
-
{
|
|
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
|
|
750
|
-
|
|
751
|
-
对每个业务域,创建 Cursor 规则文件(带 frontmatter):
|
|
969
|
+
#### Cursor(更新/创建 `.cursor/rules/modus-knowledge.mdc`)
|
|
752
970
|
|
|
753
971
|
```markdown
|
|
754
972
|
---
|
|
755
|
-
description: "
|
|
973
|
+
description: "[MODUS] 知识库引用规则 — 所有业务知识在 modus/knowledge/"
|
|
756
974
|
alwaysApply: false
|
|
757
975
|
---
|
|
758
976
|
|
|
759
|
-
|
|
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
|
-
####
|
|
984
|
+
#### OpenAI Codex / OpenCode(`AGENTS.md`)
|
|
763
985
|
|
|
764
|
-
|
|
986
|
+
`AGENTS.md` 由 `modus init` CLI 自动生成和维护(codex 平台),此步骤无需手动写入。
|
|
987
|
+
如需更新业务域引用,调用 `syncBizSkillToCodex` 在 `AGENTS.md` 的业务域索引章节追加条目即可。
|
|
765
988
|
|
|
766
|
-
|
|
767
|
-
<!-- modus:biz-skill:{domain}:start -->
|
|
989
|
+
#### GitHub Copilot(更新 `.github/copilot-instructions.md`)
|
|
768
990
|
|
|
769
|
-
|
|
991
|
+
在文件中追加/更新 modus 知识库引用段落(幂等,带标记防止重复)。
|
|
770
992
|
|
|
771
|
-
|
|
993
|
+
#### CodeBuddy(创建引用桩)
|
|
772
994
|
|
|
773
|
-
|
|
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
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
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
|
-
|
|
1012
|
+
> 这一步解决了 `/modus:platform -add` 后的**持续同步痛点**:每次更新业务域知识时,
|
|
1013
|
+
> 所有已注册的自定义平台目录都会被自动同步,无需用户手动干预。
|
|
790
1014
|
|
|
791
1015
|
---
|
|
792
1016
|
|
|
793
|
-
### Step
|
|
1017
|
+
### Step 10:生成团队约定 Skill(Layer 0-T)
|
|
794
1018
|
|
|
795
|
-
|
|
1019
|
+
**目标路径(v3.1):** `modus/knowledge/_conventions/SKILL.md`
|
|
796
1020
|
|
|
797
1021
|
从以下来源提取团队规范(**按优先级排列**):
|
|
798
1022
|
|
|
799
|
-
1. **Step
|
|
800
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1031
|
+
### Step 11:生成技术知识 Skill(Layer 1)
|
|
821
1032
|
|
|
822
|
-
|
|
1033
|
+
**目标路径(v3.1):** `modus/knowledge/_tech-wiki/SKILL.md`
|
|
823
1034
|
|
|
824
1035
|
初始内容来源(按优先级):
|
|
825
|
-
1.
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
1036
|
+
1. Step 4 扫描结果中的技术信息
|
|
1037
|
+
2. 从构建文件提取的技术栈(`pom.xml` → Spring Boot 版本等)
|
|
1038
|
+
3. 占位符章节(反模式库、架构决策——待后续工作流积累)
|
|
1039
|
+
|
|
1040
|
+
---
|
|
830
1041
|
|
|
831
|
-
### Step
|
|
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
|
|
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
|
|
1064
|
+
- `{依赖域列表,无则写-}` → upstream_skills 依赖关系(Step 5 扫描结果)
|
|
849
1065
|
- `{last_hash 前8位}` → 运行 hash 计算后的实际值前 8 位;若无法计算,写入 `⚠️ PENDING` 并在知识目录顶部说明原因
|
|
850
|
-
- `{待填入}` → 域依赖图(从 upstream 字段推导:payment --> order
|
|
1066
|
+
- `{待填入}` → 域依赖图(从 upstream 字段推导:biz-payment --> biz-order 等)
|
|
851
1067
|
- 写入后执行自检:`grep -n '{' modus/knowledge-catalog.md | grep -v '<!--'` 输出应为空(注释中的占位符示例不算)
|
|
852
1068
|
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
若项目尚无 `modus/config.yaml`,生成默认配置:
|
|
856
|
-
|
|
857
|
-
```yaml
|
|
858
|
-
# Modus 项目配置
|
|
1069
|
+
同时更新工作区顶层的 `modus/workspace-catalog.md`(若存在)中的项目更新时间。
|
|
859
1070
|
|
|
860
|
-
|
|
861
|
-
tapdProjectId: ""
|
|
1071
|
+
---
|
|
862
1072
|
|
|
863
|
-
|
|
864
|
-
harness:
|
|
865
|
-
buildCommand: "mvn clean compile -q"
|
|
866
|
-
environments: [dev, test, pre]
|
|
1073
|
+
### Step 13:初始化 modus/config.yaml(若不存在)
|
|
867
1074
|
|
|
868
|
-
|
|
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
|
-
|
|
1077
|
+
---
|
|
879
1078
|
|
|
880
|
-
### Step
|
|
1079
|
+
### Step 14:完成回报
|
|
881
1080
|
|
|
882
|
-
|
|
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/ (
|
|
889
|
-
Cursor — .cursor/rules/ (
|
|
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
|
-
-
|
|
894
|
-
-
|
|
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
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
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
|
-
|
|
904
|
-
|
|
905
|
-
|
|
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
|
-
|
|
1113
|
+
modus/knowledge-catalog.md(所有命令的快速索引,~200 tokens)
|
|
909
1114
|
|
|
910
1115
|
📊 知识库质量评分报告:
|
|
911
1116
|
┌─────────────────┬──────┬──────┬──────┬──────┬──────┬──────────┐
|
|
912
1117
|
│ 域名 │置信度│规则数│状态机│API完备│不变量│隐性知识率│
|
|
913
1118
|
├─────────────────┼──────┼──────┼──────┼──────┼──────┼──────────┤
|
|
914
|
-
│
|
|
915
|
-
│
|
|
916
|
-
│
|
|
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
|
-
⚠️
|
|
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
|
|
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
|
-
|
|
|
1345
|
+
| `modus/knowledge/biz-{domain}/SKILL.md` | **权威源** | 所有防腐字段的唯一权威存储 | 命令直接写入 |
|
|
1131
1346
|
| `.claude/agents/modus-biz-{domain}.md` | 只读快照 | 仅通过 `<!-- modus:meta -->` 注释暴露核心字段 | Step 6 同步时自动更新 |
|
|
1132
|
-
| `.cursor/rules/modus-
|
|
1347
|
+
| `.cursor/rules/modus-knowledge.mdc` | 只读快照 | 不存储防腐字段(仅路径引用) | Step 6 同步时自动更新 |
|
|
1133
1348
|
|
|
1134
1349
|
**关键原则**:
|
|
1135
|
-
- 所有防腐机制的触发(hash 比对、衰减计算、`usage_count` 更新)**均只操作
|
|
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:
|
|
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
|
-
-
|
|
1184
|
-
-
|
|
1398
|
+
- biz-payment
|
|
1399
|
+
- biz-user
|
|
1185
1400
|
downstream_skills: # 依赖本域的其他 Skill(被依赖方)
|
|
1186
|
-
-
|
|
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}
|
|
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. 读取
|
|
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. 读取
|
|
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,询问用户是否继续)
|