@modus-ai/modus 0.2.11 → 0.3.0
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/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +8 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +37 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +215 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +9 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/generators/claude.d.ts +4 -2
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +17 -8
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codebuddy.d.ts.map +1 -1
- package/dist/generators/codebuddy.js +5 -1
- package/dist/generators/codebuddy.js.map +1 -1
- package/dist/generators/codex.d.ts.map +1 -1
- package/dist/generators/codex.js +4 -4
- package/dist/generators/codex.js.map +1 -1
- package/dist/generators/continue.d.ts +3 -2
- package/dist/generators/continue.d.ts.map +1 -1
- package/dist/generators/continue.js +11 -5
- package/dist/generators/continue.js.map +1 -1
- package/dist/generators/copilot.d.ts.map +1 -1
- package/dist/generators/copilot.js +3 -2
- package/dist/generators/copilot.js.map +1 -1
- package/dist/generators/cursor.d.ts +4 -3
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +15 -10
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/custom.d.ts +2 -2
- package/dist/generators/custom.js +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +7 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/modus.d.ts +12 -0
- package/dist/generators/modus.d.ts.map +1 -0
- package/dist/generators/modus.js +225 -0
- package/dist/generators/modus.js.map +1 -0
- package/package.json +1 -1
- package/schemas/harness-schema.yaml +13 -13
- package/templates/agents/modus-analyst.md +2 -2
- package/templates/agents/modus-deployer.md +1 -1
- package/templates/agents/modus-designer.md +1 -1
- package/templates/agents/modus-developer.md +1 -1
- package/templates/agents/modus-perf-auditor.md +1 -1
- package/templates/agents/modus-reviewer.md +1 -1
- package/templates/agents/modus-security-auditor.md +1 -1
- package/templates/agents/modus-skill-creator.md +1 -1
- package/templates/agents/modus-tester.md +1 -1
- package/templates/commands/auto.md +3 -1
- package/templates/commands/commit.md +11 -5
- package/templates/commands/cr.md +14 -10
- package/templates/commands/harness.md +27 -18
- package/templates/commands/init.md +56 -23
- package/templates/commands/modus.md +33 -11
- package/templates/commands/plan.md +23 -19
- package/templates/commands/spec.md +30 -17
- package/templates/commands/upgrade.md +50 -38
- package/templates/commands/vibe.md +30 -20
- package/templates/domain-business-readme.md +69 -0
- package/templates/domain-code/SKILL.md +94 -0
- package/templates/domain-code/apis.md +48 -0
- package/templates/domain-code/data-models.md +57 -0
- package/templates/domain-code/entities.md +45 -0
- package/templates/domain-code/services.md +51 -0
- package/templates/domain-history-readme.md +60 -0
- package/templates/domain-scenarios-readme.md +58 -0
- package/templates/knowledge-base-map.md +78 -0
- package/templates/knowledge-base-service-graph.md +100 -0
- package/templates/knowledge-catalog.md +38 -43
- package/templates/paths-v4.md +156 -0
- package/templates/rules/modus-workflow/RULE.mdc +45 -38
- package/templates/skills/modus-agents/analyst/SKILL.md +1 -1
- package/templates/skills/modus-agents/developer/SKILL.md +1 -1
- package/templates/skills/modus-agents/reviewer/SKILL.md +1 -1
- package/templates/skills/modus-agents/skill-creator/SKILL.md +3 -3
- package/templates/skills/modus-auto/SKILL.md +19 -19
- package/templates/skills/modus-cr/SKILL.md +1 -1
- package/templates/skills/modus-design-brief/SKILL.md +3 -3
- package/templates/skills/modus-harness/SKILL.md +5 -5
- package/templates/skills/modus-init/SKILL.md +64 -64
- package/templates/skills/modus-init/shared/frontmatter-spec.md +2 -2
- package/templates/skills/modus-init/shared/stack-detection.md +1 -1
- package/templates/skills/modus-init/strategies/fallback-init.md +1 -1
- package/templates/skills/modus-plan/SKILL.md +6 -6
- package/templates/skills/modus-platform/SKILL.md +1 -1
- package/templates/skills/modus-spec/SKILL.md +1 -1
- package/templates/skills/modus-vibe/SKILL.md +10 -10
- package/templates/template/analysis.md +83 -0
- package/templates/template/design.md +160 -0
- package/templates/template/pid.md +97 -0
- package/templates/template/plan.md +91 -0
- package/templates/template/spec.md +78 -0
- package/templates/template/sprint-contract.md +101 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Service Graph — 全局服务调用关系图(v4.0)
|
|
2
|
+
|
|
3
|
+
> **路径**:`modus/knowledge_base/service-graph.md`
|
|
4
|
+
> **作用**:L0 级全局视图,标识本项目所有服务的调用关系、外部依赖、数据流向。
|
|
5
|
+
> **维护**:`/modus:init` 自动生成(基于代码扫描) + 人工微调(标注业务语义)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 元信息
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
generated_at: ""
|
|
13
|
+
generator: "modus-init"
|
|
14
|
+
manual_overrides: [] # 人工手工修正的边的 ID 列表(防止被自动重写覆盖)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. 服务清单(Internal Services)
|
|
20
|
+
|
|
21
|
+
| 服务名 | 类型 | 入口 | 出口 | 所属域 |
|
|
22
|
+
|-------|------|------|------|-------|
|
|
23
|
+
| | HTTP/MQ/RPC/Job | | | |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 2. 调用关系图(Call Graph)
|
|
28
|
+
|
|
29
|
+
```mermaid
|
|
30
|
+
graph LR
|
|
31
|
+
subgraph 上游
|
|
32
|
+
Up1[上游系统A]
|
|
33
|
+
Up2[上游系统B]
|
|
34
|
+
end
|
|
35
|
+
subgraph 本项目
|
|
36
|
+
S1[服务1]
|
|
37
|
+
S2[服务2]
|
|
38
|
+
end
|
|
39
|
+
subgraph 下游
|
|
40
|
+
D1[下游系统A]
|
|
41
|
+
D2[下游系统B]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
Up1 --> S1
|
|
45
|
+
Up2 --> S1
|
|
46
|
+
S1 --> S2
|
|
47
|
+
S2 --> D1
|
|
48
|
+
S2 --> D2
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2.1 关键调用链(Top N)
|
|
52
|
+
|
|
53
|
+
| 链路 ID | 链路描述 | QPS 估算 | 关键超时 |
|
|
54
|
+
|---------|---------|---------|---------|
|
|
55
|
+
| C-001 | | | |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. 外部依赖(External Dependencies)
|
|
60
|
+
|
|
61
|
+
| 名称 | 类型 | 用途 | SLA | 兜底方案 |
|
|
62
|
+
|------|------|------|-----|---------|
|
|
63
|
+
| | DB/Cache/MQ/3rd API | | | |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 4. 跨域调用(Cross-Domain Calls)
|
|
68
|
+
|
|
69
|
+
> 标识不同 `domain/` 之间的调用关系,重点关注是否存在循环依赖。
|
|
70
|
+
|
|
71
|
+
| 调用方域 | 被调方域 | 接口 | 是否合理 |
|
|
72
|
+
|---------|---------|------|---------|
|
|
73
|
+
| | | | |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 5. 数据流向(Data Flow,可选)
|
|
78
|
+
|
|
79
|
+
```mermaid
|
|
80
|
+
flowchart LR
|
|
81
|
+
Source[数据源] --> Process1[处理1]
|
|
82
|
+
Process1 --> Storage[(存储)]
|
|
83
|
+
Storage --> Process2[处理2]
|
|
84
|
+
Process2 --> Sink[消费方]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 6. 演进历史
|
|
90
|
+
|
|
91
|
+
| 日期 | 变更 | Story ID | 备注 |
|
|
92
|
+
|------|------|---------|------|
|
|
93
|
+
| | | | |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
> **维护规则**:
|
|
98
|
+
> 1. 自动生成部分(§1、§2 边)由 `/modus:init` 重写;人工标注的部分通过 `manual_overrides` 锁定。
|
|
99
|
+
> 2. §3、§4、§5 主要由人工维护;自动扫描只能给出候选,人工确认后才写入。
|
|
100
|
+
> 3. 任何架构级变更(新增服务、删除服务、调用方向反转)必须更新 §6。
|
|
@@ -1,71 +1,64 @@
|
|
|
1
|
-
# Modus
|
|
2
|
-
#
|
|
3
|
-
# 框架版本:3.1.0 | 知识库路径:{project}/modus/knowledge/**(Single Source of Truth)
|
|
4
|
-
# 多平台适配:CLAUDE.md / AGENTS.md / .cursor/rules/ 均为引用式,修改请直接编辑 modus/knowledge/ 下的文件
|
|
1
|
+
# Modus 知识全景目录(兼容入口) — {project-name}
|
|
2
|
+
# 框架版本:4.0.0
|
|
5
3
|
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
#
|
|
4
|
+
# ⚠️ v4.0 起本文件已被 `modus/knowledge_base/map.md` 取代。
|
|
5
|
+
# 为保证 v3.x 用户的脚本/Skill 仍可工作,本文件作为兼容入口被生成(指向 v4 路径)。
|
|
6
|
+
# 新项目请直接使用 modus/knowledge_base/map.md。
|
|
7
|
+
|
|
8
|
+
# 新主入口(请改用此路径):
|
|
9
|
+
# modus/knowledge_base/map.md — Level 1 全景索引(~200 tokens)
|
|
10
|
+
# modus/knowledge_base/service-graph.md — Level 1 服务调用图
|
|
11
|
+
|
|
12
|
+
# v4.0 渐进加载(4 级):
|
|
13
|
+
# L1 modus/knowledge_base/map.md
|
|
14
|
+
# L2 modus/knowledge_base/domain/<d>/code/SKILL.md
|
|
15
|
+
# L3 modus/knowledge_base/domain/<d>/code/{entities|apis|services|data-models}.md
|
|
16
|
+
# L4 代码实际文件(按 key_files 索引)
|
|
12
17
|
|
|
13
18
|
updated: {YYYY-MM-DD}
|
|
14
19
|
|
|
15
20
|
## 全局行为守卫 (Layer 0-G)
|
|
16
|
-
# 所有命令 Step 0 加载,优先级:低于 constitution.hard_rules,高于 Skill 建议
|
|
17
21
|
- **behavior-guard**: `modus/behavior-guard.md` — 五条全局行为约束
|
|
18
22
|
(Think Before Coding · Simplicity First · Surgical Changes · Goal-Driven Execution · Token Budget Guard)
|
|
19
23
|
[由 /modus:init 生成,不随项目代码变化,手动维护]
|
|
20
24
|
|
|
21
25
|
## 团队约定 (Layer 0-T)
|
|
22
26
|
- **_conventions**: {规范描述} [maturity: draft] 更新: {日期}
|
|
23
|
-
- 路径:`{project}/modus/
|
|
27
|
+
- v4 路径:`{project}/modus/knowledge_base/domain/_conventions/code/SKILL.md`
|
|
28
|
+
- v3 兼容(已废弃):`{project}/modus/knowledge/_conventions/SKILL.md`
|
|
24
29
|
|
|
25
30
|
## 技术知识 (Layer 1)
|
|
26
31
|
- **_tech-wiki**: {技术栈描述} [maturity: draft] 更新: {日期}
|
|
27
|
-
- 路径:`{project}/modus/
|
|
32
|
+
- v4 路径:`{project}/modus/knowledge_base/domain/_tech-wiki/code/SKILL.md`
|
|
28
33
|
|
|
29
34
|
## 业务知识 (Layer 2)
|
|
30
35
|
<!-- 由 /modus:init 生成,由各模式工作流自动更新 -->
|
|
31
|
-
- **
|
|
32
|
-
- 路径:`{project}/modus/
|
|
36
|
+
- **{domain}**: {中文域名} — {核心职责一句话} [maturity: draft] 最近引用: {日期}
|
|
37
|
+
- v4 路径:`{project}/modus/knowledge_base/domain/{domain}/code/SKILL.md`(入口)
|
|
38
|
+
- 业务规则:`{project}/modus/knowledge_base/domain/{domain}/business/`
|
|
39
|
+
- 测试场景:`{project}/modus/knowledge_base/domain/{domain}/scenarios/`
|
|
40
|
+
- 历史变更:`{project}/modus/knowledge_base/domain/{domain}/history/`
|
|
33
41
|
|
|
34
42
|
## 域依赖图 (Dependency Graph)
|
|
35
43
|
<!--
|
|
36
44
|
格式:{下游域} --> {上游域1}, {上游域2}
|
|
37
|
-
|
|
38
|
-
当上游域 hash 变更时,下游域的 stale_cascade 自动置为 true(在 ⚠️ 标注处可见)。
|
|
39
|
-
由 /modus:init 自动生成,可手动补充跨域调用关系。
|
|
40
|
-
-->
|
|
41
|
-
<!-- example:
|
|
42
|
-
payment --> order, user
|
|
43
|
-
notification --> order, payment
|
|
44
|
-
report --> order, payment, user
|
|
45
|
+
也参见 modus/knowledge_base/service-graph.md
|
|
45
46
|
-->
|
|
46
47
|
<!-- 当前依赖关系(/modus:init 扫描后填入):
|
|
47
48
|
{待填入}
|
|
48
49
|
-->
|
|
49
50
|
|
|
50
|
-
## 渐进加载说明
|
|
51
|
-
|
|
52
|
-
启动任意 Modus 命令时的加载顺序:
|
|
53
|
-
Level 1(必须,~200 tokens): 读本文件,了解有哪些知识可用
|
|
54
|
-
Level 2(按需,~3000 tokens): 根据任务匹配相关域,读对应 SKILL.md
|
|
55
|
-
Level 3(按需,无上限): 执行任务时读 Skill 引用的实际代码文件
|
|
56
|
-
|
|
57
|
-
目标:不相关的 Skill 不加载,大幅降低 token 消耗。
|
|
58
|
-
|
|
59
51
|
## 框架命令(快速参考)
|
|
60
|
-
- **modus:init** `--help` `--enhance [domain]` `--enhance-all` `--migrate` `--dry-run` `--force` `--platform [list]` `--no-sync` `--verbose` `--reset-maturity` `--project [name]`
|
|
52
|
+
- **modus:init** `--help` `--enhance [domain]` `--enhance-all` `--migrate-v4` `--dry-run` `--force` `--platform [list]` `--no-sync` `--verbose` `--reset-maturity` `--project [name]`
|
|
61
53
|
- **modus:vibe** `--help` `--domain [name]` `--project [name]` `--context [file]` `--no-skill` `--verbose` `--dry-run`
|
|
62
|
-
- **modus:plan** `--help` `--story [url]` `--design` `--quick` `--enhance` `--no-build` `--resume [name]` `--complexity [level]` `--project [name]`
|
|
54
|
+
- **modus:plan** `--help` `--story [url]` `--design` `--code [path]` `--continue [name]` `--quick` `--enhance` `--no-build` `--resume [name]` `--complexity [level]` `--project [name]`
|
|
63
55
|
- **modus:spec** `--help` `--story [url]` `--lite` `--delta` `--testcase` `--verify` `--resume [name]` `--no-archive` `--project [name]`
|
|
64
56
|
- **modus:auto** `--help` `--force [mode]` `--no-confirm` `--show-scores` `--project [name]`
|
|
65
|
-
- **modus:harness** `--help` `--story [url]` `--skip [agents]` `--loop1-only` `--resume` `--dry-run` `--force-rebuild-skill` `--no-deploy` `--max-loop2 [n]` `--notify [channel]` `--project [name]`
|
|
57
|
+
- **modus:harness** `--help` `--story [url]` `--from-plan [name]` `--skip [agents]` `--loop1-only` `--resume` `--dry-run` `--force-rebuild-skill` `--no-deploy` `--max-loop2 [n]` `--notify [channel]` `--show-progress` `--project [name]`
|
|
58
|
+
- **modus:cr** `--help` `--doc [path]` `--diff [scope]` `--story [url]` `--quick`
|
|
66
59
|
- **modus:upgrade** `--help` `--check` `--dry-run` `--changelog` `--target [version]` `--project [name]`
|
|
67
60
|
|
|
68
|
-
##
|
|
61
|
+
## Knowledge status 生命周期
|
|
69
62
|
|
|
70
63
|
| status | 含义 | 升级方式 |
|
|
71
64
|
|-----------|-------------------------|-----------------------------------|
|
|
@@ -85,11 +78,13 @@ updated: {YYYY-MM-DD}
|
|
|
85
78
|
|
|
86
79
|
## 防腐机制核心字段
|
|
87
80
|
|
|
88
|
-
|
|
89
|
-
- **last_referenced**:
|
|
90
|
-
- **usage_count**:
|
|
91
|
-
- **last_hash**: 全局 SHA-1
|
|
92
|
-
- **file_hashes**: 文件级 hash map
|
|
93
|
-
- **key_files**:
|
|
81
|
+
每个域 `code/SKILL.md` frontmatter 必须包含以下字段,缺一不可:
|
|
82
|
+
- **last_referenced**: 最后引用时间
|
|
83
|
+
- **usage_count**: 使用次数
|
|
84
|
+
- **last_hash**: 全局 SHA-1(详见 modus-init Skill)
|
|
85
|
+
- **file_hashes**: 文件级 hash map
|
|
86
|
+
- **key_files**: 关键源文件列表
|
|
87
|
+
|
|
88
|
+
详见:`templates/skills/modus-init/SKILL.md`「防腐机制总览」。
|
|
94
89
|
|
|
95
|
-
|
|
90
|
+
> **维护提示**:本文件被生成器视为旧版兼容入口;权威源在 `modus/knowledge_base/map.md`。
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema_version: "4.0"
|
|
3
|
+
title: "Modus v4.0 路径权威定义(Single Source of Truth)"
|
|
4
|
+
status: "active"
|
|
5
|
+
supersedes: ["v3.2 路径表"]
|
|
6
|
+
last_updated: "2026-05-22"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Modus v4.0 目录范式(Single Source of Truth)
|
|
10
|
+
|
|
11
|
+
> **本文件是 Modus 框架内所有命令、Skill、Agent、Generator 的"路径唯一权威"。**
|
|
12
|
+
> 任何对路径的引用必须以本文件为准;文件之间发生冲突时,以本文件为准。
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. 顶层目录骨架(用户项目侧)
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
<项目根目录>/
|
|
20
|
+
├── .modus/ # CLI 中性层(命令 & 团队技能包)
|
|
21
|
+
│ ├── commands/ # 命令全集(所有平台共建入口)
|
|
22
|
+
│ └── skills/ # 团队自定义技能包(如查日志、查监控)
|
|
23
|
+
│
|
|
24
|
+
├── .codebuddy/ # 平台特定(仅做引用桩)
|
|
25
|
+
├── .claude/ # 平台特定(仅做引用桩)
|
|
26
|
+
├── .cursor/ # 平台特定(仅做引用桩)
|
|
27
|
+
├── .continue/ # 平台特定(仅做引用桩)
|
|
28
|
+
│
|
|
29
|
+
└── modus/ # 顶层 Models 层(所有产物 + 知识统一入口)
|
|
30
|
+
├── template/ # 标准产物模板(命令 / 节点产物)
|
|
31
|
+
│ ├── pid.md # 需求澄清模板
|
|
32
|
+
│ ├── design.md # 评估设计模板
|
|
33
|
+
│ ├── spec.md # Gherkin 验收模板
|
|
34
|
+
│ ├── plan.md # 实施计划模板
|
|
35
|
+
│ ├── analysis.md # 分析报告模板(Harness Loop1)
|
|
36
|
+
│ └── sprint-contract.md # Sprint 契约模板(Harness Loop2)
|
|
37
|
+
│
|
|
38
|
+
├── knowledge_base/ # 知识库(代码知识 + 业务知识 + 测试场景 + 历史)
|
|
39
|
+
│ ├── service-graph.md # L0 全局服务调用关系图
|
|
40
|
+
│ ├── map.md # 知识库地图(部门 → 团队 → 项目三层索引)
|
|
41
|
+
│ └── domain/ # 按业务域划分
|
|
42
|
+
│ ├── _conventions/ # 团队约定(横切,无 business/scenarios)
|
|
43
|
+
│ │ └── code/SKILL.md
|
|
44
|
+
│ ├── _tech-wiki/ # 技术知识(横切,无 business/scenarios)
|
|
45
|
+
│ │ └── code/SKILL.md
|
|
46
|
+
│ └── <domain>/ # 普通业务域(如 contract, copyright, library)
|
|
47
|
+
│ ├── README.md # 域描述与上下游关系
|
|
48
|
+
│ ├── code/ # 代码翻译层(脚本自动提取,可强刷)
|
|
49
|
+
│ │ ├── SKILL.md # 入口(frontmatter + 摘要 + 索引)
|
|
50
|
+
│ │ ├── entities.md # 业务实体
|
|
51
|
+
│ │ ├── apis.md # 接口列表
|
|
52
|
+
│ │ ├── services.md # 服务调用图
|
|
53
|
+
│ │ └── data-models.md # 数据模型
|
|
54
|
+
│ ├── business/ # 人工确认层(业务规则,独立维护,不被强刷覆盖)
|
|
55
|
+
│ │ └── README.md
|
|
56
|
+
│ ├── scenarios/ # 场景化接口调用链(供测试团队消费)
|
|
57
|
+
│ │ └── README.md
|
|
58
|
+
│ └── history/ # 增量变更历史(最新覆盖,旧版归档于此)
|
|
59
|
+
│ └── README.md
|
|
60
|
+
│
|
|
61
|
+
└── artifacts/ # 产物目录(以 Story ID 为维度隔离)
|
|
62
|
+
└── <STORY_ID>/
|
|
63
|
+
├── pid/ # 需求澄清阶段
|
|
64
|
+
│ ├── prd.md # 需求文档(产品原文 + Agent 增强标注)
|
|
65
|
+
│ └── dialog/ # 多轮澄清对话历史(不可变)
|
|
66
|
+
│ └── *.md
|
|
67
|
+
├── design/ # 评估设计阶段
|
|
68
|
+
│ └── design.md # 技术方案(边界/状态流转/接口超时)
|
|
69
|
+
├── code/ # 代码开发阶段(plan/spec/harness 实施)
|
|
70
|
+
│ ├── plan.md # 实施计划
|
|
71
|
+
│ ├── spec/ # Gherkin 规格(可多文件)
|
|
72
|
+
│ ├── sprint-contract.md # Harness Loop2 契约
|
|
73
|
+
│ ├── vibe-log.md # 编码日志
|
|
74
|
+
│ ├── cr-report.md # CR 报告
|
|
75
|
+
│ └── .harness-state.yaml # Harness 状态机
|
|
76
|
+
└── archive/ # 上线验收后人工触发归档
|
|
77
|
+
├── summary.md # 精简版人阅读摘要
|
|
78
|
+
└── key-scenarios/ # 关键场景快照(供后续迭代检索)
|
|
79
|
+
└── *.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 2. 路径迁移映射(v3.2 → v4.0)
|
|
85
|
+
|
|
86
|
+
| 维度 | v3.2 旧路径 | v4.0 新路径 |
|
|
87
|
+
|------|------------|------------|
|
|
88
|
+
| 全景索引 | `modus/knowledge-catalog.md` | `modus/knowledge_base/map.md` |
|
|
89
|
+
| 团队约定 | `modus/knowledge/_conventions/SKILL.md` | `modus/knowledge_base/domain/_conventions/code/SKILL.md` |
|
|
90
|
+
| 技术知识 | `modus/knowledge/_tech-wiki/SKILL.md` | `modus/knowledge_base/domain/_tech-wiki/code/SKILL.md` |
|
|
91
|
+
| 业务域知识 | `modus/knowledge/biz-{d}/SKILL.md` | `modus/knowledge_base/domain/{d}/code/SKILL.md`(拆分) |
|
|
92
|
+
| 业务规则 | —(无) | `modus/knowledge_base/domain/{d}/business/` |
|
|
93
|
+
| 测试场景 | —(无) | `modus/knowledge_base/domain/{d}/scenarios/` |
|
|
94
|
+
| 知识历史 | —(无) | `modus/knowledge_base/domain/{d}/history/` |
|
|
95
|
+
| 服务图谱 | —(无) | `modus/knowledge_base/service-graph.md` |
|
|
96
|
+
| 需求澄清 | `modus/stories/{id}/harness/01-analysis.md` | `modus/artifacts/{id}/pid/prd.md` |
|
|
97
|
+
| 设计文档 | `modus/stories/{id}/harness/02-design-brief.md` | `modus/artifacts/{id}/design/design.md` |
|
|
98
|
+
| 实施计划 | `modus/stories/{id}/plan.md` | `modus/artifacts/{id}/code/plan.md` |
|
|
99
|
+
| Gherkin | `modus/stories/{id}/spec/` | `modus/artifacts/{id}/code/spec/` |
|
|
100
|
+
| Sprint 契约 | `modus/stories/{id}/harness/03-sprint-contract.md` | `modus/artifacts/{id}/code/sprint-contract.md` |
|
|
101
|
+
| 编码日志 | `modus/stories/{id}/vibe-log.md` | `modus/artifacts/{id}/code/vibe-log.md` |
|
|
102
|
+
| CR 报告 | `modus/stories/{id}/harness/cr-report.md` | `modus/artifacts/{id}/code/cr-report.md` |
|
|
103
|
+
| Harness 状态 | `modus/stories/{id}/harness/.harness-state.yaml` | `modus/artifacts/{id}/code/.harness-state.yaml` |
|
|
104
|
+
| 命令源 | `templates/commands/*.md` | `.modus/commands/*.md`(用户侧);模板侧仍在 `templates/commands/` |
|
|
105
|
+
| 团队 Skill | `.codebuddy/skills/team-*/` 等分散 | `.modus/skills/team-*/`(中性源),平台目录留引用桩 |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 3. 读写规则(命令必须遵守)
|
|
110
|
+
|
|
111
|
+
### 3.1 读取顺序(按需加载)
|
|
112
|
+
1. **L0 必读**:`modus/knowledge_base/map.md`(~200 tokens)
|
|
113
|
+
2. **L1 按域**:`modus/knowledge_base/domain/{domain}/code/SKILL.md`(入口,~500 tokens)
|
|
114
|
+
3. **L2 按文件**:根据 Skill 入口的索引,按需加载 `entities.md` / `apis.md` / `services.md` / `data-models.md`(~800 tokens/个)
|
|
115
|
+
4. **L3 业务规则**:仅当任务涉及业务约束时读 `business/`
|
|
116
|
+
5. **L4 场景**:仅测试同学或 spec 阶段读 `scenarios/`
|
|
117
|
+
|
|
118
|
+
### 3.2 写入规则
|
|
119
|
+
- **code/** 由 `/modus:init` 强刷生成,**禁止手工编辑**(手工编辑会被覆盖)
|
|
120
|
+
- **business/、scenarios/、history/** 由人工或专项命令维护,**强刷不会覆盖**
|
|
121
|
+
- **artifacts/** 全部由命令产出,按 Story ID 隔离
|
|
122
|
+
|
|
123
|
+
### 3.3 平台引用桩规则
|
|
124
|
+
- 用户运行 `/modus:init` 时,CLI 同时生成:
|
|
125
|
+
- 中性源:`modus/knowledge_base/...` 和 `.modus/commands/...`、`.modus/skills/...`
|
|
126
|
+
- 平台桩:`.codebuddy/`、`.claude/`、`.cursor/`、`.continue/` 下的 SKILL.md/RULE.mdc 仅含 1 行 `@import` 或 frontmatter,指向中性源
|
|
127
|
+
- 修改知识:**只改中性源**(`modus/knowledge_base/`、`.modus/`),桩自动复用
|
|
128
|
+
|
|
129
|
+
### 3.4 命令同步规则
|
|
130
|
+
- `.modus/commands/*.md` 是命令源
|
|
131
|
+
- 默认情况下,CLI 把命令也复制一份到平台目录(如 `.codebuddy/commands/`)以便平台原生识别 slash command
|
|
132
|
+
- 用户也可只在 `.modus/commands/` 维护,由各平台读取(取决于平台是否支持中性目录)
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 4. 关键不变量(Invariants)
|
|
137
|
+
|
|
138
|
+
1. `modus/knowledge_base/domain/<domain>/code/SKILL.md` **必须存在**且包含 frontmatter
|
|
139
|
+
2. 同一 Story 的所有产物(pid/design/code/archive)共享同一个 `<STORY_ID>` 目录
|
|
140
|
+
3. `archive/` 只在用户**显式归档**时生成(命令:`/modus:auto --archive` 或手动触发)
|
|
141
|
+
4. `history/` 文件按时间倒序命名:`YYYY-MM-DD-{change-id}.md`
|
|
142
|
+
5. 任何脚本/命令读取业务域知识时,**入口必须是 `code/SKILL.md`**(其内的索引指向 entities/apis/services/data-models)
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 5. 与旧版的兼容策略
|
|
147
|
+
|
|
148
|
+
- `/modus:init --migrate-v4`:自动迁移 v3.2 → v4.0
|
|
149
|
+
- `modus/knowledge/` → `modus/knowledge_base/domain/`(按 biz-* 拆 domain)
|
|
150
|
+
- `modus/stories/` → `modus/artifacts/`(按子目录拆 pid/design/code)
|
|
151
|
+
- 旧 `SKILL.md` 整体内容拆到 `code/SKILL.md`(保留摘要) + `entities.md` / `apis.md` / `services.md` / `data-models.md`
|
|
152
|
+
- 命令读取时优先 v4 路径,找不到时降级到 v3.2 路径并提示用户运行 migrate
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
> **维护提示**:本文件被 `templates/commands/*.md`、`templates/skills/*/SKILL.md`、`src/commands/init.ts`、`src/generators/*.ts` 以及 `skills/modus-framework/SKILL.md` 引用。修改本文件时,需触发 `modus-skill-keeper` 同步影响章节。
|
|
@@ -1,59 +1,66 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Modus workflow conventions. Load this rule when the user runs any /modus:* command or asks about Modus commands, Skills, Harness, plan/spec/vibe workflow,
|
|
2
|
+
description: Modus workflow conventions (v4.0). Load this rule when the user runs any /modus:* command or asks about Modus commands, Skills, Harness, plan/spec/vibe workflow, knowledge_base, artifacts, or business Skills.
|
|
3
3
|
alwaysApply: false
|
|
4
4
|
enabled: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Modus
|
|
7
|
+
# Modus 工作流规范(v4.0)
|
|
8
|
+
|
|
9
|
+
> 完整路径范式见 `templates/paths-v4.md`。
|
|
8
10
|
|
|
9
11
|
## 核心目录结构
|
|
10
12
|
|
|
11
13
|
```
|
|
12
|
-
|
|
13
|
-
├──
|
|
14
|
-
│ ├──
|
|
15
|
-
│
|
|
16
|
-
│
|
|
17
|
-
|
|
18
|
-
│
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
├──
|
|
28
|
-
|
|
29
|
-
├──
|
|
30
|
-
├──
|
|
31
|
-
│
|
|
32
|
-
│
|
|
33
|
-
|
|
34
|
-
|
|
14
|
+
<项目根>/
|
|
15
|
+
├── .modus/ # CLI 中性层
|
|
16
|
+
│ ├── commands/ # 命令源(所有平台共用)
|
|
17
|
+
│ └── skills/ # 团队自定义技能包(如查日志、查监控)
|
|
18
|
+
│
|
|
19
|
+
├── .codebuddy/ | .claude/ | .cursor/ | .continue/ # 平台引用桩(仅 1 行 @import)
|
|
20
|
+
│
|
|
21
|
+
└── modus/ # 顶层 Models 层
|
|
22
|
+
├── config.yaml # 项目配置 + constitution
|
|
23
|
+
├── template/ # 产物模板(pid/design/spec/plan/...)
|
|
24
|
+
├── knowledge_base/ # 知识库(Single Source of Truth)
|
|
25
|
+
│ ├── map.md # L0 全景索引(替代旧 knowledge-catalog.md)
|
|
26
|
+
│ ├── service-graph.md # L0 服务调用图
|
|
27
|
+
│ └── domain/
|
|
28
|
+
│ ├── _conventions/code/SKILL.md # 团队约定
|
|
29
|
+
│ ├── _tech-wiki/code/SKILL.md # 技术 Wiki
|
|
30
|
+
│ └── <domain>/ # 业务域
|
|
31
|
+
│ ├── code/ # 自动生成层(SKILL.md + 4 子文件)
|
|
32
|
+
│ ├── business/ # 业务规则(人工维护)
|
|
33
|
+
│ ├── scenarios/ # 测试场景
|
|
34
|
+
│ └── history/ # 变更历史
|
|
35
|
+
└── artifacts/<STORY_ID>/ # 产物(按 Story 隔离)
|
|
36
|
+
├── pid/ # 需求澄清
|
|
37
|
+
├── design/ # 评估设计
|
|
38
|
+
├── code/ # 编码实施(plan/spec/harness)
|
|
39
|
+
└── archive/ # 上线归档
|
|
35
40
|
```
|
|
36
41
|
|
|
37
|
-
##
|
|
42
|
+
## 渐进加载原则(v4.0 四级)
|
|
38
43
|
|
|
39
44
|
每次 Modus 命令启动时:
|
|
40
|
-
1. **Level 1(必须,~200 tokens)**:读 `modus/
|
|
41
|
-
2. **Level 2(按需,~
|
|
42
|
-
3. **Level 3
|
|
45
|
+
1. **Level 1(必须,~200 tokens)**:读 `modus/knowledge_base/map.md`
|
|
46
|
+
2. **Level 2(按需,~500 tokens/域)**:基于任务匹配,读对应 `domain/<d>/code/SKILL.md`(入口含子文件索引)
|
|
47
|
+
3. **Level 3(按需,~800 tokens/文件)**:按需读 `entities.md` / `apis.md` / `services.md` / `data-models.md`
|
|
48
|
+
4. **Level 4(执行时,无上限)**:从知识中的 `key_files` 索引按需读取实际代码文件
|
|
43
49
|
|
|
44
|
-
|
|
50
|
+
不相关的域、子文件不加载,大幅降低 token 消耗。
|
|
45
51
|
|
|
46
|
-
##
|
|
52
|
+
## 命令速查(v4.0 产物路径)
|
|
47
53
|
|
|
48
|
-
| 命令 | 场景 |
|
|
54
|
+
| 命令 | 场景 | 产出物(v4.0) |
|
|
49
55
|
|------|------|--------|
|
|
50
|
-
| `/modus:init` | 首次初始化或重建知识库 |
|
|
51
|
-
| `/modus:vibe` | 日常编码(含业务上下文) | 代码 + `modus/sessions/vibe-log.md` |
|
|
52
|
-
| `/modus:plan` | 功能规划 | `modus/plans/{name}
|
|
53
|
-
| `/modus:spec` | 规范驱动开发 | `modus/changes/{name}
|
|
54
|
-
| `/modus:harness` | 全自动 Harness 流程 | `
|
|
56
|
+
| `/modus:init` | 首次初始化或重建知识库 | `modus/knowledge_base/domain/<d>/code/*` |
|
|
57
|
+
| `/modus:vibe` | 日常编码(含业务上下文) | 代码 + `modus/sessions/vibe-log.md`(或 `artifacts/<id>/code/vibe-log.md`) |
|
|
58
|
+
| `/modus:plan` | 功能规划 | `artifacts/<id>/code/plan.md`(Story 模式)/ `modus/plans/{name}/`(独立模式) |
|
|
59
|
+
| `/modus:spec` | 规范驱动开发 | `artifacts/<id>/code/spec/`(Story 模式)/ `modus/changes/{name}/`(独立模式) |
|
|
60
|
+
| `/modus:harness` | 全自动 Harness 流程 | `artifacts/<id>/{pid|design|code}/*` |
|
|
61
|
+
| `/modus:cr` | 代码评审 | `artifacts/<id>/code/cr-report.md` 或 `modus/cr/{date}-{name}/` |
|
|
55
62
|
|
|
56
|
-
##
|
|
63
|
+
## 知识状态
|
|
57
64
|
|
|
58
65
|
| maturity | 含义 | 衰减规则 |
|
|
59
66
|
|----------|------|---------|
|
|
@@ -9,7 +9,7 @@ disable: false
|
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(Gate A0.5 通过后触发)
|
|
11
11
|
**输入:** `01-analysis.md` + `02-design-brief.md` + 业务 Skill 内容 + constitution
|
|
12
|
-
**产出物:** `modus/
|
|
12
|
+
**产出物:** `modus/artifacts/{story_id}/code/sprint-contract.md` + 代码变更(v4.0 路径)
|
|
13
13
|
|
|
14
14
|
## 职责
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ disable: false
|
|
|
9
9
|
|
|
10
10
|
**调用方:** Harness Orchestrator(Gate B 通过后触发)
|
|
11
11
|
**输入:** 全部产出物(01-analysis.md 至 06-security-report.md)+ 代码变更
|
|
12
|
-
**产出物:** `modus/
|
|
12
|
+
**产出物:** `modus/artifacts/{story_id}/code/cr-report.md`(v4.0 路径)
|
|
13
13
|
|
|
14
14
|
## 职责
|
|
15
15
|
|
|
@@ -9,7 +9,7 @@ disable: false
|
|
|
9
9
|
|
|
10
10
|
**调用方:** `/modus:init` / `/modus:plan` 前置更新 / `/modus:spec` 前置更新 / Harness 后置更新 / Harness ARCHIVE 阶段
|
|
11
11
|
**输入:** 业务域信息 + 项目代码
|
|
12
|
-
**产出物:**
|
|
12
|
+
**产出物:** `modus/knowledge_base/domain/{domain}/code/SKILL.md` (业务域入口) / `modus/knowledge_base/domain/_conventions/code/SKILL.md` / `modus/knowledge_base/domain/_tech-wiki/code/SKILL.md` + `modus/knowledge_base/map.md` 更新
|
|
13
13
|
|
|
14
14
|
## 职责
|
|
15
15
|
|
|
@@ -677,7 +677,7 @@ Step 4 扩展:upstream/downstream 双向同步(append-only,Git 无冲突
|
|
|
677
677
|
|
|
678
678
|
### Step 5:更新 knowledge-catalog.md
|
|
679
679
|
|
|
680
|
-
|
|
680
|
+
每次写入知识后,同步更新 `modus/knowledge_base/map.md`(使用升级后的条目格式):
|
|
681
681
|
|
|
682
682
|
```markdown
|
|
683
683
|
- **modus-biz-order**: 订单域 — 创建/状态流转/查询
|
|
@@ -1055,7 +1055,7 @@ layer: "1"
|
|
|
1055
1055
|
- 关键文件索引路径必须真实存在
|
|
1056
1056
|
- 每条知识条目必须打上五类型标签之一:`[model]` `[decision]` `[guideline]` `[pitfall]` `[process]`
|
|
1057
1057
|
- 更新时必须更新 `updated` 日期和 `last_referenced`
|
|
1058
|
-
- 模式 D 每次执行后必须同步更新 `modus/
|
|
1058
|
+
- 模式 D 每次执行后必须同步更新 `modus/knowledge_base/map.md`
|
|
1059
1059
|
- 统一使用 `status` 字段(不使用 `maturity`),枚举值:`draft | verified | proven | stale | archived`
|
|
1060
1060
|
- 新生成的 Skill 默认写入 `format_version: v3`(17节标准格式);存量 14 节 Skill 保留 `format_version: v2`;存量 7 节 Skill 迁移前标记 `format_version: v1`
|
|
1061
1061
|
|